JP5557683B2 - Information search apparatus and information search method - Google Patents

Information search apparatus and information search method Download PDF

Info

Publication number
JP5557683B2
JP5557683B2 JP2010227906A JP2010227906A JP5557683B2 JP 5557683 B2 JP5557683 B2 JP 5557683B2 JP 2010227906 A JP2010227906 A JP 2010227906A JP 2010227906 A JP2010227906 A JP 2010227906A JP 5557683 B2 JP5557683 B2 JP 5557683B2
Authority
JP
Japan
Prior art keywords
query
search request
search
keyword
entry
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
JP2010227906A
Other languages
Japanese (ja)
Other versions
JP2012083863A (en
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010227906A priority Critical patent/JP5557683B2/en
Publication of JP2012083863A publication Critical patent/JP2012083863A/en
Application granted granted Critical
Publication of JP5557683B2 publication Critical patent/JP5557683B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、暗号化された情報を暗号化された検索要求用キーワードにより秘匿検索する情報検索装置および情報検索方法に関する。   The present invention relates to an information search apparatus and an information search method for performing a secret search on encrypted information using an encrypted search request keyword.

秘匿検索とは、検索者(以下ユーザと称する)の要求に応じて、情報検索システム(情報検索装置)が必要な情報を検索する場合に、情報検索システム(情報検索装置)は、暗号化された情報(以下暗号化情報と称する)を復号することなく、暗号化された状態で検索をすることである。(以下、秘匿検索に用いる情報検索システム(情報検索装置)を秘匿検索システムと称する)。
秘匿検索システムが暗号化情報そのものを検索することは出来ないので、秘匿検索システムは、検索可能な情報キーワードを暗号化したもの(以下タグと称する)を暗号化情報に付加してデータセンターに登録(記録もしくは保存)する。
The secret search is an information search system (information search device) that is encrypted when the information search system (information search device) searches for necessary information in response to a request from a searcher (hereinafter referred to as a user). The search is performed in an encrypted state without decrypting the information (hereinafter referred to as encrypted information). (Hereinafter, an information search system (information search apparatus) used for a secret search is referred to as a secret search system).
Since the secret search system cannot search the encrypted information itself, the secret search system adds a searchable information keyword encrypted (hereinafter referred to as a tag) to the encrypted information and registers it in the data center. (Record or save).

ここでデータセンターとは、例えばデータサーバなどの大容量の記憶装置である。データセンターが登録した情報もしくはデータを、データセンターの管理者(データセンターの管理部門もしくは管理会社の人間)は閲覧することが可能である。
データセンターはユーザが用いる端末(以下ユーザ端末と称する)が入力した情報を保存し、保存した情報を管理し、ユーザ端末の要求に応じて検索し、ユーザ端末の要求に応じて検索した情報をユーザ端末に出力する等の機能を有する。
Here, the data center is a large-capacity storage device such as a data server. Information or data registered by the data center can be viewed by a data center manager (data center management department or management company person).
The data center stores information input by a terminal used by a user (hereinafter referred to as user terminal), manages the stored information, searches in response to a request from the user terminal, and retrieves information searched in response to a request from the user terminal. It has a function of outputting to a user terminal.

また、秘匿検索システムにおいて、ユーザは、タグの検索に用いる検索要求用キーワードも暗号化されたものを用いる(以下、暗号化された検索要求用キーワードを暗号化検索要求用キーワードと称する。また、暗号化検索要求用キーワードには以下に説明のタグ暗号化検索要求用キーワードとクエリ暗号化検索要求用キーワードとが有るが、特に区別の必要が無い場合は、暗号化検索要求用キーワードと称する)。もしくは、ユーザは、タグの検索に検索要求用クエリを用いる(ここで、検索要求用クエリとは、1つ以上の暗号化検索要求用キーワードで構成されたユーザ端末からの検索要求のことである。)。
すなわち、秘匿検索システムがデータセンターに保存した暗号化情報および、秘匿検索システムがデータセンターに保存した暗号化情報を検索する際に使用するクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)とタグは全て暗号化されている。従って、解読可能な情報は、第3者(以下、第3者とは、例えばデータセンターの管理会社の人間などを示す)に漏れることが無い。
In the secret search system, the user uses an encrypted search request keyword used for tag search (hereinafter, the encrypted search request keyword is referred to as an encrypted search request keyword. (The encrypted search request keyword includes a tag encrypted search request keyword and a query encrypted search request keyword, which will be described below. If there is no need to distinguish between them, the keyword is referred to as an encrypted search request keyword.) . Alternatively, the user uses a search request query for searching for a tag (here, the search request query is a search request from a user terminal composed of one or more encrypted search request keywords. .)
That is, the encrypted search request keyword (or search request query) used when searching the encrypted information stored in the data center by the secret search system and the encrypted information stored in the data center by the secret search system; All tags are encrypted. Therefore, the decipherable information does not leak to a third party (hereinafter, the third party indicates, for example, a person of a data center management company).

その為に、ユーザは第3者が管理するデータセンターに暗号化情報の保存、管理を委託することが可能である。
すなわち、ユーザはユーザ端末から暗号化情報をデータセンターに登録し、必要に応じてクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)を用いて、データセンターに登録された暗号化情報に対応するタグを検索する。そして、ユーザは検索されたタグに対応する暗号化情報をユーザ端末に保存し、ユーザ端末で暗号化情報の復号処理を行い、暗号化情報の内容を閲覧する。
近年、例えばクラウドサービスなどのインターネット上にユーザが情報を保存する際、秘匿検索は、情報盗難などの脅威から守るためのセキュリティ技術として注目されている。
Therefore, the user can entrust the storage and management of encryption information to a data center managed by a third party.
In other words, the user registers the encrypted information from the user terminal in the data center, and responds to the encrypted information registered in the data center by using a query encryption search request keyword (or search request query) as necessary. Search for the tag you want. And a user preserve | saves the encryption information corresponding to the searched tag in a user terminal, performs a decoding process of encryption information in a user terminal, and browses the content of encryption information.
In recent years, for example, when a user saves information on the Internet such as a cloud service, confidential search has attracted attention as a security technique for protecting against threats such as information theft.

一方、秘匿検索は、保存されている暗号化情報、クエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)やタグから一切の情報を得られない。そこで、データセンターは暗号化情報の内容に応じて分類分け等の管理が出来ず、データセンターは分類毎の検索が出来ない。その為、一般的にはユーザから検索要求が有った際に、データセンターは保存されているすべてのタグを検索対象とする必要があり、保存された暗号化情報の増加による検索時間の増加が問題となる。   On the other hand, the secret search cannot obtain any information from the stored encrypted information, query encryption search request keyword (or search request query) or tag. Therefore, the data center cannot manage classification and the like according to the contents of the encrypted information, and the data center cannot perform search for each classification. Therefore, in general, when there is a search request from the user, the data center needs to search all the stored tags, and the search time increases due to an increase in the stored encrypted information Is a problem.

そこで、検索履歴(以下インデックス)を利用した秘匿検索の高速化手法が存在する。(例えば、特許文献1、非特許文献1参照)。
また、更に秘匿検索の検索効率改善手法として、複数の暗号化検索要求用キーワードを用いて秘匿検索を行う手法(例えば、非特許文献2参照)や、複数のユーザがタグを共有する手法(例えば、非特許文献3参照)が存在する。
Therefore, there is a method for speeding up a secret search using a search history (hereinafter referred to as an index). (For example, refer to Patent Document 1 and Non-Patent Document 1).
Furthermore, as a method for improving the search efficiency of a secret search, a method for performing a secret search using a plurality of keywords for encrypted search requests (for example, see Non-Patent Document 2), a method for sharing a tag by a plurality of users (for example, And non-patent document 3).

特開2005−134990JP 2005-134990 A

D.Boneh、G.D.Crescenzo、R.Ostrovsky、Persiano.G、 “Public Key Encryption with Keyword Search”、Proceedings of EUROCRYPT ‘04、vol.3027 LNCS、pp506−522(2004)D. Boneh, G.M. D. Crescenzo, R.A. Ostrovsky, Persiano. G, “Public Key Encryption with Keyword Search”, Proceedings of EUROCRYPT '04, vol. 3027 LNCS, pp 506-522 (2004) Y.H.Hwang、P.J.Lee、 “Public Key Encryption with Conjunctive Keyword Search and Its Extension to a Multi−user System”、Pairing 2007、LNCS 4575、pp2−22.Y. H. Hwang, P.A. J. et al. Lee, “Public Key Encryption with Conjunctive Keyword Search and Its Extension to a Multi-user System”, Pairing 2007, LNCS 4575, pp22. M.Hattori、T.Mori、T.Ito、N.Matsuda、T.Yoneda、K.Ohta、 “Anonymous HIBE with wildcards and its application to secure keyword search for group−oriented multi−user system,”、SCIS 2010、3A4−2、2010.M.M. Hattori, T .; Mori, T .; Ito, N.I. Matsuda, T .; Yoneda, K .; Ohta, “Anonymous HIBE with wildcards and it's application to secure keyword search for group-oriented multi-user system,” SCIS 2010, 3A4-2.

この発明の実施の形態は、例えば、複数の暗号化検索要求用キーワードを用いて高速な秘匿検索を行う情報検索装置を実現することを目的とする。   An object of the embodiment of the present invention is to realize an information search apparatus that performs high-speed secret search using a plurality of encrypted search request keywords, for example.

この発明に係る情報検索装置は、
1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶部と、
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信部と、
前記インデックス記憶部に記憶された前記エントリ用検索クエリと前記登録データ受信部が受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報が前記インデックス記憶部に記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記インデックス記憶部において前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理部と、
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信部と、
前記検索要求受信部が受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類部と、
前記インデックス記憶部に記憶された前記エントリ用代表元タグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶部に記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類部が検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた前記登録用情報を出力する検索処理部と
を備えたことを特徴とする。
The information retrieval apparatus according to the present invention is
An entry search query having one or more query encryption search request keywords, an attribute of the entry search query, and an entry representative tag having one or more encryption representative keywords are stored in association with each other. An index storage unit,
A registration data receiving unit for receiving registration encryption information and a registration keyword tag having one or more encryption registration keywords corresponding to the registration encryption information;
The entry search query stored in the index storage unit is compared with the registered keyword tag received by the registration data receiving unit, and the registration query is registered when the entry search query and the registered keyword tag correspond to each other. The registration encryption information received by the data reception unit is determined to be the registration encryption information corresponding to the search query for entry stored in the index storage unit, and the registration encryption information in the index storage unit An index update management unit associating the search query for entry with the entry query,
A search request receiving unit that receives a search request query having one or more query encrypted search request keywords;
An index classification unit that detects an attribute of the search request query from the search request query received by the search request reception unit;
When the entry representative tag stored in the index storage unit and the search request query received by the search request receiving unit are collated, and the entry representative tag and the search request query correspond to each other And the attribute of the entry search query stored in the index storage unit is matched with the attribute of the search request query detected by the index classification unit, and the attribute of the entry search query and the search And a search processing unit that outputs the registration information associated with the entry representative tag when the attribute of the request query corresponds.

この発明に係る情報検索装置は、複数の暗号化検索要求用キーワードを用いて高速な秘匿検索を行うことが可能となる。   The information search apparatus according to the present invention can perform a high-speed secret search using a plurality of encrypted search request keywords.

実施の形態1を示す図で、秘匿検索システムの外観の一例を示す図。FIG. 3 shows the first embodiment and shows an example of the appearance of a secret search system. 実施の形態1を示す図で、秘匿検索システム100のハードウェア資源の一例を示す図。FIG. 3 shows the first embodiment and shows an example of hardware resources of the secret search system 100. 実施の形態1を示す図で、秘匿検索システム100の構成例を示す図。FIG. 2 shows the first embodiment and shows a configuration example of a secret search system 100. 実施の形態1を示す図で、ユーザ端末201の構成を示すブロック図。FIG. 3 shows the first embodiment and is a block diagram showing a configuration of a user terminal 201. 実施の形態1を示す図で、タグ生成部206におけるタグ生成の動作を示す図((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。FIG. 5 shows the first embodiment, and shows the operation of tag generation in the tag generation unit 206 ((a) when there is one keyword and (b) when there are three keywords). 実施の形態1を示す図で、登録データ2301の構成の例を示す図。FIG. 5 shows the first embodiment and shows an example of the configuration of registration data 2301; 実施の形態1を示す図で、検索要求用クエリ生成部205における検索要求用クエリ2002生成の動作を示す図((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。FIG. 6 is a diagram illustrating the first embodiment and is a diagram illustrating an operation of generating a search request query 2002 in the search request query generation unit 205 ((a) is one keyword, (b) is three keywords). 実施の形態1を示す図で、検索要求2001の構成の例を示す図。FIG. 5 shows the first embodiment and shows an example of a configuration of a search request 2001. 実施の形態1を示す図で、データセンター301の構成を示すブロック図。FIG. 3 shows the first embodiment and is a block diagram showing a configuration of a data center 301. 実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第1の例を示す図。FIG. 11 shows the first embodiment and is a diagram showing a first example of an operation for decrypting a storage keyword tag 4003 by a search request query 2002; 実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第2の例を示す図。FIG. 10 shows the first embodiment and is a diagram showing a second example of an operation of decrypting the storage keyword tag 4003 by the search request query 2002. 実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第3の例を示す図。FIG. 10 is a diagram illustrating the first embodiment and is a diagram illustrating a third example of the operation of decrypting the storage keyword tag 4003 with the search request query 2002. 実施の形態1を示す図で、インデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図。FIG. 5 shows the first embodiment and shows an example of a data structure of a search result stored in an index storage unit 304. 実施の形態1を示す図で、データセンター301で実施される処理の概要を示したフローチャート。FIG. 5 is a diagram showing the first embodiment, and is a flowchart showing an outline of processing executed in the data center 301; 実施の形態1を示す図で、検索処理部303におけるインデックス検査S403の動作を示すフローチャート。FIG. 9 is a diagram illustrating the first embodiment, and is a flowchart illustrating the operation of index inspection S403 in the search processing unit 303; 実施の形態1を示す図で、インデックス更新管理部306におけるインデックス登録S406の動作を示すフローチャート。FIG. 5 is a diagram illustrating the first embodiment, and is a flowchart illustrating an operation of index registration S406 in the index update management unit 306; 実施の形態1を示す図で、ユーザが新規にデータをデータセンター301に登録する際の動作を示したフローチャート。FIG. 5 shows the first embodiment, and is a flowchart showing an operation when a user newly registers data in the data center 301. 実施の形態1を示す図で、登録データ2301と保管データ4001との具体例を示す図((a)は登録データ2301a、(b)は登録データ2301b、(c)は登録データ2301c、(d)は保管データ4001a、(e)は保管データ4001b、(f)は保管データ4001c)。FIG. 5 is a diagram illustrating the first embodiment, and is a diagram illustrating a specific example of registration data 2301 and storage data 4001 ((a) is registration data 2301a, (b) is registration data 2301b, (c) is registration data 2301c, (d ) Is storage data 4001a, (e) is storage data 4001b, and (f) is storage data 4001c). 実施の形態1を示す図で、検索要求2001の具体例を示す図((a)は検索要求2001a、(b)は検索要求2001b、(c)は検索要求2001c)。FIG. 5 is a diagram illustrating the first embodiment and is a diagram illustrating a specific example of a search request 2001 ((a) is a search request 2001a, (b) is a search request 2001b, and (c) is a search request 2001c). 実施の形態1を示す図で、ステップS405の保管データ全探索の動作を示す図。FIG. 5 shows the first embodiment, and shows the operation for searching all stored data in step S405. 実施の形態1を示す図で、第1の検索要求2001aに基づくインデックス登録の例を示す図。FIG. 6 shows the first embodiment, and shows an example of index registration based on a first search request 2001a. 実施の形態1を示す図で、検索要求2001a〜cに基づくインデックス登録の例を示す図。The figure which shows Embodiment 1 and is a figure which shows the example of the index registration based on search request 2001a-c. 実施の形態1を示す図で、検索要求2001a〜cに基づくエントリ登録の例を示す図((a)はエントリ3003a、(b)はエントリ3003b、(c)はエントリ3003c)。FIG. 6 is a diagram illustrating the first embodiment and illustrates an example of entry registration based on search requests 2001a to 2001c ((a) is an entry 3003a, (b) is an entry 3003b, and (c) is an entry 3003c). 実施の形態1を示す図で、登録データ2301dを示す図。FIG. 5 shows the first embodiment and shows registration data 2301d. 実施の形態1を示す図で、登録データ2301dに含まれる登録暗号化情報がエントリに追加された例を示す図。The figure which shows Embodiment 1 and the figure which shows the example in which the registration encryption information contained in the registration data 2301d was added to the entry. 実施の形態1を示す図で、検索要求2001の更なる具体例を示す図((a)は検索要求2001d、(b)は検索要求2001e)。FIG. 5 is a diagram illustrating the first embodiment and is a diagram illustrating a further specific example of the search request 2001 ((a) is a search request 2001d, and (b) is a search request 2001e). 実施の形態2を示す図で、フィールド番号を含んだ登録データ2301の構成の例を示す図。The figure which shows Embodiment 2 is a figure which shows the example of a structure of the registration data 2301 containing the field number. 実施の形態2を示す図で、フィールド番号を含んだ検索要求2001の構成の例を示す図。The figure which shows Embodiment 2 and shows the example of a structure of the search request | requirement 2001 containing the field number. 実施の形態2を示す図で、フィールド番号を含んだインデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図。The figure which shows Embodiment 2 and shows an example of the data structure of the search result memorize | stored in the index memory | storage part 304 containing the field number. 実施の形態2を示す図で、インデックス検査S403の手順を示したフローチャート。FIG. 9 is a diagram illustrating the second embodiment and is a flowchart illustrating a procedure of index inspection S403. 実施の形態2を示す図で、インデックス登録S406の手順を示したフローチャート。FIG. 9 is a diagram illustrating the second embodiment and is a flowchart illustrating a procedure of index registration S406. 実施の形態2を示す図で、インデックス検査S403における一致検査の具体例を示す図((a)はエントリ3003の具体例、(b)は、検索要求2001a、(c)は、検索要求2001b、(d)は、検索要求2001c)。FIG. 8 is a diagram illustrating the second embodiment, and is a diagram illustrating a specific example of the matching check in the index check S403 ((a) is a specific example of the entry 3003, (b) is a search request 2001a, (c) is a search request 2001b, (D) is a search request 2001c). 実施の形態3を示す図で、データ保管部305の構造の一例を示す図。FIG. 10 shows the third embodiment and shows an example of the structure of a data storage unit 305. 実施の形態3を示す図で、インデックス記憶部304に保存されるインデックス3001の構造の一例を示す図。FIG. 10 shows the third embodiment and shows an example of the structure of an index 3001 stored in the index storage unit 304. 実施の形態3を示す図で、グループ共有を行わない場合のインデックス検査S403の手順を示したフローチャート。FIG. 10 is a diagram illustrating the third embodiment and is a flowchart illustrating a procedure of index inspection S403 when group sharing is not performed. 実施の形態3を示す図で、グループ共有を行う場合のインデックス検査S403の手順を示したフローチャート。FIG. 10 is a diagram illustrating the third embodiment, and is a flowchart illustrating a procedure of index inspection S403 when group sharing is performed;

実施の形態1.
本実施の形態では、ユーザ(検索者、登録者)とデータセンター(データ管理者)の間で、複数のキーワードに対応した検索履歴を利用した秘匿検索を実施する際の、誤検索や検索漏れを防止する手法の例を説明する。
Embodiment 1 FIG.
In the present embodiment, an erroneous search or a search omission when a secret search using a search history corresponding to a plurality of keywords is performed between a user (searcher, registrant) and a data center (data manager). An example of a technique for preventing this will be described.

最初に、図1、図2、図3を用いて秘匿検索システムの概要を説明する。   First, an outline of the secret search system will be described with reference to FIGS. 1, 2, and 3.

図1は、秘匿検索システムの外観の一例を示す図である。
図1において、秘匿検索システム100は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・ Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
また、これらのハードウェア資源をユーザ端末201と称している。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してネットワーク101に接続されている。ネットワーク101の代表的な例はインターネットがある。
FIG. 1 is a diagram illustrating an example of an appearance of a secret search system.
In FIG. 1, the secret search system 100 includes a system unit 910, a display device 901 having a CRT (Cathode / Ray / Tube) or LCD (liquid crystal) display screen, a keyboard 902 (Key / Board: K / B), and a mouse 903. , FDD904 (Flexible Disk Drive), compact disk device 905 (CDD), printer device 906, scanner device 907, and the like, and these are connected by cables and signal lines.
In addition, these hardware resources are referred to as a user terminal 201.
The system unit 910 is a computer, and is connected to the facsimile machine 932 and the telephone 931 with a cable, and is connected to the network 101 via a local area network 942 (LAN) and a gateway 941. A typical example of the network 101 is the Internet.

図2は、秘匿検索システム100のハードウェア資源の一例を示す図である。
図2において、秘匿検索システム100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
FIG. 2 is a diagram illustrating an example of hardware resources of the confidential search system 100.
In FIG. 2, the secret search system 100 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, and a processor) that executes a program. The CPU 911 is connected to the ROM 913, the RAM 914, the communication board 915, the display device 901, the keyboard 902, the mouse 903, the FDD 904, the CDD 905, the printer device 906, the scanner device 907, and the magnetic disk device 920 via the bus 912, and the hardware. Control the device. Instead of the magnetic disk device 920, a storage device such as an optical disk device or a memory card read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of a storage device or a storage unit.
The communication board 915, the keyboard 902, the scanner device 907, the FDD 904, and the like are examples of an input unit and an input device.
Further, the communication board 915, the display device 901, the printer device 906, and the like are examples of an output unit and an output device.

通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、ネットワーク101、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。ネットワーク101或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The communication board 915 is connected to the facsimile machine 932, the telephone 931, the LAN 942, and the like. The communication board 915 is not limited to the LAN 942 but may be connected to the network 101, a WAN (wide area network) such as ISDN, or the like. When connected to a WAN such as the network 101 or ISDN, the gateway 941 is unnecessary.
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924. The programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.

上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The program group 923 stores programs that execute functions described as “˜units” in the description of the embodiments described below. The program is read and executed by the CPU 911.
The file group 924 includes information, data, signal values, variable values, and parameters that are described as “determination results of”, “calculation results of”, and “processing results of” in the description of the embodiments described below. Are stored as items of “˜file” and “˜database”. The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. Used for CPU operations such as calculation, processing, output, printing, and display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the CPU operations of extraction, search, reference, comparison, operation, calculation, processing, output, printing, and display. Is remembered.
In addition, the arrows in the flowcharts described in the following description of the embodiments mainly indicate input / output of data and signals. The data and signal values are the RAM 914 memory, the FDD 904 flexible disk, the CDD 905 compact disk, and the magnetic field. The data is recorded on a recording medium such as a magnetic disk of the disk device 920, another optical disk, a mini disk, and a DVD (Digital Versatile Disk). Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。   In addition, what is described as “to part” in the description of the embodiment described below may be “to circuit”, “to device”, “to device”, “means”, and “to step”. ”,“ ˜procedure ”, or“ ˜processing ”. That is, what is described as “˜unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes the computer to function as “to part” described below. Alternatively, the procedure or method of “to part” described below is executed by a computer.

図3は、秘匿検索システム100の構成例を示す図である。図3は、図1に示した秘匿検索システム100の外観の一例を簡略化して図示している。
秘匿検索システム100は、ユーザ端末201、データセンター301を備える。ユーザ端末201はローカルエリアネットワーク942に接続されている。ローカルエリアネットワーク942はネットワーク101を介してデータセンター301と接続されている。
ユーザ端末201は、例えば企業のユーザが利用するPC(パーソナルコンピュータ)である。
ネットワーク101は、ローカルエリアネットワーク942とデータセンター301を接続する通信路である。
ローカルエリアネットワーク942は、企業内に施設された通信路であり、企業内で利用される様々なサーバやPCが接続される。なお、通信路は専用線や無線、ルータなどで構成される複雑な通信路となる。
ここで、図1はローカルエリアネットワーク942を使用した例を示している。しかし、例えば個人が家庭でユーザ端末201を使用する場合などは、ユーザ端末201は、ローカルエリアネットワーク942を介せず、直接ネットワーク101に接続することも可能である。
FIG. 3 is a diagram illustrating a configuration example of the confidential search system 100. FIG. 3 shows a simplified example of the appearance of the confidential search system 100 shown in FIG.
The secret search system 100 includes a user terminal 201 and a data center 301. User terminal 201 is connected to local area network 942. The local area network 942 is connected to the data center 301 via the network 101.
The user terminal 201 is, for example, a PC (personal computer) used by corporate users.
The network 101 is a communication path that connects the local area network 942 and the data center 301.
The local area network 942 is a communication path provided in the company, and various servers and PCs used in the company are connected to the local area network 942. The communication path is a complicated communication path composed of a dedicated line, a radio, a router, and the like.
Here, FIG. 1 shows an example in which a local area network 942 is used. However, for example, when an individual uses the user terminal 201 at home, the user terminal 201 can be directly connected to the network 101 without using the local area network 942.

ここで、秘匿検索システム100の大まかな動作を説明する。
秘匿検索システム100に用いる暗号方式は、基本的にはIDベース暗号(以下 IBE:Identity−Based Encryption)を用いた秘匿検索方式である。この方式によりユーザはデータセンター301に登録する情報も、検索時のキーワードも全て暗号化したまま、情報検索が可能である。以下に詳細を説明する。
まず、ユーザはユーザ端末201を用いて、ユーザが保存したい暗号化情報と暗号化情報に対応したタグ(以下、登録キーワードタグと称する)を組にしてデータセンター301に保存する。(なお、本実施の形態の説明においては、データ保管部305に保存された登録キーワードタグを保管キーワードタグと称しているが、実質的に同一のものであり、特に区別の必要が無い場合は、登録キーワードタグの表現を用いる)。
また、暗号化登録キーワードは暗号化情報を検索するための登録キーワード(暗号化情報の保存時にユーザが設定したキーワード)を暗号化したものである。そして、登録キーワードタグは1つ以上の暗号化登録キーワードから構成される。更に詳細に説明すると、暗号化登録キーワード(登録キーワードタグ)はユーザが入力した任意の平文を登録キーワードと公開鍵とで暗号化したものである。なお、任意の平文は、無意味な平文であり、以下無意味な平文と称する。ここで、暗号化情報と暗号化登録キーワード(登録キーワードタグ)は暗号化されていて、第3者は、情報を閲覧することが出来ない。
検索時には、ユーザは検索要求用キーワードをユーザ秘密鍵で暗号化したクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)をデータセンター301に送信する。ここで、クエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)も暗号化されていて第3者は、情報を閲覧することが出来ない。
データセンター301は、検索要求用クエリを用いて、保存している登録キーワードタグと一致検査を行う。検索要求用クエリと登録キーワードタグとが一致すれば、データセンター301は、組で保存されている暗号化情報をユーザに返却する。ここで、検索要求用クエリと登録キーワードタグとが一致とは、検索要求用クエリで登録キーワードタグを復号して、元の無意味な平文が得られることをいう。復号された無意味な平文からも第3者は情報を閲覧することが出来ず、第3者は、検索要求用クエリと登録キーワードタグとが一致したという状態が分かるのみとなる。その為にユーザは第3者に対する秘匿検索が可能である。
また、データセンター301は、企業内で作成された暗号化情報および登録キーワードタグを保存する大容量の記憶装置を持つサーバである。またデータセンター301は、一度検索された暗号化検索要求用キーワードの検索結果をインデックスとして保存し、次回以降に同一のキーワードが検索された場合に、そのインデックスを利用して高速に応答する機能を備える。
Here, a rough operation of the secret search system 100 will be described.
The encryption method used in the secret search system 100 is basically a secret search method using ID-based encryption (hereinafter referred to as IBE: Identity-Based Encryption). By this method, the user can search for information with all the information registered in the data center 301 and the keyword at the time of searching encrypted. Details will be described below.
First, the user uses the user terminal 201 to store in the data center 301 a set of encryption information that the user wants to store and a tag corresponding to the encryption information (hereinafter referred to as a registered keyword tag). (In the description of the present embodiment, the registered keyword tag stored in the data storage unit 305 is referred to as a stored keyword tag. However, the registered keyword tag is substantially the same, and there is no need for distinction. , Using the registered keyword tag representation).
The encrypted registration keyword is obtained by encrypting a registration keyword (keyword set by the user when storing the encrypted information) for searching the encrypted information. The registered keyword tag is composed of one or more encrypted registered keywords. More specifically, the encrypted registered keyword (registered keyword tag) is obtained by encrypting an arbitrary plaintext input by the user with a registered keyword and a public key. Arbitrary plaintext is meaningless plaintext and is hereinafter referred to as meaningless plaintext. Here, the encrypted information and the encrypted registered keyword (registered keyword tag) are encrypted, and a third party cannot view the information.
At the time of the search, the user transmits a query encryption search request keyword (or search request query) obtained by encrypting the search request keyword with the user secret key to the data center 301. Here, the query encryption search request keyword (or search request query) is also encrypted, and the third party cannot view the information.
The data center 301 uses the search request query to perform a matching check with the stored registered keyword tag. If the search request query matches the registered keyword tag, the data center 301 returns the encrypted information stored in pairs to the user. Here, the search request query and the registered keyword tag match means that the registered keyword tag is decrypted by the search request query, and the original meaningless plaintext is obtained. The third party cannot view the information from the decrypted meaningless plaintext, and the third party only knows that the search request query matches the registered keyword tag. Therefore, the user can perform a secret search for a third party.
The data center 301 is a server having a large-capacity storage device that stores encryption information and registered keyword tags created in the company. Further, the data center 301 stores a search result of the encrypted search request keyword once searched as an index, and when the same keyword is searched after the next time, the data center 301 has a function of responding at high speed using the index. Prepare.

次に、図4を用いて本実施の形態にて構成されているユーザ端末201について、更に詳しく説明する。   Next, the user terminal 201 configured in the present embodiment will be described in more detail with reference to FIG.

図4は、ユーザ端末201の構成を示すブロック図である。
ユーザ端末201は、情報・鍵格納領域202、暗号化情報管理部203、ユーザインターフェース204、検索要求用クエリ生成部205、タグ生成部206、通信モジュール207を備える。
FIG. 4 is a block diagram illustrating a configuration of the user terminal 201.
The user terminal 201 includes an information / key storage area 202, an encrypted information management unit 203, a user interface 204, a search request query generation unit 205, a tag generation unit 206, and a communication module 207.

情報・鍵格納領域202は、暗号化情報の基であるオリジナルの情報を保存する。ここでオリジナルの情報とは、例えば数値データや図面や文章などの平文の情報そのものでも良いし、既に暗号化された情報でも良い。またオリジナルの情報は、情報名やファイル名、情報を保存しているデータベースの位置情報などで有っても良いし、これらの組み合わせ(例えば前記の平文の情報そのものとファイル名の組み合わせなど)でも良い。
また、情報・鍵格納領域202は、情報を暗号化して暗号化情報を生成する為の鍵(暗号化情報生成鍵)と、検索要求用キーワードを暗号化して検索要求用クエリを生成する為のユーザ秘密鍵と、タグを生成するための公開鍵を保存する。
The information / key storage area 202 stores original information that is the basis of encrypted information. Here, the original information may be, for example, numerical data, plain text information such as drawings and texts, or already encrypted information. The original information may be an information name, a file name, location information of a database storing the information, or a combination thereof (for example, a combination of the plaintext information itself and a file name). good.
The information / key storage area 202 encrypts information to generate encrypted information (encrypted information generation key) and a search request keyword to generate a search request query. Save the user private key and the public key to generate the tag.

暗号化情報管理部203は、情報・鍵格納領域202に保存されている情報を暗号化し、暗号化情報を生成する。暗号化情報からは、第3者は、情報を閲覧することはできない。暗号化の方法としては、検索要求用クエリ生成部205やタグ生成部206で用いられる暗号化の方法とは別の方法が用いられる。
ユーザインターフェース204は、秘匿検索システム100をユーザが操作するためのインタフェースである。ユーザインターフェース204は、検索要求用クエリ生成部205や、タグ生成部206で用いるキーワードと無意味な平文をユーザが入力する機能を備える。なお、ユーザは、1つ以上のキーワード入力が可能である。
The encrypted information management unit 203 encrypts information stored in the information / key storage area 202 to generate encrypted information. A third party cannot view the information from the encrypted information. As an encryption method, a method different from the encryption method used in the search request query generation unit 205 and the tag generation unit 206 is used.
The user interface 204 is an interface for the user to operate the confidential search system 100. The user interface 204 has a function of allowing the user to input keywords and meaningless plain text used in the search request query generation unit 205 and the tag generation unit 206. Note that the user can input one or more keywords.

通信モジュール207は、検索要求用クエリ生成部205、タグ生成部206、暗号化情報管理部203が生成した検索要求(検索要求用クエリや検索要求用代表元タグ)や登録データ(受信暗号化情報や受信キーワードタグや無意味な平文)を、データセンター301に送信するために、ローカルエリアネットワーク942もしくはネットワーク101に接続するものである。   The communication module 207 includes a search request (search request query and search request representative tag) and registration data (received encryption information) generated by the search request query generation unit 205, tag generation unit 206, and encrypted information management unit 203. Or a received keyword tag or meaningless plaintext) is transmitted to the data center 301 to connect to the local area network 942 or the network 101.

ここで、検索要求と登録データの説明を行う。   Here, a search request and registration data will be described.

まず、図5、図6を用いてタグ生成部206における暗号化の動作および登録データの構造を説明する。   First, the encryption operation and the structure of registration data in the tag generation unit 206 will be described with reference to FIGS.

図5は、タグ生成部206におけるタグ生成の動作を示す図である。((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
ユーザは、ユーザインターフェース204を介して無意味な平文2305と登録キーワード2300とを入力する。
タグ生成部206は、ユーザが入力した無意味な平文2305に登録キーワード2300と情報・鍵格納領域202に保存された公開鍵とから暗号化登録キーワード2304と登録キーワードタグ2303とを生成する。また、タグ生成部206は、ユーザがユーザインターフェース204を介して入力した検索要求用キーワード2000と情報・鍵格納領域202に保存された公開鍵とからタグ暗号化検索要求用キーワード2005と検索要求用代表元タグ2004とを生成する。
FIG. 5 is a diagram illustrating an operation of tag generation in the tag generation unit 206. ((A) is for one keyword, (b) is for three keywords).
The user inputs meaningless plaintext 2305 and registered keyword 2300 via the user interface 204.
The tag generation unit 206 generates an encrypted registered keyword 2304 and a registered keyword tag 2303 from the registered keyword 2300 and the public key stored in the information / key storage area 202 in the meaningless plaintext 2305 input by the user. Further, the tag generation unit 206 uses the search request keyword 2000 input by the user via the user interface 204 and the public key stored in the information / key storage area 202 to generate the tag encrypted search request keyword 2005 and the search request. A representative source tag 2004 is generated.

具体的には、図5(a)を用いて登録データの生成を説明する。
例えば、ユーザがデータセンター301に保存する情報が「自動車」に関する情報とする。そして、データセンター301に保存する情報に「エンジン」に関係する記述が有る為にユーザは、登録キーワード2300として「エンジン」をユーザインターフェース204を介してタグ生成部206に入力する。
そして、タグ生成部206は、ユーザがユーザインターフェース204を介して入力した無意味な平文2305(例えば、pencil)を登録キーワード2300の「エンジン」と情報・鍵格納領域202に保存された公開鍵とで暗号化し、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する。
同様に、図5(b)のようにユーザがデータセンター301に保存する情報に「エンジン」「タイヤ」「ハンドル」に関係する記述が有る為、登録キーワード2300として「エンジン」「タイヤ」「ハンドル」の3つのキーワードを設定したとする。その場合は、タグ生成部206は、無意味な平文2305(例えば、pencil、rain、candy)を登録キーワード2300の「エンジン」「タイヤ」「ハンドル」と情報・鍵格納領域202に保存された公開鍵とで暗号化し、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する。
Specifically, generation of registration data will be described with reference to FIG.
For example, information stored in the data center 301 by the user is information related to “automobile”. Since the information stored in the data center 301 includes a description related to “engine”, the user inputs “engine” as the registered keyword 2300 to the tag generation unit 206 via the user interface 204.
Then, the tag generation unit 206 converts the meaningless plaintext 2305 (for example, pencil) input by the user via the user interface 204, the “keyword” of the registered keyword 2300, and the public key stored in the information / key storage area 202. The encrypted registration keyword 2304 (registered keyword tag 2303) is generated.
Similarly, since the information stored in the data center 301 by the user includes a description related to “engine”, “tire”, and “handle” as shown in FIG. 5B, “engine”, “tire”, “handle” are registered as the registered keywords 2300. 3 keywords are set. In that case, the tag generation unit 206 discloses meaningless plaintext 2305 (for example, pencil, rain, candy) stored in the information keyword / key storage area 202 as “engine”, “tire”, and “handle” of the registered keyword 2300. Encryption with a key is performed to generate an encrypted registered keyword 2304 (registered keyword tag 2303).

図6は、登録データ2301の構成の例を示す図である。
登録データ2301は、登録暗号化情報2302と登録キーワードタグ2303と無意味な平文2305とから構成される。
ここでは、図5(b)に説明した例を用いる。ユーザがデータセンター301に保存する情報が情報・鍵格納領域202に保存されている例えば「自動車情報1」であったとする。そして、暗号化情報管理部203は、「自動車情報1」を暗号化し、登録暗号化情報2302を生成する。登録暗号化情報の暗号化の方法としては、検索要求用クエリ生成部205やタグ生成部206で用いられる暗号化の方法とは別の方法が用いられる。(例えば、登録暗号化情報2302を生成の為の独自のユーザ秘密鍵など)。また、ここでは保存する情報を平文のテキスト文書のようなものと想定しているが、数値データや画像データでも良い。また、保存する情報は、情報名やファイル名、情報を保存しているデータベースの位置情報などで有っても良いし、これらの組み合わせ(例えば前記の平文の情報そのものとファイル名の組み合わせなど)でも良い。また保存する情報そのものが元々暗号化されていても良い。
そして、登録キーワードタグ2303は、図5(b)で説明の通り、登録暗号化情報2302に対応した(関連した)3つのキーワードが設定されている。
なお、無意味な平文2305は平文のまま登録キーワードタグ2303の暗号化登録キーワード2304と対応して登録データ2301に含まれる。
また、暗号化登録キーワード2304(登録キーワードタグ2303)は暗号化されており、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する為に用いた登録キーワード2300を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、登録キーワードタグ2303の属性として、登録キーワードタグ2303に含まれる暗号化登録キーワード2304の数は知ることが出来る。
FIG. 6 is a diagram illustrating an example of the configuration of the registration data 2301.
The registration data 2301 includes registration encryption information 2302, a registration keyword tag 2303, and meaningless plain text 2305.
Here, the example described in FIG. 5B is used. It is assumed that the information stored in the data center 301 by the user is, for example, “car information 1” stored in the information / key storage area 202. Then, the encrypted information management unit 203 encrypts “automobile information 1” and generates registered encrypted information 2302. As a method for encrypting the registered encryption information, a method different from the encryption method used in the search request query generation unit 205 and the tag generation unit 206 is used. (For example, a unique user secret key for generating the registered encryption information 2302). In addition, here, it is assumed that the information to be stored is like a plain text document, but numerical data or image data may be used. The information to be stored may be an information name, a file name, location information of a database storing the information, or a combination thereof (for example, a combination of the plaintext information itself and a file name). But it ’s okay. Further, the information itself to be stored may be originally encrypted.
In the registered keyword tag 2303, three keywords corresponding to (related to) the registered encrypted information 2302 are set as described with reference to FIG.
The meaningless plaintext 2305 is included in the registration data 2301 corresponding to the encrypted registration keyword 2304 of the registration keyword tag 2303 as plaintext.
The encrypted registration keyword 2304 (registered keyword tag 2303) is encrypted, and the third party can know the registered keyword 2300 used to generate the encrypted registered keyword 2304 (registered keyword tag 2303). Absent. However, the third party (or the data center 301) can know the number of encrypted registered keywords 2304 included in the registered keyword tag 2303 as an attribute of the registered keyword tag 2303.

そして、図7、図8を用いて検索要求用クエリ生成部205における暗号化の動作および検索要求の構造を説明する。
図7は、検索要求用クエリ生成部205における検索要求用クエリ2002生成の動作を示す図である。((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
検索要求用クエリ生成部205は、ユーザがユーザインターフェース204を介して入力したユーザが検索したいキーワード(以下、検索要求用キーワード2000と称す)と情報・鍵格納領域202に保存されたユーザ秘密鍵とからクエリ暗号化検索要求用キーワード2003と検索要求用クエリ2002を生成する。
The encryption operation and search request structure in the search request query generation unit 205 will be described with reference to FIGS.
FIG. 7 is a diagram showing an operation of generating the search request query 2002 in the search request query generating unit 205. ((A) is for one keyword, (b) is for three keywords).
The search request query generation unit 205 includes a keyword input by the user via the user interface 204 (hereinafter referred to as a search request keyword 2000) and a user secret key stored in the information / key storage area 202. From the above, a query encrypted search request keyword 2003 and a search request query 2002 are generated.

具体的には、図7(a)を用いて検索要求の生成を説明する。
例えば、ユーザが「エンジン」に関係する情報を検索したいとする。そして、ユーザは、検索要求用キーワード2000として「エンジン」をユーザインターフェース204を介して検索要求用クエリ生成部205に入力する。
そして、検索要求用クエリ生成部205は、検索要求用キーワード2000の「エンジン」を情報・鍵格納領域202にユーザ秘密鍵で暗号化し、クエリ暗号化検索要求用キーワード2003と検索要求用クエリ2002を生成する。
また、ユーザが検索要求用キーワード2000として「エンジン」「タイヤ」「ハンドル」の3つのキーワードを設定したとする。その場合は、検索要求用クエリ生成部205は、検索要求用キーワード2000の「エンジン」「タイヤ」「ハンドル」を情報・鍵格納領域202に保存されたユーザ秘密鍵で暗号化し、検索要求用クエリ2002を生成する。
Specifically, generation of a search request will be described with reference to FIG.
For example, assume that the user wants to search for information related to “engine”. Then, the user inputs “engine” as the search request keyword 2000 to the search request query generation unit 205 via the user interface 204.
Then, the search request query generation unit 205 encrypts the “engine” of the search request keyword 2000 in the information / key storage area 202 with the user secret key, and obtains the query encrypted search request keyword 2003 and the search request query 2002. Generate.
Further, it is assumed that the user sets three keywords “engine”, “tire”, and “handle” as the search request keyword 2000. In this case, the search request query generation unit 205 encrypts “engine”, “tire”, and “handle” of the search request keyword 2000 with the user secret key stored in the information / key storage area 202, and searches for the search request query. 2002 is generated.

図8は、検索要求2001の構成の例を示す図である。ここでは、図5(b)と図7(b)に説明した例(3つのキーワードが設定された場合)を図示している。
検索要求2001は、検索要求用クエリ2002と検索要求用代表元タグ2004と無意味な平文2305から構成される。
検索要求2001の生成において、ユーザが入力した検索要求用キーワード2000は、図4に示すように検索要求用クエリ生成部205とタグ生成部206の両方に入力される。そして、検索要求用クエリ生成部205は、検索要求用クエリ2002を生成し、タグ生成部206は、検索要求用代表元タグ2004を生成する。そして、ユーザ端末201は、両者を組み合わせて検索要求2001を生成する。
なお、無意味な平文2305は平文のまま検索要求用代表元タグ2004のタグ暗号化検索要求用キーワード2005に対応して検索要求用クエリ2002に含まれる。(以下の説明においては、検索要求用クエリ2002に含まれる無意味な平文2305の図示は省略する)。
また、検索要求用クエリ2002は暗号化されており、検索要求用クエリ2002を生成する為に用いた検索要求用キーワード2000を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、検索要求用クエリ2002の属性として、検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003の数は知ることが出来る。
同様に、検索要求用代表元タグ2004は暗号化されており、検索要求用代表元タグ2004を生成する為に用いた検索要求用キーワード2000を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、検索要求用代表元タグ2004の属性として、検索要求用代表元タグ2004に含まれるタグ暗号化検索要求用キーワード2005の数は知ることが出来る。
FIG. 8 is a diagram illustrating an example of the configuration of the search request 2001. Here, the example described in FIGS. 5B and 7B (when three keywords are set) is illustrated.
The search request 2001 includes a search request query 2002, a search request representative tag 2004, and a meaningless plaintext 2305.
In the generation of the search request 2001, the search request keyword 2000 input by the user is input to both the search request query generation unit 205 and the tag generation unit 206 as shown in FIG. Then, the search request query generation unit 205 generates a search request query 2002, and the tag generation unit 206 generates a search request representative tag 2004. Then, the user terminal 201 generates a search request 2001 by combining both.
The meaningless plaintext 2305 is included in the search request query 2002 corresponding to the tag encrypted search request keyword 2005 of the search request representative tag 2004 as plain text. (In the following description, the meaningless plaintext 2305 included in the search request query 2002 is not shown).
The search request query 2002 is encrypted, and the third party cannot know the search request keyword 2000 used to generate the search request query 2002. However, the third party (or data center 301) can know the number of query encrypted search request keywords 2003 included in the search request query 2002 as an attribute of the search request query 2002.
Similarly, the search request representative tag 2004 is encrypted, and the third party cannot know the search request keyword 2000 used to generate the search request representative tag 2004. However, the third party (or the data center 301) can know the number of tag encrypted search request keywords 2005 included in the search request representative tag 2004 as an attribute of the search request representative tag 2004.

次に、図9を用いてデータセンター301の説明を行う。   Next, the data center 301 will be described with reference to FIG.

図9は、データセンター301の構成を示すブロック図である。
データセンター301は、検索要求受信部302、検索処理部303、インデックス記憶部304、データ保管部305、インデックス更新管理部306、検索要求回答部307、登録データ受信部308、インデックス分類部309を備える。
なお、インデックス分類部309は、検索処理部303もしくはインデックス更新管理部306に含まれていても構わない。
FIG. 9 is a block diagram showing the configuration of the data center 301.
The data center 301 includes a search request receiving unit 302, a search processing unit 303, an index storage unit 304, a data storage unit 305, an index update management unit 306, a search request answering unit 307, a registered data receiving unit 308, and an index classification unit 309. .
The index classification unit 309 may be included in the search processing unit 303 or the index update management unit 306.

まず各構成要素の概要を説明する。   First, an outline of each component will be described.

検索要求受信部302は、ユーザ端末201から送信された検索要求2001を受信し、検索処理部303へ入力する。
登録データ受信部308は、ユーザ端末201から登録データ2301を受信すると、インデックス更新管理部306とデータ保管部305に登録データ2301を入力する。
データ保管部305は、登録データ受信部308から受信した登録データ2301を保管データ4001として保存する。その際にデータ保管部305は、登録暗号化情報2302を保管暗号化情報4002として、登録キーワードタグ2303を保管キーワードタグ4003として保存する。(登録データ2301と保管データ4001は実質的に同一のものであり、特に区別の必要が無い場合は、登録データ2301の表現を用いている。登録暗号化情報2302と保管暗号化情報4002、登録キーワードタグ2303と保管キーワードタグ4003についても同様である。)また、データ保管部305は、無意味な平文2305も保管データ4001の一部として保存する。
保管キーワードタグ4003は、登録キーワードタグ2303と同一構造であり、保管キーワードタグ4003を生成する為に用いた登録キーワード2300を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、保管キーワードタグ4003の属性として保管キーワードタグ4003に含まれる暗号化登録キーワード2304の数は知ることが出来る。
The search request receiving unit 302 receives the search request 2001 transmitted from the user terminal 201 and inputs it to the search processing unit 303.
When the registration data receiving unit 308 receives the registration data 2301 from the user terminal 201, the registration data receiving unit 308 inputs the registration data 2301 to the index update management unit 306 and the data storage unit 305.
The data storage unit 305 stores the registration data 2301 received from the registration data reception unit 308 as storage data 4001. At that time, the data storage unit 305 stores the registered encrypted information 2302 as stored encrypted information 4002 and the registered keyword tag 2303 as stored keyword tag 4003. (Registration data 2301 and storage data 4001 are substantially the same, and if there is no need to distinguish between them, the expression of registration data 2301 is used. Registration encryption information 2302 and storage encryption information 4002, registration The same applies to the keyword tag 2303 and the storage keyword tag 4003.) Further, the data storage unit 305 also stores the meaningless plain text 2305 as a part of the storage data 4001.
The storage keyword tag 4003 has the same structure as the registered keyword tag 2303, and the third party cannot know the registered keyword 2300 used to generate the storage keyword tag 4003. However, the third party (or the data center 301) can know the number of encrypted registration keywords 2304 included in the storage keyword tag 4003 as an attribute of the storage keyword tag 4003.

検索処理部303は、検索要求受信部302から検索要求2001を受信し、検索要求2001に応じて、インデックス記憶部304もしくはデータ保管部305の検索を行う。
インデックス記憶部304は、過去に検索処理部303が検索した検索結果を保存する。
インデックス分類部309は、クエリ暗号化検索要求用キーワード2003の数に応じてインデックス記憶部304の検索対象領域を決定する。
インデックス更新管理部306は、インデックス記憶部304に保存された内容を更新する。
検索要求回答部307は、検索処理部303によって検索された登録暗号化情報2302をユーザ端末201に送信する。
The search processing unit 303 receives the search request 2001 from the search request receiving unit 302 and searches the index storage unit 304 or the data storage unit 305 according to the search request 2001.
The index storage unit 304 stores search results searched by the search processing unit 303 in the past.
The index classification unit 309 determines a search target area of the index storage unit 304 according to the number of query encrypted search request keywords 2003.
The index update management unit 306 updates the content stored in the index storage unit 304.
The search request response unit 307 transmits the registered encryption information 2302 searched by the search processing unit 303 to the user terminal 201.

前記のデータセンター301の各構成要素の内、まずは検索処理部303がデータ保管部305の検索を行う例を詳細説明する。   Of the components of the data center 301, first, an example in which the search processing unit 303 searches the data storage unit 305 will be described in detail.

検索処理部303は、検索要求受信部302から入力された検索要求2001に応じて、データ保管部305に保存された保管データ4001を検索する。その際に、検索処理部303は、検索要求2001に含まれる検索要求用クエリ2002で保管データ4001に含まれる保管キーワードタグ4003を照合(復号処理)する。そして、検索要求用クエリ2002で保管キーワードタグ4003が復号出来た場合に、検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003と保管キーワードタグ4003に含まれる暗号化登録キーワード2304とが一致したと判断する。   The search processing unit 303 searches the stored data 4001 stored in the data storage unit 305 in response to the search request 2001 input from the search request receiving unit 302. At that time, the search processing unit 303 collates (decodes) the storage keyword tag 4003 included in the storage data 4001 with the search request query 2002 included in the search request 2001. When the storage keyword tag 4003 can be decrypted by the search request query 2002, the query encrypted search request keyword 2003 included in the search request query 2002 and the encrypted registered keyword 2304 included in the storage keyword tag 4003 are obtained. Judge that they match.

ここで、図10、図11、図12を用いて検索要求用クエリ2002で保管キーワードタグ4003を復号する動作を説明する。   Here, an operation of decrypting the storage keyword tag 4003 with the search request query 2002 will be described with reference to FIGS. 10, 11, and 12.

図10は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第1の例を示す図である。
図11は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第2の例を示す図である。
図12は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第3の例を示す図である。
なお、図10〜図12における検索要求用クエリ2002の無意味な平文2305の図示は省略している。
FIG. 10 is a diagram illustrating a first example of an operation of decrypting the storage keyword tag 4003 with the search request query 2002.
FIG. 11 is a diagram illustrating a second example of the operation of decrypting the storage keyword tag 4003 with the search request query 2002.
FIG. 12 is a diagram illustrating a third example of the operation of decrypting the storage keyword tag 4003 with the search request query 2002.
The meaningless plaintext 2305 of the search request query 2002 in FIGS. 10 to 12 is not shown.

まず図10に示す例は、登録データ2301における登録キーワードタグ2303の暗号化登録キーワード2304が3つ有る場合(図5(b)の例と同じ)である。この登録データ2301がデータ保管部305に保管データ4001として保存されることで、同じく保管キーワードタグ4003は、暗号化登録キーワード2304が3つ有る状態となっている。そして、検索要求用クエリ2002は、クエリ暗号化検索要求用キーワード2003が1つの場合(図7(a)の例と同じ)である。   First, the example shown in FIG. 10 is a case where there are three encrypted registration keywords 2304 of the registration keyword tag 2303 in the registration data 2301 (the same as the example of FIG. 5B). Since the registration data 2301 is stored as the storage data 4001 in the data storage unit 305, the storage keyword tag 4003 similarly has three encrypted registration keywords 2304. The search request query 2002 is the case where there is one query encrypted search request keyword 2003 (same as the example in FIG. 7A).

検索処理部303は、図10に示す検索要求2001に含まれる検索要求用クエリ2002で、保管データ4001に含まれる保管キーワードタグ4003を復号する。そして、無意味な平文2305(例えばpencil)が正しく再現出来れば、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003が一致すると判断する。ここで、無意味な平文2305は、ユーザ端末201のタグ生成部206において暗号化された登録キーワードタグ2303を生成する際に用いられたものである。(以下、復号処理により正しい無意味な平文が再現することを、「一致する」もしくは「復号出来る」と表現する)。
そして、検索処理部303は、検索要求用クエリ2002に一致した保管キーワードタグ4003に対応する保管暗号化情報4002が検索要求用キーワード2000に対応する保管暗号化情報であると判断する。
なお、無意味な平文2305は、登録キーワードタグ2303と一緒に登録データ2301の一部としてデータ保管部305に保存されている。そこで、検索処理部303は、データ保管部305に保存された無意味な平文2305を参照することで、復号において無意味な平文2305を正しく再現したかを判断する。
The search processing unit 303 decrypts the storage keyword tag 4003 included in the storage data 4001 using the search request query 2002 included in the search request 2001 shown in FIG. If the meaningless plaintext 2305 (for example, pencil) can be reproduced correctly, the search processing unit 303 determines that the search request query 2002 and the storage keyword tag 4003 match. Here, the meaningless plaintext 2305 is used when the registered keyword tag 2303 encrypted by the tag generation unit 206 of the user terminal 201 is generated. (Hereinafter, the reproduction of a correct meaningless plaintext by decryption processing is expressed as “match” or “can be decrypted”).
Then, the search processing unit 303 determines that the storage encryption information 4002 corresponding to the storage keyword tag 4003 that matches the search request query 2002 is storage encryption information corresponding to the search request keyword 2000.
The meaningless plaintext 2305 is stored in the data storage unit 305 together with the registered keyword tag 2303 as part of the registered data 2301. Therefore, the search processing unit 303 refers to the meaningless plaintext 2305 stored in the data storage unit 305 to determine whether the meaningless plaintext 2305 has been correctly reproduced in the decryption.

次に図11に示す例は、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003が2つの場合で、2つのクエリ暗号化検索要求用キーワード2003が両方とも保管キーワードタグ4003の暗号化登録キーワード2304に一致する場合である。この場合は、検索要求用キーワード「エンジン」と「ハンドル」それぞれに対応した無意味な平文2305(例えばPencilとCandy)は、正しく再現される。そして、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003とが一致すると判断する。   Next, the example shown in FIG. 11 shows the case where there are two query encrypted search request keywords 2003 of the search request query 2002, and both of the two query encrypted search request keywords 2003 are encrypted registration of the storage keyword tag 4003. This is a case where the keyword 2304 is matched. In this case, the meaningless plain text 2305 (for example, Pencil and Candy) corresponding to the search request keywords “engine” and “handle” are correctly reproduced. Then, the search processing unit 303 determines that the search request query 2002 and the storage keyword tag 4003 match.

一方、図12に示す例は、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003が2つの場合である。そして、2つのクエリ暗号化検索要求用キーワード2003のうち1つしか保管キーワードタグ4003の暗号化登録キーワード2304に一致しない場合である。この場合は、検索要求用キーワード「エンジン」に対応した無意味な平文2305(例えばPencil)が正しく再現されるが、検索要求用キーワード「アクセル」に対応した無意味な平文2305は誤って再現される。(例えば%6h+¥)。
そこで、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003とが一致しないと判断する。
On the other hand, the example shown in FIG. 12 is a case where there are two query encryption search request keywords 2003 of the search request query 2002. In this case, only one of the two query encryption search request keywords 2003 matches the encryption registration keyword 2304 of the storage keyword tag 4003. In this case, the meaningless plaintext 2305 (for example, Pencil) corresponding to the search request keyword “engine” is correctly reproduced, but the meaningless plaintext 2305 corresponding to the search request keyword “accel” is erroneously reproduced. The (For example,% 6h + ¥).
Therefore, the search processing unit 303 determines that the search request query 2002 and the storage keyword tag 4003 do not match.

次に、図13を用いて前記データセンター301の各構成要素の内、インデックス記憶部304の詳細を説明する。
図13は、インデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図である。インデックス3001は、複数(例えばn個)のキーワード数別インデックス3002で構成される。キーワード数別インデックス3002は、検索要求用クエリ2002に含まれるn個(n≧1)のキーワード数に対応する。(図中に3002−1〜3002−nで表記)。さらに、キーワード数別インデックス3002は、1つ以上のエントリ3003から構成され、ユーザの検索要求により、必要に応じて生成される。
そして、エントリ3003は、エントリ用代表元タグ3004、エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305から構成される。
エントリ用代表元タグ3004は、1つ以上の暗号化代表元用キーワードで構成される。実施の形態1においては、エントリ用代表元タグ3004は、検索要求2001に含まれる検索要求用代表元タグ2004が保存されたものである。その為、暗号化代表元用キーワードは、タグ暗号化検索要求用キーワード2005となる。また、暗号化代表元用キーワードは、無意味な平文2305が代表元用キーワードと公開鍵とで暗号化されたものである。その為、代表元用キーワードは検索要求用キーワード2000となる。エントリ用検索クエリ3006は、検索要求2001に含まれる検索要求用クエリ2002が保存されたものである。エントリ用暗号化情報3007は、複数の登録暗号化情報2302もしくは保管暗号化情報4002がエントリ3003に保存されたものである。もしくは、エントリ用暗号化情報3007は、データ保管部305における保管暗号化情報4002の識別子であっても良い。ここで、識別子とは、データの保管場所を示すアドレス情報であっても良いし、データの保管場所を示すリンクやポインタであっても良いし、データを特定可能なファイル名で有っても良い。
また、無意味な平文2305は、エントリ用代表元タグ3004が正しく復号されたかを検索処理部303が判断するのに用いられる。
Next, details of the index storage unit 304 among the components of the data center 301 will be described with reference to FIG.
FIG. 13 is a diagram illustrating an example of a data structure of a search result stored in the index storage unit 304. The index 3001 includes a plurality of (for example, n) keyword-specific indexes 3002. The keyword-specific index 3002 corresponds to the number of n (n ≧ 1) keywords included in the search request query 2002. (Denoted as 3002-1 to 3002-n in the figure). Furthermore, the keyword-specific index 3002 is composed of one or more entries 3003, and is generated as required by a user search request.
The entry 3003 includes an entry representative tag 3004, an entry search query 3006, entry encryption information 3007, and meaningless plaintext 2305.
The entry representative source tag 3004 includes one or more encrypted representative source keywords. In the first embodiment, the entry representative source tag 3004 stores the search request representative source tag 2004 included in the search request 2001. For this reason, the encryption representative keyword is the tag encryption search request keyword 2005. The encrypted representative keyword is a meaningless plaintext 2305 encrypted with the representative keyword and the public key. Therefore, the representative source keyword is the search request keyword 2000. The entry search query 3006 stores the search request query 2002 included in the search request 2001. The entry encryption information 3007 is a plurality of registered encryption information 2302 or storage encryption information 4002 stored in the entry 3003. Alternatively, the entry encryption information 3007 may be an identifier of the storage encryption information 4002 in the data storage unit 305. Here, the identifier may be address information indicating the data storage location, a link or pointer indicating the data storage location, or a file name that can identify the data. good.
The meaningless plaintext 2305 is used by the search processing unit 303 to determine whether the entry representative tag 3004 has been correctly decrypted.

次いで、秘匿検索システム100のデータ検索処理の概要説明を行う。
図14は、データセンター301で実施される処理の概要を示したフローチャートである。
Next, the outline of the data search process of the secret search system 100 will be described.
FIG. 14 is a flowchart showing an outline of processing performed in the data center 301.

まず、ステップS401において、データセンター301は、ユーザ端末201からネットワーク101を経由して送信される検索要求2001を、検索要求受信部302で受信する。
次に、ステップS402において、検索要求受信部302は、検索要求2001を検索処理部303に転送する。
次に、ステップS403において、検索処理部303は、インデックス分類部309により指定されたインデックス記憶部304のキーワード数別インデックス3002を参照する。そして、検索処理部303は、検索要求受信部302から転送された検索要求用クエリ2002に含まれるキーワードが、インデックス記憶部304に保存されているか検査する。
次に、ステップS404において、検索処理部303は、受信した検索要求2001のタグ暗号化検索要求用キーワード2005がインデックス記憶部304に存在した場合(該当あり)は、エントリ3003のエントリ用暗号化情報3007から該当する暗号化情報を読み出し、検索要求回答部307を介して、検索要求のあったユーザ端末201へ回答する。
また、ステップS405において、S403の検査で検索要求2001のタグ暗号化検索要求用キーワード2005がインデックス記憶部304に存在しなかった場合(該当なし)、検索処理部303は、データ保管部305を検索する。その際、検索処理部303は、インデックス検査S403で判定したエントリ用代表元タグ3004と同じ保管キーワードタグ4003を持つ保管データ4001を検索対象から除外する。
次に、ステップS406において、インデックス更新管理部306は、S405の検索の結果、検索要求2001に一致する登録データ2301がある場合(該当暗号化情報あり)、インデックス登録を行う。そして、S404において、検索処理部303は、該当する暗号化情報を読み出し、検索要求回答部307を介して、検索要求のあったユーザ端末201へ回答する。
S405において、データ保管部305にも、検索要求に該当するデータが存在しない場合(該当暗号化情報なし)、検索処理部303は、検索要求回答部307を介して、検索要求のあったユーザ端末201へ該当データが存在しない旨を回答する。
First, in step S <b> 401, the data center 301 receives a search request 2001 transmitted from the user terminal 201 via the network 101 by the search request receiving unit 302.
Next, in step S <b> 402, the search request receiving unit 302 transfers the search request 2001 to the search processing unit 303.
Next, in step S <b> 403, the search processing unit 303 refers to the keyword count index 3002 in the index storage unit 304 specified by the index classification unit 309. The search processing unit 303 then checks whether the keyword included in the search request query 2002 transferred from the search request receiving unit 302 is stored in the index storage unit 304.
Next, in step S404, when the tag encryption search request keyword 2005 of the received search request 2001 is present in the index storage unit 304 (applicable), the search processing unit 303 determines the entry encryption information of the entry 3003. The corresponding encrypted information is read out from 3007, and a response is made to the user terminal 201 that made the search request via the search request answering unit 307.
In step S405, when the tag encryption search request keyword 2005 of the search request 2001 does not exist in the index storage unit 304 in the inspection of S403 (not applicable), the search processing unit 303 searches the data storage unit 305. To do. At this time, the search processing unit 303 excludes the storage data 4001 having the same storage keyword tag 4003 as the entry representative source tag 3004 determined in the index check S403 from the search target.
Next, in step S406, the index update management unit 306 performs index registration if there is registration data 2301 that matches the search request 2001 as a result of the search in S405 (there is corresponding encryption information). In step S <b> 404, the search processing unit 303 reads the corresponding encrypted information, and replies to the user terminal 201 that made the search request via the search request answering unit 307.
In S405, if the data corresponding to the search request does not exist in the data storage unit 305 (there is no corresponding encryption information), the search processing unit 303 passes the search request answering unit 307 to the user terminal that has made the search request. A response is made to 201 that the corresponding data does not exist.

そして、秘匿検索システム100のデータ検索処理の詳細説明を行う。   Then, a detailed description of the data search process of the secret search system 100 will be given.

まず図15を参照し、本実施の形態におけるインデックス検査S403を詳しく説明する。
図15は、検索処理部303におけるインデックス検査S403の動作を示すフローチャートである。
まず、ステップS501において、検索処理部303は、受信した検索要求2001をインデックス分類部309に入力する。インデックス分類部309は、検索要求2001の検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003の数に応じてキーワード数別インデックス3002の内、どのキーワード数別インデックスを検索するかを選択する。
次に、ステップS502において、検索処理部303は、インデックス分類部309が選択したキーワード数別インデックスから、未検査のエントリ3003があるかを検査する。
次に、ステップS503において、検索処理部303は、未検査のエントリが無い場合は、検索要求2001に該当するデータが存在しないため「該当なし」とし、保管データ全探索S405に進むため、インデックス検査S403を終了する。未検査のエントリがある場合、そこに保存されているエントリ用代表元タグ3004と検索要求2001における検索要求用クエリ2002とが一致するかを検査する。エントリ用代表元タグ3004と検索要求2001における検索要求用クエリ2002とが一致しなかった場合(不一致)、検索処理部303は、他の未検査のエントリ3003を検査するため、S502に戻る。
次に、ステップS504において、検索処理部303は、エントリ用代表元タグ3004と検索要求用クエリ2002とが一致した場合(一致)、エントリ用代表元タグ3004が対応するエントリ用暗号化情報3007を読み取る。そして、検索処理部303は、読み取ったエントリ用暗号化情報3007を検索要求回答部307に出力する。
なお、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合、検索処理部303は、識別子が示す保管暗号化情報4002をデータ保管部305から取り出す。そして、検索処理部303は、その保管暗号化情報4002を検索要求回答部307に出力する。(以下、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合の検索処理部303からの出力処理は同様である。そのため、以下、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合の説明を省略する)。
First, the index check S403 in the present embodiment will be described in detail with reference to FIG.
FIG. 15 is a flowchart showing the operation of the index check S403 in the search processing unit 303.
First, in step S501, the search processing unit 303 inputs the received search request 2001 to the index classification unit 309. The index classification unit 309 selects which keyword number index to search in the keyword number index 3002 according to the number of query encrypted search request keywords 2003 included in the search request query 2002 of the search request 2001. To do.
Next, in step S502, the search processing unit 303 checks whether there is an unchecked entry 3003 from the keyword-specific index selected by the index classification unit 309.
Next, in step S503, if there is no unchecked entry, the search processing unit 303 sets “not applicable” because there is no data corresponding to the search request 2001, and proceeds to the stored data full search S405. S403 ends. If there is an unchecked entry, it is checked whether the entry representative tag 3004 stored therein matches the search request query 2002 in the search request 2001. If the entry representative tag 3004 and the search request query 2002 in the search request 2001 do not match (mismatch), the search processing unit 303 returns to S502 to check another unchecked entry 3003.
In step S504, when the entry representative tag 3004 and the search request query 2002 match (match), the search processing unit 303 stores the entry encryption information 3007 corresponding to the entry representative tag 3004. read. Then, the search processing unit 303 outputs the read entry encryption information 3007 to the search request answering unit 307.
When the information stored in the entry encryption information 3007 is the identifier of the storage encryption information 4002, the search processing unit 303 extracts the storage encryption information 4002 indicated by the identifier from the data storage unit 305. Then, the search processing unit 303 outputs the storage encryption information 4002 to the search request answering unit 307. (Hereinafter, the output processing from the search processing unit 303 when the information stored in the entry encryption information 3007 is the identifier of the stored encryption information 4002 is the same. Therefore, hereinafter, the entry encryption information is used.) (The description of the case where the information stored in 3007 is the identifier of the stored encrypted information 4002 is omitted).

次に図16を参照し、本実施の形態におけるインデックス登録S406を詳しく説明する。
図16は、インデックス更新管理部306におけるインデックス登録S406の動作を示すフローチャートである。
保管データ全探索S405において、データ保管部305から、検索要求2001に合致する検索結果(すなわち検索要求2001に合致する保管データ4001)が得られた場合に、検索処理部303は、保管データ4001に含まれる保管暗号化情報4002もしくは保管暗号化情報4002の識別子をエントリ用暗号化情報3007として、インデックス更新管理部306に転送する。また、検索処理部303は、登録データ2301に合致した検索要求2001もインデックス更新管理部306に転送する。
そして、ステップS601において、インデックス更新管理部306は検索処理部303から転送されたエントリ用暗号化情報3007と検索要求2001をインデックス分類部309に入力する。そして、インデックス分類部309は、検索要求2001に含まれる検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003の数に応じて、インデックス3001のキーワード数別インデックス3002のどこにエントリ用暗号化情報3007を登録するか決定する。
次に、ステップS602において、インデックス更新管理部306は、検索結果に対応した新規のエントリ3003を作成する。
次に、ステップS603において、インデックス更新管理部306は、作成したエントリのエントリ用代表元タグ3004には検索要求2001の検索要求用代表元タグ2004を設定する。
次に、ステップS604において、インデックス更新管理部306は、作成したエントリのエントリ用検索クエリ3006に検索要求2001の検索要求用クエリ2002を設定する。
次に、ステップS605において、インデックス更新管理部306は、作成したエントリのエントリ用暗号化情報3007を設定する。
なお、S603からS605までの処理は順不同である。
Next, the index registration S406 in the present embodiment will be described in detail with reference to FIG.
FIG. 16 is a flowchart showing the operation of index registration S406 in the index update management unit 306.
When the search result that matches the search request 2001 (that is, the stored data 4001 that matches the search request 2001) is obtained from the data storage unit 305 in the stored data full search S405, the search processing unit 303 stores the search data in the stored data 4001. The stored encryption information 4002 or the identifier of the storage encryption information 4002 included is transferred to the index update management unit 306 as entry encryption information 3007. The search processing unit 303 also transfers the search request 2001 that matches the registration data 2301 to the index update management unit 306.
In step S <b> 601, the index update management unit 306 inputs the entry encryption information 3007 and the search request 2001 transferred from the search processing unit 303 to the index classification unit 309. Then, the index classification unit 309 selects the entry encryption information 3007 in the keyword-specific index 3002 of the index 3001 according to the number of query encryption search request keywords 2003 of the search request query 2002 included in the search request 2001. Decide whether to register.
In step S602, the index update management unit 306 creates a new entry 3003 corresponding to the search result.
Next, in step S603, the index update management unit 306 sets the search request representative tag 2004 of the search request 2001 to the entry representative tag 3004 of the created entry.
Next, in step S604, the index update management unit 306 sets the search request query 2002 of the search request 2001 in the entry search query 3006 of the created entry.
Next, in step S605, the index update management unit 306 sets entry encryption information 3007 for the created entry.
Note that the processing from S603 to S605 is in no particular order.

次に図17を参照して、秘匿検索システム100のデータ新規登録処理の説明を行う。
図17は、ユーザが新規にデータをデータセンター301に登録する際の動作を示したフローチャートである。
まず、ステップS701において、登録データ受信部308が、ユーザ端末201から登録データ2301を受信すると、登録データ受信部308は、データ保管部305とインデックス更新管理部306とに登録データ2301を転送する。
次に、ステップS702において、インデックス更新管理部306は、登録データ2301の登録キーワードタグ2303と全てのキーワード数別インデックスに保存されたエントリ3003のエントリ用検索クエリ3006との一致判定を行う。(ここで、インデックス分類部309は、全てのキーワード数別インデックスとの照合を指定する)。
次に、ステップS703において、インデックス更新管理部306は、登録データ2301における登録キーワードタグ2303に一致するエントリ用検索クエリ3006を保存したエントリがある場合(一致)、該当する全てのエントリに登録暗号化情報2302をエントリ用暗号化情報3007として追加する。登録キーワードタグ2303とエントリ用検索クエリ3006とが一致しない場合(不一致)、インデックス更新管理部306は、インデックス3001の更新を行わない。
次に、ステップS704において、登録キーワードタグ2303とエントリ用検索クエリ3006とが一致/不一致に関わらず、データ保管部305は、登録データ受信部308から転送された登録データ2301を保管データ4001として保存する。保管データ4001は、保管キーワードタグ4003として保存された登録キーワードタグ2303と、保管暗号化情報4002として保存された登録暗号化情報2302とで構成される。
すなわち、登録キーワードタグ2303とエントリ用検索クエリ3006とが一致する場合は、登録暗号化情報2302は、インデックス記憶部304のエントリ3003とデータ保管部305との両方に保存される。
あるいは、図17のフローチャートには図示しないが、例えば、ユーザが登録暗号化情報2302をインデックス記憶部304とデータ保管部305との両方に保存する必要が無いと判断する場合が想定される。その場合には、インデックス更新管理部306は、ステップS704において登録データ受信部308が保存した保管暗号化情報4002の識別子をデータ保管部305から取得する。そして、インデックス更新管理部306は、登録暗号化情報2302の代わりに保管暗号化情報4002の識別子をエントリ用暗号化情報3007としてエントリ3003に保存することも出来る。
ユーザは例えば登録暗号化情報2302の容量が大きい場合は、保管暗号化情報4002の識別子をエントリ用暗号化情報3007として保存することが可能である。またユーザは例えば登録暗号化情報2302の容量が小さい場合は登録暗号化情報2302を保存するなどの選択が可能である。そして、ユーザは登録暗号化情報2302に応じて、保管暗号化情報4002の識別子と登録暗号化情報2302を混在してエントリ用暗号化情報3007として保存することが可能である。
Next, the new data registration process of the secret search system 100 will be described with reference to FIG.
FIG. 17 is a flowchart showing an operation when a user newly registers data in the data center 301.
First, in step S <b> 701, when the registration data receiving unit 308 receives the registration data 2301 from the user terminal 201, the registration data receiving unit 308 transfers the registration data 2301 to the data storage unit 305 and the index update management unit 306.
In step S <b> 702, the index update management unit 306 determines whether the registered keyword tag 2303 in the registered data 2301 matches the entry search query 3006 of the entry 3003 stored in all the keyword-specific indexes. (Here, the index classification unit 309 specifies collation with all the index by number of keywords).
Next, in step S703, if there is an entry storing the entry search query 3006 that matches the registered keyword tag 2303 in the registration data 2301 (match), the index update management unit 306 registers and encrypts all corresponding entries. Information 2302 is added as entry encryption information 3007. When the registered keyword tag 2303 and the entry search query 3006 do not match (mismatch), the index update management unit 306 does not update the index 3001.
In step S704, the data storage unit 305 stores the registration data 2301 transferred from the registration data reception unit 308 as storage data 4001 regardless of whether the registered keyword tag 2303 matches the entry search query 3006. To do. The storage data 4001 includes registered keyword tags 2303 stored as storage keyword tags 4003 and registered encryption information 2302 stored as storage encryption information 4002.
That is, when the registered keyword tag 2303 and the entry search query 3006 match, the registered encrypted information 2302 is stored in both the entry 3003 and the data storage unit 305 of the index storage unit 304.
Alternatively, although not shown in the flowchart of FIG. 17, for example, it is assumed that the user determines that it is not necessary to save the registered encrypted information 2302 in both the index storage unit 304 and the data storage unit 305. In that case, the index update management unit 306 acquires the identifier of the storage encryption information 4002 stored by the registration data reception unit 308 from the data storage unit 305 in step S704. Then, the index update management unit 306 can store the identifier of the storage encryption information 4002 in the entry 3003 as the entry encryption information 3007 instead of the registered encryption information 2302.
For example, when the capacity of the registered encryption information 2302 is large, the user can store the identifier of the storage encryption information 4002 as the entry encryption information 3007. Further, for example, when the capacity of the registered encrypted information 2302 is small, the user can select to save the registered encrypted information 2302. Then, according to the registered encryption information 2302, the user can store the identifier of the stored encryption information 4002 and the registered encryption information 2302 together as the entry encryption information 3007.

ここで、秘匿検索システム100のデータ新規登録処理及びデータ検索処理の具体例を示す。
図18は、登録データ2301と保管データ4001との具体例を示す図である。((a)は登録データ2301a、(b)は登録データ2301b、(c)は登録データ2301c、(d)は保管データ4001a、(e)は保管データ4001b、(f)は保管データ4001c)。ここで、登録データと保管データとに含まれる無意味な平文2305は図示を省略している。
図19は、検索要求2001の具体例を示す図である。((a)は検索要求2001a、(b)は検索要求2001b、(c)は検索要求2001c)。
図20は、ステップS405の保管データ全探索の動作を示す図である。
図21は、検索要求2001aに基づくインデックス登録の例を示す図である。
図22は、検索要求2001a〜cに基づくインデックス登録の例を示す図である。
図23は、検索要求2001a〜cに基づくエントリ登録の例を示す図である。((a)はエントリ3003a、(b)はエントリ3003b、(c)はエントリ3003c)。
図24は、登録データ2301dを示す図である。
図25は、登録データ2301dに含まれる登録暗号化情報がエントリに追加された例を示す図である。
図26は、検索要求2001の更なる具体例を示す図である。((a)は検索要求2001d、(b)は検索要求2001e)。
Here, a specific example of data new registration processing and data search processing of the secret search system 100 will be shown.
FIG. 18 is a diagram illustrating a specific example of the registration data 2301 and the storage data 4001. ((A) is registration data 2301a, (b) is registration data 2301b, (c) is registration data 2301c, (d) is storage data 4001a, (e) is storage data 4001b, and (f) is storage data 4001c). Here, the meaningless plaintext 2305 included in the registration data and the storage data is not shown.
FIG. 19 is a diagram illustrating a specific example of the search request 2001. ((A) is a search request 2001a, (b) is a search request 2001b, and (c) is a search request 2001c).
FIG. 20 is a diagram illustrating an operation of searching for all stored data in step S405.
FIG. 21 is a diagram illustrating an example of index registration based on the search request 2001a.
FIG. 22 is a diagram illustrating an example of index registration based on the search requests 2001a to 2001c.
FIG. 23 is a diagram illustrating an example of entry registration based on the search requests 2001a to 2001c. ((A) is entry 3003a, (b) is entry 3003b, and (c) is entry 3003c).
FIG. 24 is a diagram showing registration data 2301d.
FIG. 25 is a diagram illustrating an example in which the registration encryption information included in the registration data 2301d is added to the entry.
FIG. 26 is a diagram showing a further specific example of the search request 2001. ((A) is a search request 2001d, (b) is a search request 2001e).

まず、登録データの新規登録処理を説明する。
ここで、初期状態としては、秘匿検索システム100に保管データ4001が何も無い状態を想定する。
そして、登録データ受信部308は、図18に示す登録データ2301a〜cを受信したとする。そして、図17に示すステップS702においてエントリ用検索クエリ3006が何も無い状態なので、登録データ2301a〜cは、保管データ4001a〜cとしてデータ保管部305に保存される。
First, registration data new registration processing will be described.
Here, as an initial state, it is assumed that there is no storage data 4001 in the confidential search system 100.
Then, it is assumed that the registration data receiving unit 308 receives the registration data 2301a to 2301c illustrated in FIG. Since there is no entry search query 3006 in step S702 shown in FIG. 17, the registration data 2301a to c are stored in the data storage unit 305 as storage data 4001a to c.

そして、次に検索要求による検索処理を説明する。
検索要求受信部302は、図19(a)に示す検索要求2001aを受信したとする。図14のステップS403において、インデックス3001に何もデータが無い状態なので、検索処理部303は、図14のステップS405の保管データ全探索を行う。
図20に示すように、クエリ暗号化検索要求用キーワード2003a「エンジン」とクエリ暗号化検索要求用キーワード2003b「タイヤ」との両方に一致する保管キーワードタグ4003は、第1の保管データ4001aと第2の保管データ4001bとに存在する。
そこで、図16に示すステップS406内のステップS601において、インデックス分類部309は、検索要求2001aのクエリ暗号化検索要求用キーワード2003がクエリ暗号化検索要求用キーワード2003a「エンジン」とクエリ暗号化検索要求用キーワード2003b「タイヤ」の2つで有ることを認識する。
従って、図21に示すようにインデックス更新管理部306は、キーワード数別インデックス3002の内、2キーワードインデックスの箇所(例えば3002−2)に検索要求2001aに基づくエントリ3003bを登録する。すなわち、インデックス更新管理部306は、検索要求2001aの検索要求用代表元タグ2004をエントリ用代表元タグ3004としてエントリ3003bに保存する。さらに、インデックス更新管理部306は、検索要求2001aの検索要求用クエリ2002をエントリ用検索クエリ3006としてエントリ3003bに保存する。また、インデックス更新管理部306は、保管データ4001aの保管暗号化情報4002aもしくは保管暗号化情報4002aの識別子と、保管データ4001bの保管暗号化情報4002aもしくは保管暗号化情報4002aの識別子とをエントリ用暗号化情報3007bとして保存する。
Next, search processing by a search request will be described.
Assume that the search request receiving unit 302 receives a search request 2001a shown in FIG. In step S403 in FIG. 14, since there is no data in the index 3001, the search processing unit 303 performs a full storage data search in step S405 in FIG.
As shown in FIG. 20, the storage keyword tag 4003 that matches both the query encrypted search request keyword 2003a “engine” and the query encrypted search request keyword 2003b “tire” includes the first storage data 4001a and the first storage data 4001a. 2 stored data 4001b.
Therefore, in step S601 in step S406 shown in FIG. 16, the index classification unit 309 determines that the query encrypted search request keyword 2003 of the search request 2001a is the query encrypted search request keyword 2003a “engine” and the query encrypted search request. It is recognized that there are two keywords 2003b “tire”.
Therefore, as shown in FIG. 21, the index update management unit 306 registers the entry 3003b based on the search request 2001a at the location of the two keyword indexes (for example, 3002-2) in the index 3002 by number of keywords. That is, the index update management unit 306 stores the search request representative source tag 2004 of the search request 2001a as the entry representative source tag 3004 in the entry 3003b. Furthermore, the index update management unit 306 stores the search request query 2002 of the search request 2001a as the entry search query 3006 in the entry 3003b. Further, the index update management unit 306 uses the identifier of the storage encryption information 4002a or the storage encryption information 4002a of the storage data 4001a, and the identifier of the storage encryption information 4002a or the storage encryption information 4002a of the storage data 4001b as an entry encryption. Stored as the conversion information 3007b.

さらに検索要求受信部302は図19(b)に示す検索要求2001bと図19(c)に示す検索要求2001cとを受信したとする。その場合、インデックス更新管理部306は、同様の手順で図22に示すインデックス3001を形成する。そして、各エントリは、図23に示すエントリ3003a〜3003cの通りとなる。   Further, it is assumed that the search request receiving unit 302 receives a search request 2001b shown in FIG. 19B and a search request 2001c shown in FIG. 19C. In that case, the index update management unit 306 forms the index 3001 shown in FIG. 22 in the same procedure. Each entry is as shown in entries 3003a to 3003c shown in FIG.

さらに追加登録データの登録処理について説明する。
図24に示す登録データ2301dを検索要求受信部302が受信したとする。そして、インデックス更新管理部306は、エントリ3003a〜3003cのエントリ用検索クエリ3006a〜3006cと登録データ2301dの登録キーワードタグ2303dが一致するかを検査する。そして、インデックス更新管理部306は、エントリ3003aのエントリ用検索クエリ3006aとエントリ3003bのエントリ用検索クエリ3006bとが登録データ2301dの登録キーワードタグ2303と一致すると判断する。インデックス更新管理部306は、登録データ2301dの登録暗号化情報2302d「自動車情報4」をエントリ3003aのエントリ用暗号化情報3007aとエントリ3003bのエントリ用暗号化情報3007bに追加する。(図25参照)。
Furthermore, the registration process of additional registration data is demonstrated.
Assume that the search request receiving unit 302 receives the registration data 2301d shown in FIG. Then, the index update management unit 306 checks whether the entry search queries 3006a to 3006c of the entries 3003a to 3003c match the registered keyword tag 2303d of the registered data 2301d. Then, the index update management unit 306 determines that the entry search query 3006a of the entry 3003a and the entry search query 3006b of the entry 3003b match the registration keyword tag 2303 of the registration data 2301d. The index update management unit 306 adds the registration encryption information 2302d “car information 4” of the registration data 2301d to the entry encryption information 3007a of the entry 3003a and the entry encryption information 3007b of the entry 3003b. (See FIG. 25).

さらに追加検索要求による検索処理について説明する。
検索要求受信部302は、図26(a)に示す検索要求2001dを受信したとする。検索要求2001dのクエリ暗号化検索要求用キーワード2003の数は、2つである。その為に、図14のステップS403において、インデックス分類部309は、インデックス3001における2キーワード用インデックス(例えば3002b)の参照を決定する。そして、検索処理部303は、図25に示すエントリ3003bのエントリ用代表元タグ3004bと検索要求2001dの検索要求用クエリ2002dとが一致すると判断する。そして、検索処理部303は、検索結果として、図25に示すエントリ用暗号化情報3007dに記憶されている「自動車情報1」「自動車情報2」「自動車情報4」を検索要求回答部307に出力する。
Further, a search process by an additional search request will be described.
Assume that the search request receiving unit 302 receives a search request 2001d shown in FIG. The number of query encryption search request keywords 2003 in the search request 2001d is two. For this purpose, in step S403 of FIG. 14, the index classification unit 309 determines the reference of the index for two keywords (for example, 3002b) in the index 3001. Then, the search processing unit 303 determines that the entry representative source tag 3004b of the entry 3003b shown in FIG. 25 matches the search request query 2002d of the search request 2001d. Then, the search processing unit 303 outputs “car information 1”, “car information 2”, and “car information 4” stored in the entry encryption information 3007d shown in FIG. 25 to the search request answering unit 307 as a search result. To do.

そして、検索要求受信部302は、図26(b)に示す検索要求2001eを受信したとする。
検索要求2001eのクエリ暗号化検索要求用キーワード2003の数は、1つである。その為に、図14のステップS403において、インデックス分類部309は、インデックス3001における1キーワード用インデックス(例えば3002a)の参照を決定する。そして、検索処理部303は、検索要求2001eの検索要求用クエリ2002eに一致するエントリが無いと判断する(図25参照)。その為、検索処理部303は、図14に示すステップS405の処理に移り、データ保管部305の検索を実施する。そして、検索処理部303は、データ保管部305に図18に示す保管データ4001cを見つけることが出来る。
ここで、仮にキーワード数別インデックス3002が存在しない場合を想定する。その場合、図25に示すエントリは混在することになる。そして、検索要求受信部302は、図26(b)に示す検索要求2001eを受信したとする。そして、図25に示すエントリ3003bのエントリ用代表元タグ3004bの暗号化登録キーワード2304は「タイヤ」が含まれている。すると、検索処理部303は、検索要求2001eの検索要求用クエリ2002eとエントリ3003bのエントリ用代表元タグ3004bとが一致すると判断する。そして、検索処理部303は、データ保管部305の保管データ4001cを検出出来ない。
Then, it is assumed that the search request receiving unit 302 has received the search request 2001e shown in FIG.
The number of query encryption search request keywords 2003 in the search request 2001e is one. For this purpose, in step S403 in FIG. 14, the index classification unit 309 determines the reference of one keyword index (for example, 3002a) in the index 3001. Then, the search processing unit 303 determines that there is no entry that matches the search request query 2002e of the search request 2001e (see FIG. 25). Therefore, the search processing unit 303 moves to the process of step S405 shown in FIG. 14, and performs a search of the data storage unit 305. Then, the search processing unit 303 can find the storage data 4001c shown in FIG.
Here, it is assumed that the keyword-specific index 3002 does not exist. In that case, the entries shown in FIG. 25 are mixed. Then, it is assumed that the search request receiving unit 302 has received the search request 2001e shown in FIG. The encrypted registration keyword 2304 of the entry representative source tag 3004b of the entry 3003b shown in FIG. 25 includes “tire”. Then, the search processing unit 303 determines that the search request query 2002e of the search request 2001e matches the entry representative tag 3004b of the entry 3003b. The search processing unit 303 cannot detect the storage data 4001c stored in the data storage unit 305.

本実施の形態の秘匿検索システムは、ユーザが複数のキーワードを利用した検索を行うことが可能であり、ユーザの検索要求をより柔軟に表現できる。また、本実施の形態の秘匿検索システムは、複数のキーワード対応の検索履歴を用いた秘匿検索を誤一致や検索漏れなく実施することが出来、効率的な検索を実施出来る。
更に、本実施の形態の秘匿検索システムは、過去に検索した1つ以上のキーワードに対する検索結果をインデックスから必ず一意に特定できるため、誤った検索結果を出力することを防止する。
また、ユーザがデータを登録する際に、そのデータをインデックスに反映させることにより、秘匿検索システムがインデックスを利用して検索を高速化する際に、本実施の形態の秘匿検索システムは、検索漏れが発生しない。
また、1つのキーワードにつき1つのタグおよび検索クエリを生成する方式と比較し、本実施の形態の秘匿検索システムは、キーワードの増加による、タグおよび検索クエリの数の増加を低減し、かつ、キーワードの一致判定の回数を低減する。
The secret search system according to the present embodiment allows a user to perform a search using a plurality of keywords, and can express a user's search request more flexibly. In addition, the secret search system according to the present embodiment can perform a secret search using a search history corresponding to a plurality of keywords without erroneous matches or omissions, and can perform an efficient search.
Furthermore, since the secret search system of this embodiment can always uniquely specify search results for one or more keywords searched in the past from the index, it prevents output of erroneous search results.
Further, when the user registers data, the data is reflected in the index so that the secret search system according to the present embodiment is not searched when the search is accelerated using the index. Does not occur.
Compared with a method of generating one tag and a search query for one keyword, the secret search system according to the present embodiment reduces an increase in the number of tags and search queries due to an increase in keywords, and a keyword. The number of coincidence determinations is reduced.

実施の形態2.
実施の形態1では、インデックス分類部309は、検索結果を保存するインデックスを暗号化検索要求用キーワード数ごとに分類していた。また、インデックスのエントリの検索要求用代表元タグ2004はユーザが指定していた。(ユーザは、検索要求2001を送信する際に検索要求用クエリ2002以外に検索要求用代表元タグ2004を送信していた)。
実施の形態2では、複数のキーワードを用いた検索要求において、ユーザが検索対象の登録キーワードの特定が可能な場合に、インデックスの暗号化検索要求用キーワード数ごとの分類や、ユーザによる検索要求用代表元タグの設定を不要とする秘匿検索システム100を示す。
Embodiment 2. FIG.
In the first embodiment, the index classification unit 309 classifies the index for storing the search results for each number of encrypted search request keywords. Also, the search request representative source tag 2004 of the index entry is specified by the user. (The user transmits the search request representative tag 2004 in addition to the search request query 2002 when transmitting the search request 2001).
In the second embodiment, in a search request using a plurality of keywords, when the user can specify a registered keyword to be searched, the index is classified according to the number of keywords for the encrypted search request, or the search request by the user. 1 shows a secret search system 100 that does not require setting of a representative tag.

まず、図27を用いてフィールド番号を含んだ登録データ2301の構造を説明する。
図27は、フィールド番号を含んだ登録データ2301の構成の例を示す図である。
登録データ2301は、登録暗号化情報2302と登録キーワードタグ2303と無意味な平文2305と登録フィールド番号2404とから構成される。
登録暗号化情報2302と登録キーワードタグ2303は実施の形態1と同様であり、説明を省略する。
登録フィールド番号2404は平文であり、暗号化登録キーワード2304に対応している。すなわち、登録フィールド番号2404は登録キーワードタグ2303の属性を示すものである。図27に示す例では、暗号化登録キーワード「エンジン」は登録フィールド番号「1」、暗号化登録キーワード「タイヤ」は登録フィールド番号「2」、暗号化登録キーワード「ハンドル」は登録フィールド番号「3」と例えばユーザが定義している。
First, the structure of registration data 2301 including field numbers will be described with reference to FIG.
FIG. 27 is a diagram showing an example of the configuration of registration data 2301 including field numbers.
The registration data 2301 includes registration encryption information 2302, a registration keyword tag 2303, meaningless plain text 2305, and a registration field number 2404.
The registered encryption information 2302 and the registered keyword tag 2303 are the same as those in the first embodiment, and a description thereof is omitted.
The registration field number 2404 is plain text and corresponds to the encrypted registration keyword 2304. That is, the registration field number 2404 indicates the attribute of the registration keyword tag 2303. In the example shown in FIG. 27, the encrypted registration keyword “engine” is a registered field number “1”, the encrypted registered keyword “tire” is a registered field number “2”, and the encrypted registered keyword “handle” is a registered field number “3”. For example, is defined by the user.

次に図28を用いてフィールド番号を含んだ検索要求2001の構造を説明する。
図28は、フィールド番号を含んだ検索要求2001の構成の例を示す図である。
検索要求2001は、検索要求用クエリ2002と検索要求用フィールド番号2104から構成される。
検索要求用クエリ2002は実施の形態1と同様であり、説明を省略する。
検索要求用フィールド番号2104は、平文であり、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003に対応している。すなわち、検索要求用フィールド番号2104は、検索要求用クエリ2002の属性を示すものである。また、検索要求用フィールド番号2104は、クエリ暗号化検索要求用キーワード2003がどの登録フィールド番号2404の暗号化登録キーワード2304を照合するかを示している。
すなわち、登録データとして図27の例が存在する場合では、図28に示すクエリ暗号化検索要求用キーワード「エンジン」は検索要求用フィールド番号が「1」であり、図27の登録フィールド番号「1」の暗号化登録キーワード「エンジン」を照合する。
Next, the structure of the search request 2001 including the field number will be described with reference to FIG.
FIG. 28 is a diagram showing an example of the configuration of a search request 2001 including a field number.
The search request 2001 includes a search request query 2002 and a search request field number 2104.
The search request query 2002 is the same as in the first embodiment, and a description thereof will be omitted.
The search request field number 2104 is plain text and corresponds to the query encrypted search request keyword 2003 of the search request query 2002. That is, the search request field number 2104 indicates the attribute of the search request query 2002. Further, the search request field number 2104 indicates which registration field number 2404 of the encrypted registration keyword 2304 is matched with the query encryption search request keyword 2003.
That is, when the example of FIG. 27 exists as registration data, the query encryption search request keyword “engine” shown in FIG. 28 has the search request field number “1”, and the registration field number “1” of FIG. The encrypted registration keyword “engine” of “is collated.

そして、図29を用いてフィールド番号を含んだインデックス記憶部304におけるインデックス3001の構造を説明する。
図29は、フィールド番号を含んだインデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図である。
インデックス3001は、複数のエントリ3003で構成される。
そして、エントリ3003は、エントリ用代表元タグ3004、エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305、エントリ用フィールド番号3105から構成される。
エントリ用代表元タグ3004は、1つ以上の暗号化代表元用キーワードで構成される。実施の形態2においては、エントリ用代表元タグ3004は、登録データ2301に含まれる登録キーワードタグ2303が保存されたものである。その為、暗号化代表元用キーワードは、暗号化登録キーワード2304となる。また、暗号化代表元用キーワードは、無意味な平文2305が代表元用キーワードと公開鍵とで暗号化されたものである。その為、代表元用キーワードは登録キーワード2300となる。
エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305は、実施の形態1と同様である為説明を省略する。
エントリ用フィールド番号3105は、平文であり、エントリ用検索クエリ3006とエントリ用代表元タグ3004とに対応している。すなわち、エントリ用フィールド番号3105は、エントリ用検索クエリ3006とエントリ用代表元タグ3004との属性を示すものである。
The structure of the index 3001 in the index storage unit 304 including field numbers will be described with reference to FIG.
FIG. 29 is a diagram illustrating an example of a data structure of a search result stored in the index storage unit 304 including a field number.
The index 3001 is composed of a plurality of entries 3003.
The entry 3003 includes an entry representative tag 3004, an entry search query 3006, entry encryption information 3007, meaningless plaintext 2305, and entry field number 3105.
The entry representative source tag 3004 includes one or more encrypted representative source keywords. In the second embodiment, the entry representative source tag 3004 stores the registered keyword tag 2303 included in the registration data 2301. Therefore, the encryption representative keyword is the encryption registration keyword 2304. The encrypted representative keyword is a meaningless plaintext 2305 encrypted with the representative keyword and the public key. Therefore, the representative source keyword is the registered keyword 2300.
Since the entry search query 3006, the entry encryption information 3007, and the meaningless plaintext 2305 are the same as those in the first embodiment, the description thereof is omitted.
The entry field number 3105 is plain text and corresponds to the entry search query 3006 and the entry representative tag 3004. That is, the entry field number 3105 indicates the attributes of the entry search query 3006 and the entry representative tag 3004.

次いで、実施の形態2におけるフィールド番号を含んだ秘匿検索システム100のデータ検索処理の説明を行う。
実施の形態2におけるデータ検索処理の手順は、実施の形態1で説明した図14と同様である。
ここで、実施の形態1では、インデックス分類部309は、クエリ暗号化検索要求用キーワード2003の数に応じて、照合するキーワード数別インデックス3002を決定している。しかし、実施の形態2では、インデックス分類部309は、検索要求2001の検索要求用フィールド番号2104とエントリ3003のエントリ用フィールド番号3105とを照合する役割を担う。
そこで、図14において実施の形態1との相違点があるインデックス検査S403とインデックス登録S406の説明を行う。
Next, the data search process of the secret search system 100 including the field number in the second embodiment will be described.
The procedure of the data search process in the second embodiment is the same as that in FIG. 14 described in the first embodiment.
Here, in the first embodiment, the index classification unit 309 determines the keyword-specific index 3002 to be collated according to the number of query encryption search request keywords 2003. However, in the second embodiment, the index classification unit 309 plays a role of collating the search request field number 2104 of the search request 2001 with the entry field number 3105 of the entry 3003.
Therefore, an index check S403 and an index registration S406 that are different from the first embodiment in FIG. 14 will be described.

まず、図30を用いて実施の形態2におけるインデックス検査S403の説明を行う。
図30は、インデックス検査S403の手順を示したフローチャートである。
実施の形態1と同様に、ユーザから検索要求2001を受信したデータセンター301は、インデックス記憶部304から、検索要求2001に一致するエントリ3003を検索する。
まず、ステップS511において、検索処理部303は、インデックス3001に未検査のエントリ3003があるかを検査する。未検査のエントリが無い場合、検索要求に該当するデータが存在しないため検索処理部303は、「該当なし」と判断し、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS512において、検索処理部303は、S511で未検査のエントリがある場合、検索要求用クエリ2002とエントリ用代表元タグ3004との一致検査を行う。
さらにインデックス分類部309は、検索要求用フィールド番号2104とエントリ用フィールド番号3105との一致検査を行う。
次に、ステップS513において、検索処理部303は、S513の一致検査の結果、一致する場合(一致)に該当エントリのエントリ用暗号化情報3007を検索要求回答部307に出力する。一致しない場合(不一致)は、他の未検査のエントリについて同様の検査を行う。
First, the index check S403 in the second embodiment will be described with reference to FIG.
FIG. 30 is a flowchart showing the procedure of the index check S403.
Similar to the first embodiment, the data center 301 that has received the search request 2001 from the user searches the index storage unit 304 for an entry 3003 that matches the search request 2001.
First, in step S511, the search processing unit 303 checks whether there is an unchecked entry 3003 in the index 3001. If there is no unchecked entry, there is no data corresponding to the search request, so the search processing unit 303 determines that “not applicable” and proceeds to the stored data full search S405, and ends the index check.
Next, in step S512, when there is an entry that has not been checked in step S511, the search processing unit 303 performs a matching check between the search request query 2002 and the entry representative tag 3004.
Further, the index classification unit 309 performs a matching check between the search request field number 2104 and the entry field number 3105.
Next, in step S 513, the search processing unit 303 outputs the entry encryption information 3007 of the corresponding entry to the search request answering unit 307 if they match (match) as a result of the matching check in S 513. If they do not match (no match), the same check is performed for other unchecked entries.

次に図31を用いて実施の形態2におけるインデックス登録S406の説明を行う。
図31は、インデックス登録S406の手順を示したフローチャートである。
検索処理時、検索処理部303は、実施の形態1と同様にインデックス参照を実施した結果、検索要求に該当するエントリが見つからなかった場合、データ保管部305を検索する。
その結果、検索要求に該当する保管データ4001が存在する場合に、インデックス登録処理S406を行う。
まず、ステップS611において、インデックス更新管理部306は、インデックス記憶部304に保存するための新規エントリを作成する。
次に、ステップS612において、インデックス更新管理部306は、作成した新規エントリのエントリ用代表元タグ3004検索結果の保管キーワードタグ4003から選択し、設定する。
次に、ステップS613において、インデックス更新管理部306は、作成した新規エントリのエントリ用フィールド番号3105として、保管データ4001に含まれる登録フィールド番号2404を設定する。(実施の形態2における保管データ4001の例は、図示を省略しているが、実施の形態1と同じく、保管データ4001と登録データ2301は実質的に同一であり、登録フィールド番号2404が保管データ4001に含まれている)。
次に、ステップS614において、インデックス更新管理部306は、作成した新規エントリのエントリ用検索クエリ3006として検索要求用クエリ2002を保存する。この時に、インデックス更新管理部306は、エントリ用フィールド番号3105をエントリ用検索クエリ3006のクエリ暗号化検索要求用キーワード2003にも関連付けする。
次に、ステップS615において、インデックス更新管理部306は、作成した新規エントリのエントリ用暗号化情報3007に、検索結果の保管暗号化情報4002もしくは保管暗号化情報4002の識別子を保存する。
なお、S612からS615は順不同である。
Next, the index registration S406 in the second embodiment will be described with reference to FIG.
FIG. 31 is a flowchart showing the procedure of index registration S406.
During the search process, the search processing unit 303 searches the data storage unit 305 when an entry corresponding to the search request is not found as a result of performing the index reference as in the first embodiment.
As a result, when the storage data 4001 corresponding to the search request exists, the index registration process S406 is performed.
First, in step S611, the index update management unit 306 creates a new entry to be stored in the index storage unit 304.
In step S612, the index update management unit 306 selects and sets from the stored keyword tag 4003 of the entry representative tag 3004 search result of the created new entry.
In step S613, the index update management unit 306 sets a registration field number 2404 included in the storage data 4001 as the entry field number 3105 of the created new entry. (The example of the storage data 4001 in the second embodiment is not shown, but the storage data 4001 and the registration data 2301 are substantially the same as in the first embodiment, and the registration field number 2404 is stored data. 4001).
Next, in step S614, the index update management unit 306 stores the search request query 2002 as the entry search query 3006 for the created new entry. At this time, the index update management unit 306 associates the entry field number 3105 with the query encryption search request keyword 2003 of the entry search query 3006.
Next, in step S615, the index update management unit 306 stores the storage encryption information 4002 of the search result or the identifier of the storage encryption information 4002 in the entry encryption information 3007 of the created new entry.
Note that S612 to S615 are in no particular order.

ユーザが新規にデータを登録する場合は、実施の形態1と同様に図17の手順で行う。保管データ4001は、実施の形態1と同様に登録データ2301と同じ構造のものである。従って、実施の形態2における保管データ4001は、図27に示すように、登録フィールド番号2404も含んでいる。
実施の形態2で説明しなかった部分については、実施の形態1と同様であるので省略する。
When the user newly registers data, the procedure shown in FIG. 17 is performed as in the first embodiment. The storage data 4001 has the same structure as the registration data 2301 as in the first embodiment. Therefore, the storage data 4001 in the second embodiment also includes a registration field number 2404 as shown in FIG.
Since the parts not described in the second embodiment are the same as those in the first embodiment, the description thereof is omitted.

ここで、図32を用いて、インデックス検査S403における一致検査の具体例を示す。
(前記の通り、インデックス登録S406における一致検査(保管データ4001と検索要求2001との一致検査)は、実施の形態1と同様の処理なので、説明を省略する)。
図32は、インデックス検査S403における一致検査の具体例を示す図である。((a)はエントリ3003の具体例、(b)は、検索要求2001a、(c)は、検索要求2001b、(d)は、検索要求2001c)。
まず、エントリ3003と検索要求2001aとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104aとが一致する為、エントリ3003と第1の検索要求2001aは一致と判断する。そして、検索処理部303は、エントリ用代表元タグ3004と検索要求用クエリ2002とが一致する為、最終的にエントリ3003と検索要求2001aは一致と判断する。
次に、エントリ3003と検索要求2001bとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104bとが一致しない為、エントリ3003と検索要求2001aは不一致と判断する。
そして、エントリ3003と検索要求2001cとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104cとが一致しない為、エントリ3003と検索要求2001cは不一致と判断する。
Here, a specific example of the coincidence inspection in the index inspection S403 will be described with reference to FIG.
(As described above, the matching check in the index registration S406 (matching check between the stored data 4001 and the search request 2001) is the same processing as that in the first embodiment, and thus the description is omitted).
FIG. 32 is a diagram illustrating a specific example of the coincidence inspection in the index inspection S403. ((A) is a specific example of the entry 3003, (b) is a search request 2001a, (c) is a search request 2001b, and (d) is a search request 2001c).
First, when the entry 3003 and the search request 2001a are collated, the index classification unit 309 indicates that the entry 3003 and the first search request 2001a match because the entry field number 3105 and the search request field number 2104a match. to decide. Since the entry representative tag 3004 and the search request query 2002 match, the search processing unit 303 finally determines that the entry 3003 and the search request 2001a match.
Next, when the entry 3003 and the search request 2001b are collated, the index classification unit 309 determines that the entry 3003 and the search request 2001a do not match because the entry field number 3105 and the search request field number 2104b do not match. .
When the entry 3003 and the search request 2001c are collated, the index classification unit 309 determines that the entry 3003 and the search request 2001c do not match because the entry field number 3105 and the search request field number 2104c do not match.

実施の形態2によれば、実施の形態1の効果を奏するのに加えて、インデックスのエントリ用代表元タグは、検索結果の登録キーワードタグ2303を設定可能となる。従って、ユーザは、エントリ用代表元タグ3004用の検索要求用代表元タグ2004としてデータセンターに送らずに済む。そのため、ユーザ端末201とデータセンター301間の通信データ量を低減できるという効果がある。
また、データセンター301は、インデックス内を暗号化検索要求用キーワード数毎に分類しなくても良く、実施の形態1と比較してインデックスの管理の手間を削減できるという効果がある。
According to the second embodiment, in addition to the effects of the first embodiment, the index entry representative tag can set the registered keyword tag 2303 of the search result. Therefore, the user does not have to send the retrieval request representative tag 2004 for the entry representative tag 3004 to the data center. Therefore, there is an effect that the amount of communication data between the user terminal 201 and the data center 301 can be reduced.
Further, the data center 301 does not have to classify the index for each number of keywords for encryption search request, and there is an effect that it is possible to reduce the time and effort of managing the index as compared with the first embodiment.

実施の形態3.
実施の形態1、2では、複数のキーワードを利用した秘匿検索システムにおいて、データセンター301は、検索履歴から正確な検索結果を取得し、高速にユーザへ出力する。すなわち、実施の形態1、2は、インデックスの設定法に関する実施の形態である。実施の形態3は、複数のユーザが秘匿検索システムを利用する場合の、ユーザ毎のデータ保管とインデックス構築を行う実施形態を示す。
ここで複数のユーザとは、例えば企業における課、部などを指し、それぞれの範囲内でデータ登録およびデータ検索を行う。また、特定のユーザ間で共通のデータを検索する場合もあり、その場合を「グループ共有」と呼ぶ。
以下では、ユーザ1〜ユーザnのnユーザ(n≧1)が秘匿検索システムを利用しているものとする。また、ここでは、あるユーザの集合をユーザグループと呼ぶ。以下では、インデックス記憶部304とデータ保管部305をユーザ毎に管理する高速化手法を説明する。
Embodiment 3 FIG.
In Embodiments 1 and 2, in the secret search system using a plurality of keywords, the data center 301 acquires an accurate search result from the search history and outputs it to the user at high speed. That is, the first and second embodiments are embodiments relating to an index setting method. Embodiment 3 shows an embodiment for performing data storage and index construction for each user when a plurality of users use a confidential search system.
Here, the plurality of users refers to, for example, a section or department in a company, and performs data registration and data search within each range. In some cases, data common to specific users is searched, and this case is called “group sharing”.
In the following, it is assumed that n users (n ≧ 1) of users 1 to n use the confidential search system. Here, a set of users is called a user group. Hereinafter, a speed-up method for managing the index storage unit 304 and the data storage unit 305 for each user will be described.

図33を用いて実施の形態3におけるデータ保管部305の構造を説明する。
図33は、データ保管部305の構造の一例を示す図である。
データ保管部305はデータ領域3051から構成される。(図中に3051−1〜3051−nで表記)。データ領域3051は複数のユーザ(ユーザ1〜ユーザn)用に割り当てられる。またグループ共有を行う場合は、データ保管部305はグループ用にデータ領域を割り当て、そこにデータを保管する。
データ登録時、データセンター301はデータ登録要求のあったユーザに対応するデータ領域に登録データを保管する。これを「ユーザデータ領域」と呼ぶ。グループ共有する場合は、データセンター301は「共通データ領域」としてデータ領域3051を割り当て、該当するデータを「共通データ領域」にデータを保存する。なお、共通データ領域は複数あってもよいので、ユーザは、グループ毎に共通データ領域を作成してもよい。
データ検索時、データセンター301は検索要求を送信したユーザのユーザデータ領域と、共通データ領域のみ参照する。このように、データセンター301は、データ保管部305の全探索時に、検索要求に関連のないユーザのデータを検索対象から除外することが可能となり、全探索にかかる時間を削減することができる。
The structure of the data storage unit 305 according to the third embodiment will be described with reference to FIG.
FIG. 33 is a diagram illustrating an example of the structure of the data storage unit 305.
The data storage unit 305 includes a data area 3051. (Indicated by 3051-3051-n in the figure). The data area 3051 is allocated for a plurality of users (user 1 to user n). When group sharing is performed, the data storage unit 305 allocates a data area for the group and stores the data there.
At the time of data registration, the data center 301 stores registration data in a data area corresponding to a user who has requested data registration. This is called a “user data area”. When sharing the group, the data center 301 allocates the data area 3051 as the “common data area”, and stores the corresponding data in the “common data area”. Since there may be a plurality of common data areas, the user may create a common data area for each group.
At the time of data search, the data center 301 refers only to the user data area of the user who transmitted the search request and the common data area. As described above, the data center 301 can exclude user data that is not related to the search request from the search target during the full search of the data storage unit 305, and can reduce the time required for the full search.

次に図34を用いて、実施の形態3におけるインデックス記憶部304に保存されるインデックスの構造を説明する。
図34は、インデックス記憶部304に保存されるインデックス3001の構造の一例を示す図である。
インデックス3001は、複数のサブインデックス3202から構成される。(図中に3202−1〜3202−nで表記)。サブインデックス3202内の構成は、例えば、実施の形態1、2のインデックス3001のようになる。つまり、インデックス3001はインデックス3001内に複数のインデックスを構築する構成である。
サブインデックスは、ユーザ毎に割り当てられ、ここでは「ユーザサブインデックス」と呼ぶ。また、グループ共有データのインデックス化のため、グループに対してサブインデックスを割り当てても良い。ここでは、グループに対するサブインデックスを「共通サブインデックス」と呼ぶ。
Next, the structure of the index stored in the index storage unit 304 in the third embodiment will be described with reference to FIG.
FIG. 34 is a diagram illustrating an example of the structure of the index 3001 stored in the index storage unit 304.
The index 3001 is composed of a plurality of sub-indexes 3202. (Indicated in 3202-1 to 3202-n in the figure). The configuration in the sub-index 3202 is, for example, the index 3001 of the first and second embodiments. That is, the index 3001 is configured to construct a plurality of indexes within the index 3001.
A sub-index is assigned for each user, and is referred to herein as a “user sub-index”. Further, a sub-index may be assigned to a group for indexing group shared data. Here, the sub-index for the group is called a “common sub-index”.

ここで、実施の形態3における検索処理の説明を行う。
実施の形態3における検索処理の手順は実施の形態1で説明した図14と同様である。実施の形態1と同様に、ユーザから検索要求を受信したデータセンター301は、インデックス記憶部304から、検索要求に一致するエントリを検索する。
実施の形態1との相違点はインデックス検査S403の手順である。図35、図36を用いて、グループ共有の有無に応じた動作例を説明する。
図35は、グループ共有を行わない場合のインデックス検査S403の手順を示したフローチャートである。
図36は、グループ共有を行う場合のインデックス検査S403の手順を示したフローチャートである。
Here, the search process in the third embodiment will be described.
The search processing procedure in the third embodiment is the same as that in FIG. 14 described in the first embodiment. As in the first embodiment, the data center 301 that has received the search request from the user searches the index storage unit 304 for an entry that matches the search request.
The difference from the first embodiment is the procedure of the index check S403. An operation example according to the presence / absence of group sharing will be described with reference to FIGS. 35 and 36.
FIG. 35 is a flowchart showing the procedure of the index check S403 when group sharing is not performed.
FIG. 36 is a flowchart showing the procedure of the index check S403 when group sharing is performed.

まず、グループ共有しない場合を説明する。
グループ共有を行わない場合は、検索要求を送信したユーザに関連するユーザサブインデックスを検索対象として、検索処理部303は、インデックス検索を行う(図35参照)。
まず、ステップS801において、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスを検索の対象として、検索要求に該当するエントリを検索する。
次に、ステップS802において、検索処理部303は、エントリの検索処理を行う。エントリの検索処理は実施の形態1の方法で有っても良いし、実施の形態2の方法で有っても良い。検索処理部303は、検索要求に該当するエントリが存在した場合(該当あり)、S803に進む。該当するエントリが存在しない場合(該当なし)、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS803において、検索処理部303は、検索要求に該当するエントリに保存されているエントリ用暗号化情報3007を出力する。
First, a case where group sharing is not described.
When group sharing is not performed, the search processing unit 303 performs an index search using a user sub-index associated with the user who transmitted the search request as a search target (see FIG. 35).
First, in step S801, the search processing unit 303 searches for an entry corresponding to the search request by using the user subindex of the user who transmitted the search request as a search target.
In step S802, the search processing unit 303 performs entry search processing. The entry search process may be the method of the first embodiment or the method of the second embodiment. If there is an entry corresponding to the search request (applicable), the search processing unit 303 proceeds to S803. If there is no corresponding entry (not applicable), the index check is terminated to proceed to the storage data full search S405.
In step S803, the search processing unit 303 outputs the entry encryption information 3007 stored in the entry corresponding to the search request.

次に、グループ共有する場合を説明する。
グループ共有を行う場合は、共通サブインデックスと、検索要求を送信したユーザに関連するユーザサブインデックスを検索対象として、検索処理部303は、インデックス検索を行う(図36参照)。
まず、ステップS901において、検索処理部303は、検索要求を送信したユーザに関連する共通サブインデックスを検索対象として、検索要求に該当するエントリを検索する。
次に、ステップS902において、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスを検索の対象として、検索要求に該当するエントリを検索する。
なお、S901、S902の検索の順序は逆でも良い。
次に、ステップS903において、検索処理部303は、S901とS902のエントリ探索の結果、該当するエントリが存在しない場合(該当なし)、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS904において、検索処理部303は、S901とS902のエントリ探索の結果、検索要求に該当するエントリが存在した場合(該当あり)、該当エントリに保存されているエントリ用暗号化情報3007を出力する。
Next, the case of group sharing will be described.
When group sharing is performed, the search processing unit 303 performs an index search using the common subindex and the user subindex related to the user who transmitted the search request as search targets (see FIG. 36).
First, in step S901, the search processing unit 303 searches for an entry corresponding to the search request by using a common subindex related to the user who transmitted the search request as a search target.
Next, in step S902, the search processing unit 303 searches for an entry corresponding to the search request by using the user sub-index of the user who transmitted the search request as a search target.
Note that the search order of S901 and S902 may be reversed.
Next, in step S903, the search processing unit 303 terminates the index check in order to proceed to the storage data full search S405 when the corresponding entry does not exist (not applicable) as a result of the entry search in S901 and S902.
Next, in step S904, if there is an entry corresponding to the search request as a result of the entry search in S901 and S902 (applicable), the search processing unit 303 stores the entry encryption information 3007 stored in the corresponding entry. Is output.

以上のようにインデックス検査S403を実施した結果、検索要求に該当するエントリが見つからなかった場合、検索処理部303は、データ保管部305を検索する。その結果、検索要求に該当する保管データ4001が存在する場合に、検索処理部303は、インデックス登録処理S406を行う。   As a result of performing the index check S403 as described above, when no entry corresponding to the search request is found, the search processing unit 303 searches the data storage unit 305. As a result, when the storage data 4001 corresponding to the search request exists, the search processing unit 303 performs an index registration process S406.

次に、インデックス登録処理S406の説明を行う。インデックス登録処理S406は、グループ共有の有無により動作が異なる。以下、それぞれの場合について説明する。   Next, the index registration process S406 will be described. The index registration process S406 operates differently depending on whether or not group sharing is performed. Hereinafter, each case will be described.

まず、グループ共有しない場合を説明する。
この場合、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスに、検索結果を保存する。
First, a case where group sharing is not described.
In this case, the search processing unit 303 stores the search result in the user subindex of the user who transmitted the search request.

次に、グループ共有する場合を説明する。
グループ共有データ領域から検索された検索結果を、検索処理部303は、共通サブインデックスに保存する。そして、ユーザ用データ領域から検索された検索結果を、検索処理部303は、そのユーザに対応したユーザサブインデックスに保存する。
Next, the case of group sharing will be described.
The search processing unit 303 stores the search result searched from the group shared data area in the common subindex. And the search process part 303 preserve | saves the search result searched from the data area for users in the user subindex corresponding to the user.

さらに、実施の形態3におけるデータ登録処理の説明を行う。   Further, the data registration process in the third embodiment will be described.

まず、グループ共有しない場合を説明する。
この場合、データ保管部305は、登録データをユーザ用データ領域に保存する。
First, a case where group sharing is not described.
In this case, the data storage unit 305 stores the registration data in the user data area.

次に、グループ共有する場合を説明する。
この場合、ユーザ端末201は、登録データ2301と共に登録データ2301が、グループ共有データなのかユーザ専用データなのかをデータセンター301に通知する。
データセンター301は、登録データ2301がグループ共有データの場合は共通データ領域に保存し、登録データ2301がユーザ専用データの場合はユーザデータ領域に保存する。
Next, the case of group sharing will be described.
In this case, the user terminal 201 notifies the data center 301 whether the registration data 2301 together with the registration data 2301 is group shared data or user dedicated data.
When the registration data 2301 is group shared data, the data center 301 stores it in the common data area, and when the registration data 2301 is user-specific data, the data center 301 stores it in the user data area.

実施の形態3で説明しなかった部分については、実施の形態1、2と同様であるので省略する。   Since portions not described in the third embodiment are the same as those in the first and second embodiments, a description thereof will be omitted.

実施の形態3によれば、実施の形態1、2の効果を奏するのに加えて、複数ユーザ対応の秘匿検索システムは、インデックスの検索範囲を限定出来る。その為、秘匿検索システムは、インデックス検索に要する時間を低減するという効果がある。
また、秘匿検索システムは、データ保管部305の全探索の際に、検索者に関連のあるデータのみを検索対象とするため、全探索に要する時間を低減する、という効果がある。
According to the third embodiment, in addition to the effects of the first and second embodiments, the secret search system for a plurality of users can limit the search range of the index. Therefore, the secret search system has an effect of reducing the time required for index search.
In addition, since the secret search system searches only data related to the searcher when performing a full search in the data storage unit 305, there is an effect of reducing the time required for the full search.

以上、実施の形態1から実施の形態3にわたり、複数キーワード対応の検索履歴を用いた秘匿検索システムを開示したが、これは、暗号化情報のキーワード検索に限らない。任意のデータに対応した検索のためのキーデータ(検索キー)であれば、本実施の形態1〜3は、応用可能なことは明らかである。すなわち、本実施の形態1〜3によれば、データを暗号化したままで複数の検索キーを用いた検索を高速に実施することができる。したがって、本実施の形態1〜3は、画像検索、動画検索、音声検索などへの応用が可能である。   As described above, the secret search system using the search history corresponding to a plurality of keywords has been disclosed from the first embodiment to the third embodiment, but this is not limited to the keyword search of the encrypted information. It is clear that the first to third embodiments can be applied to key data (search key) for search corresponding to arbitrary data. That is, according to the first to third embodiments, a search using a plurality of search keys can be performed at high speed while the data is encrypted. Therefore, the first to third embodiments can be applied to image search, video search, voice search, and the like.

既に、説明したように、本実施の形態1〜3に示す秘匿検索システム100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
As described above, the confidential search system 100 according to the first to third embodiments is an output device such as a CPU as a processing device, a memory as a storage device, a magnetic disk, a keyboard as an input device, a mouse, a communication board, or the like. A computer including a display device, a communication board, and the like.
Then, as described above, the functions indicated as “˜units” are realized using these processing devices, storage devices, input devices, and output devices.

100 秘匿検索システム、101 ネットワーク、201 ユーザ端末、202 情報・鍵格納領域、203 暗号化情報管理部、204 ユーザインターフェース、205 検索要求用クエリ生成部、206 タグ生成部、207 通信モジュール、301 データセンター、302 検索要求受信部、305 データ保管部、306 インデックス更新管理部、308 登録データ受信部、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、941 ゲートウェイ、942 ローカルエリアネットワーク、2000 検索要求用キーワード、2001 検索要求、2002 検索要求用クエリ、2003 クエリ暗号化検索要求用キーワード、2004 検索要求用代表元タグ、2005 タグ暗号化検索要求用キーワード、2104 検索要求用フィールド番号、2300 登録キーワード、2301 登録データ、2302 登録暗号化情報、2303 登録キーワードタグ、2304 暗号化登録キーワード、2305 無意味な平文、2404 登録フィールド番号、3001 インデックス、3002 キーワード数別インデックス、3003 エントリ、3004 エントリ用代表元タグ、3006 エントリ用検索クエリ、3007 エントリ用暗号化情報、3105 エントリ用フィールド番号、3051 データ領域、3202 サブインデックス、4001 保管データ、4002 保管暗号化情報、4003 保管キーワードタグ。   100 Secret Search System, 101 Network, 201 User Terminal, 202 Information / Key Storage Area, 203 Encrypted Information Management Unit, 204 User Interface, 205 Search Request Query Generation Unit, 206 Tag Generation Unit, 207 Communication Module, 301 Data Center , 302 Search request reception unit, 305 Data storage unit, 306 Index update management unit, 308 Registration data reception unit, 901 Display device, 902 Keyboard, 903 Mouse, 904 FDD, 905 Compact disk device, 906 Printer device, 907 Scanner device, 910 system unit, 911 CPU, 912 bus, 913 ROM, 914 RAM, 915 communication board, 920 magnetic disk unit, 921 operating system, 922 window System, 923 program group, 924 file group, 931 telephone, 932 facsimile machine, 941 gateway, 942 local area network, 2000 search request keyword, 2001 search request, 2002 search request query, 2003 query encryption search request keyword 2004 search request representative tag, 2005 tag encryption search request keyword, 2104 search request field number, 2300 registration keyword, 2301 registration data, 2302 registration encryption information, 2303 registration keyword tag, 2304 encryption registration keyword, 2305 meaningless plain text, 2404 registered field number, 3001 index, 3002 index by number of keywords, 3003 entry, representative for 3004 entry Tag 3006 entries for the search query, 3007 entry for encrypted information, 3105 entry for field number, 3051 data area, 3202 subindex, 4001 stored data, 4002 store encrypted information 4003 stored keyword tag.

Claims (13)

1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶部と、
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信部と、
前記インデックス記憶部に記憶された前記エントリ用検索クエリと前記登録データ受信部が受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報が前記インデックス記憶部に記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記インデックス記憶部において前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理部と、
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信部と、
前記検索要求受信部が受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類部と、
前記インデックス記憶部に記憶された前記エントリ用代表元タグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶部に記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類部が検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた登録用情報を出力する検索処理部と
を備えたことを特徴とする情報検索装置。
An entry search query having one or more query encryption search request keywords, an attribute of the entry search query, and an entry representative tag having one or more encryption representative keywords are stored in association with each other. An index storage unit,
A registration data receiving unit for receiving registration encryption information and a registration keyword tag having one or more encryption registration keywords corresponding to the registration encryption information;
The entry search query stored in the index storage unit is compared with the registered keyword tag received by the registration data receiving unit, and the registration query is registered when the entry search query and the registered keyword tag correspond to each other. The registration encryption information received by the data reception unit is determined to be the registration encryption information corresponding to the search query for entry stored in the index storage unit, and the registration encryption information in the index storage unit An index update management unit associating the search query for entry with the entry query,
A search request receiving unit that receives a search request query having one or more query encrypted search request keywords;
An index classification unit that detects an attribute of the search request query from the search request query received by the search request reception unit;
When the entry representative tag stored in the index storage unit and the search request query received by the search request receiving unit are collated, and the entry representative tag and the search request query correspond to each other And the attribute of the entry search query stored in the index storage unit is matched with the attribute of the search request query detected by the index classification unit, and the attribute of the entry search query and the search if the attributes included in the request for query corresponding information retrieval apparatus characterized by comprising a search processor for outputting the registration information associated with the representative original tag the entry.
前記インデックス更新管理部は、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報を前記インデックス記憶部に記憶することを特徴とした請求項1記載の情報検索装置。   The index update management unit stores the registration encryption information received by the registration data receiving unit in the index storage unit when the entry search query and the registered keyword tag correspond to each other. The information search device according to claim 1. 前記情報検索装置は、さらに
登録暗号化情報を記憶するデータ保管部
を備え、
前記登録データ受信部は、受信した登録暗号化情報を前記データ保管部に記憶し、
前記インデックス更新管理部は、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録キーワードタグとともに受信した登録暗号化情報であって前記データ保管部に記憶された登録暗号化情報の識別子を前記インデックス記憶部に記憶することを特徴とした請求項1又は2記載の情報検索装置。
The information retrieval device further includes a data storage unit for storing registered encryption information,
The registration data receiving unit stores the received registration encryption information in the data storage unit,
The index update management unit is registered encryption information received together with the registered keyword tag when the entry search query corresponds to the registered keyword tag and stored in the data storage unit The information retrieval apparatus according to claim 1, wherein the identifier is stored in the index storage unit.
前記データ保管部は、さらに前記登録暗号化情報に対応する登録キーワードタグを記憶し、
前記検索処理部は、前記データ保管部が記憶した登録キーワードタグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記データ保管部が記憶した登録キーワードタグと前記検索要求用クエリとが対応する場合に前記データ保管部が記憶した登録キーワードタグに対応する登録暗号化情報もしくは前記データ保管部が記憶した登録暗号化情報の識別子を前記インデックス記憶部に記憶することを特徴とした請求項3記載の情報検索装置。
The data storage unit further stores a registered keyword tag corresponding to the registered encryption information,
The search processing unit compares the registered keyword tag stored in the data storage unit with the search request query received by the search request receiving unit, and stores the registered keyword tag stored in the data storage unit and the search request When the query corresponds, the registered encryption information corresponding to the registered keyword tag stored in the data storage unit or the identifier of the registered encryption information stored in the data storage unit is stored in the index storage unit. The information retrieval apparatus according to claim 3.
前記インデックス記憶部は、クエリ暗号化検索要求用キーワードの数を属性として、クエリ暗号化検索要求用キーワードの数毎にキーワード数別インデックスを記憶し、前記キーワード数別インデックスの各々は、クエリ暗号化検索要求用キーワードと暗号化代表元用キーワードの数が同じ数のエントリ用検索クエリとエントリ用代表元タグとの組を一つ以上記憶し、
前記インデックス分類部は、前記検索要求用クエリが有する属性として前記検索要求用クエリが有するクエリ暗号化検索要求用キーワードの数を検出し、
前記インデックス更新管理部は、前記インデックス分類部が検出したクエリ暗号化検索要求用キーワードの数に応じて、該当するキーワード数別インデックスに、前記登録暗号化情報と前記エントリ用代表元タグとの関連付けを記憶することを特徴とする請求項1〜4いずれか一項に記載の情報検索装置。
The index storage unit stores an index by number of keywords for each number of query encryption search request keywords, using the number of query encryption search request keywords as an attribute. Store one or more pairs of search queries for entries and entry representative tags with the same number of search request keywords and encrypted representative keywords,
The index classification unit detects the number of query encryption search request keywords included in the search request query as an attribute included in the search request query;
The index update management unit associates the registered encryption information and the entry representative tag with the corresponding keyword-specific index according to the number of query encryption search request keywords detected by the index classification unit. storing the information retrieval apparatus according to any one of claims 1 to 4, characterized in.
前記インデックス記憶部は、前記暗号化登録キーワードの登録フィールド番号を属性として、前記暗号化登録キーワードの登録フィールド番号とクエリ暗号化検索要求用キーワードとの対応関係を記述したエントリを記憶し、前記エントリの各々は、検索要求用フィールド番号とクエリ暗号化検索要求用キーワードとの対応関係とともに、エントリ用代表元タグを記憶し、
前記検索要求受信部は、クエリ暗号化検索要求用キーワードと前記クエリ暗号化検索要求用キーワードの検索要求用フィールド番号を有する検索要求用クエリを受信し、
前記インデックス分類部は、前記検索要求用クエリが有する属性として前記検索要求用クエリが有するクエリ暗号化検索要求用キーワードの検索要求用フィールド番号を一つ以上検出し、
前記インデックス更新管理部は、前記インデックス分類部が検出した一つ以上のクエリ暗号化検索要求用キーワードの検索要求用フィールド番号に対応するエントリに、前記登録暗号化情報と前記エントリ用代表元タグとの関連付けを記憶することを特徴とする請求項1〜4いずれか一項に記載の情報検索装置。
The index storage unit stores an entry describing a correspondence relationship between a registration field number of the encryption registration keyword and a query encryption search request keyword, using the registration field number of the encryption registration keyword as an attribute, Each of which stores an entry representative tag together with the correspondence between the search request field number and the query encryption search request keyword,
The search request receiving unit receives a search request query having a query encrypted search request keyword and a search request field number of the query encrypted search request keyword,
The index classification unit detects one or more search request field numbers of a query encrypted search request keyword included in the search request query as an attribute included in the search request query;
The index update management unit includes, in an entry corresponding to a search request field number of one or more query encryption search request keywords detected by the index classification unit, the registered encryption information, the entry representative tag, the association information retrieval apparatus according to claim 1, characterized in that storing.
前記検索処理部は、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが一致する場合に、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応すると判断することを特徴とする請求項1〜6いずれか一項に記載の情報検索装置。 The search processing unit compares the attribute of the entry search query with the attribute of the search request query, and the attribute of the entry search query matches the attribute of the search request query the information retrieval apparatus according to any one of claims 1 to 6, the attributes included in the entry for the search query and attribute included in the search request for query, characterized in that determined to correspond. 前記登録データ受信部は、平文の登録キーワードXと公開鍵とで暗号化された暗号化登録キーワードCXを一つ以上含む登録キーワードタグを受信し、
前記インデックス記憶部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYを含む前記エントリ用検索クエリを記憶し、
前記インデックス更新管理部は、前記暗号化登録キーワードCXに対応した任意の平文Zが、前記登録キーワードタグの各暗号化登録キーワードCXを前記エントリ用検索クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記登録キーワードタグと前記エントリ用検索クエリとを照合し、前記エントリ用検索クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来る場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項5記載の情報検索装置。
The registration data receiving unit receives a registration keyword tag including one or more encrypted registration keywords CX encrypted with a plain text registration keyword X and a public key,
The index storage unit stores the entry search query including a query encrypted search request keyword CY in which a plaintext search request keyword Y is encrypted with a user secret key,
The index update management unit is configured such that an arbitrary plaintext Z corresponding to the encrypted registration keyword CX uses each encrypted registration keyword CX of the registration keyword tag as a query encryption search request keyword CY of the entry search query. The registered keyword tag and the entry search query are collated according to whether or not the arbitrary plaintext Z is decrypted by decryption processing, and all the query encrypted search request keywords CY included in the entry search query are used. 6. The information search apparatus according to claim 5, wherein when the arbitrary plaintext Z can be decrypted, it is determined that the registered keyword tag corresponds to the entry search query.
前記登録データ受信部は、平文の登録キーワードXと公開鍵とで暗号化された暗号化登録キーワードCXと前記暗号化登録キーワードCXに対応した登録フィールド番号とをそれぞれ一つ以上含む登録キーワードタグを受信し、
前記インデックス記憶部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYと前記クエリ暗号化検索要求用キーワードCYに対応した検索要求用フィールド番号とを含む前記エントリ用検索クエリを記憶し、
前記インデックス更新管理部は、前記暗号化登録キーワードCXに対応した任意の平文Zが、前記登録キーワードタグの各暗号化登録キーワードCXを前記エントリ用検索クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記登録キーワードタグと前記エントリ用検索クエリとを照合し、かつ、
前記インデックス分類部は、前記暗号化登録キーワードCXに対応する登録フィールド番号と前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号とを比較し、
前記インデックス更新管理部は、前記エントリ用検索クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来て、かつ、前記暗号化登録キーワードCXに対応する登録フィールド番号と前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号とが一致する場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項5記載の情報検索装置。
The registration data receiving unit includes a registration keyword tag including at least one of an encrypted registration keyword CX encrypted with a plaintext registration keyword X and a public key, and a registration field number corresponding to the encrypted registration keyword CX. Receive
The index storage unit includes a query encrypted search request keyword CY in which a plaintext search request keyword Y is encrypted with a user secret key, and a search request field number corresponding to the query encrypted search request keyword CY. Storing the entry search query including:
The index update management unit is configured such that an arbitrary plaintext Z corresponding to the encrypted registration keyword CX uses each encrypted registration keyword CX of the registration keyword tag as a query encryption search request keyword CY of the entry search query. The registered keyword tag is matched with the entry search query based on whether or not the arbitrary plaintext Z is decrypted by decryption, and
The index classification unit compares a registration field number corresponding to the encrypted registration keyword CX and a search request field number corresponding to the query encrypted search request keyword CY,
The index update management unit can decrypt the arbitrary plaintext Z with all the query encrypted search request keywords CY included in the entry search query, and has a registration field number corresponding to the encrypted registration keyword CX; 6. The method according to claim 5, wherein when the search request field number corresponding to the query encrypted search request keyword CY matches, it is determined that the registered keyword tag corresponds to the entry search query. Information retrieval device.
前記登録データ受信部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYを一つ以上含む前記検索要求用クエリを受信し、
前記インデックス記憶部は、平文の代表元用キーワードWと公開鍵とで暗号化された暗号化代表元用キーワードCWを一つ以上含むエントリ代表元タグを前記暗号化代表元用キーワードCWの数毎に関連付けられたキーワード数別インデックス毎に記憶し、
前記検索処理部は、前記暗号化代表元用キーワードCWに対応した任意の平文Zが、前記エントリ代表元タグの各暗号化代表元用キーワードCWを前記検索要求用クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記エントリ代表元タグと前記検索要求用クエリとを照合し、前記検索要求用クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来る場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項6記載の情報検索装置。
The registration data receiving unit receives the search request query including one or more query encrypted search request keywords CY in which the plaintext search request keyword Y is encrypted with a user secret key,
The index storage unit, in the representative source keyword W plaintext with the public key of the encrypted one or more encryption representative source keyword CW including non-picture entry representing the original tag the encrypted representative source keyword CW and stored for each keyword-specific index numbers associated with each number,
The search processing unit is configured so that an arbitrary plaintext Z corresponding to the encrypted representative keyword CW uses each encrypted representative keyword CW of the entry representative tag as each query encrypted search request of the search request query. The entry representative tag and the search request query are collated based on whether or not the arbitrary plaintext Z is decrypted by decrypting with the keyword CY, and all the query encrypted searches included in the search request query The information search apparatus according to claim 6, wherein when the arbitrary plaintext Z can be decrypted with the request keyword CY, it is determined that the registered keyword tag corresponds to the entry search query.
前記登録データ受信部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYと前記クエリ暗号化検索要求用キーワードCYに対応した検索要求用フィールド番号とをそれぞれ一つ以上含む前記検索要求用クエリを受信し、
前記インデックス記憶部は、平文の代表元用キーワードWと公開鍵とで暗号化された暗号化代表元用キーワードCWと前記暗号化代表元用キーワードCWに対応したエントリ用フィールド番号とをそれぞれ一つ以上含むエントリ代表元タグを前記暗号化代表元用キーワードCWの数毎に関連付けられたキーワード数別インデックス毎に記憶し、
前記検索処理部は、前記暗号化代表元用キーワードCWに対応した任意の平文Zが、前記エントリ代表元タグの各暗号化代表元用キーワードCWを前記検索要求用クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記エントリ代表元タグと前記検索要求用クエリとを照合し、かつ、
前記インデックス分類部は、前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号と前記暗号化代表元用キーワードCWに対応するエントリ用フィールド番号とを比較し、
前記検索処理部は、前記検索要求用クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来て、かつ、前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号と前記暗号化代表元用キーワードCWに対応するエントリ用フィールド番号とが一致する場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項6記載の情報検索装置。
The registered data receiving unit includes a query encrypted search request keyword CY in which a plaintext search request keyword Y is encrypted with a user secret key, and a search request field number corresponding to the query encrypted search request keyword CY. Receiving the search request query including one or more of each,
The index storage unit includes one encrypted representative keyword CW encrypted with a plaintext representative keyword W and a public key, and one entry field number corresponding to the encrypted representative keyword CW. or containing non-picture entry representative based tag storage for each keyword by number index associated with each number of the encryption representative source keyword CW,
The search processing unit is configured so that an arbitrary plaintext Z corresponding to the encrypted representative keyword CW uses each encrypted representative keyword CW of the entry representative tag as each query encrypted search request of the search request query. The entry representative tag and the search request query are collated according to whether or not the arbitrary plaintext Z is decrypted by decrypting with the keyword CY, and
The index classification unit compares a search request field number corresponding to the query encrypted search request keyword CY with an entry field number corresponding to the encrypted representative source keyword CW;
The search processing unit is capable of decrypting the arbitrary plaintext Z with all the query encrypted search request keywords CY included in the search request query and corresponding to the query encrypted search request keyword CY. 7. The registration keyword tag and the entry search query are determined to correspond to each other when the entry field number matches the entry field number corresponding to the encrypted representative keyword CW. The information retrieval device described.
前記インデックス記憶部は、複数のユーザにそれぞれ対応する複数の記憶領域を有することを特徴とする請求項1〜11いずれか一項に記載の情報検索装置。 The information search device according to any one of claims 1 to 11 , wherein the index storage unit includes a plurality of storage areas respectively corresponding to a plurality of users. コンピュータに、  On the computer,
1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶ステップと、  An entry search query having one or more query encryption search request keywords, an attribute of the entry search query, and an entry representative tag having one or more encryption representative keywords are stored in association with each other. Index storage step to perform,
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信ステップと、  A registration data receiving step of receiving registration encryption information and a registration keyword tag having one or more encryption registration keywords corresponding to the registration encryption information;
前記インデックス記憶ステップで記憶された前記エントリ用検索クエリと前記登録データ受信ステップで受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信ステップで受信した前記登録暗号化情報が前記インデックス記憶ステップで記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理ステップと、  The entry search query stored in the index storage step and the registration keyword tag received in the registration data reception step are collated, and the registration query is matched when the entry search query and the registration keyword tag correspond to each other. It is determined that the registered encrypted information received in the data receiving step is the registered encrypted information corresponding to the entry search query stored in the index storing step, and the registered encrypted information is searched for the entry. An index update management step to associate with the query;
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信ステップと、  A search request receiving step of receiving a search request query having one or more query encrypted search request keywords;
前記検索要求受信ステップで受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類ステップと、  An index classification step of detecting an attribute of the search request query from the search request query received in the search request receiving step;
前記インデックス記憶ステップで記憶された前記エントリ用代表元タグと前記検索要求受信ステップで受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶ステップで記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類ステップで検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた登録用情報を出力する検索処理ステップと  When the entry representative tag stored in the index storing step and the search request query received in the search request receiving step are collated, and the entry representative tag corresponds to the search request query And the attribute of the search query for entry stored in the index storage step and the attribute of the query for search request detected in the index classification step are collated, and the attribute of the search query for entry and the search A search processing step of outputting registration information associated with the entry representative tag when the attribute of the request query corresponds;
を実行させるためのプログラム。A program for running
JP2010227906A 2010-10-07 2010-10-07 Information search apparatus and information search method Active JP5557683B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010227906A JP5557683B2 (en) 2010-10-07 2010-10-07 Information search apparatus and information search method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010227906A JP5557683B2 (en) 2010-10-07 2010-10-07 Information search apparatus and information search method

Publications (2)

Publication Number Publication Date
JP2012083863A JP2012083863A (en) 2012-04-26
JP5557683B2 true JP5557683B2 (en) 2014-07-23

Family

ID=46242682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010227906A Active JP5557683B2 (en) 2010-10-07 2010-10-07 Information search apparatus and information search method

Country Status (1)

Country Link
JP (1) JP5557683B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2808803B1 (en) 2012-01-25 2017-03-01 Mitsubishi Electric Corporation Data search device, data search method, data search program, data registration device, data registration method, data registration program and information processing device
JP5963936B2 (en) * 2013-02-25 2016-08-03 三菱電機株式会社 Server device, secret search program, recording medium, and secret search system
JP6208586B2 (en) * 2014-01-16 2017-10-04 株式会社日立製作所 Searchable cryptographic processing system and searchable cryptographic processing method
WO2017138122A1 (en) * 2016-02-10 2017-08-17 株式会社日立製作所 Encrypted information search method, encrypted information search system, and encrypted information search program
JP6351890B1 (en) * 2017-05-18 2018-07-04 三菱電機株式会社 Search device, secret search system, and search program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2682448B2 (en) * 1994-05-23 1997-11-26 日本電気株式会社 Index search method
JP3457184B2 (en) * 1998-06-25 2003-10-14 シャープ株式会社 Search device and medium storing control program therefor
JP4837362B2 (en) * 2005-10-31 2011-12-14 株式会社エヌ・ティ・ティ・データ Data search system, information processing apparatus, data search method, and program.
CN101593196B (en) * 2008-05-30 2013-09-25 日电(中国)有限公司 Method, device and system for rapidly searching ciphertext
CN101739400B (en) * 2008-11-11 2014-08-13 日电(中国)有限公司 Method and device for generating indexes and retrieval method and device
CN101770462A (en) * 2008-12-30 2010-07-07 日电(中国)有限公司 Device for ciphertext index and search and method thereof
JP5274271B2 (en) * 2009-01-16 2013-08-28 三菱電機株式会社 SEARCH SYSTEM, INDEX ENCRYPTION DEVICE, SEARCH ENCRYPTION DEVICE, SEARCH DEVICE, COMPUTER PROGRAM, AND SEARCH METHOD

Also Published As

Publication number Publication date
JP2012083863A (en) 2012-04-26

Similar Documents

Publication Publication Date Title
US10498706B2 (en) Searchable encryption enabling encrypted search based on document type
US10235539B2 (en) Server device, recording medium, and concealed search system
JP5606642B2 (en) Data search device, data search method, data search program, data registration device, data registration method, data registration program, and information processing device
EP3803668A1 (en) Obfuscating information related to personally identifiable information (pii)
US9600677B2 (en) Database apparatus, method, and program
US20120036365A1 (en) Combining request-dependent metadata with media content
US20080016372A1 (en) Method, apparatus, and program product for revealing redacted information
US10872158B2 (en) Secret search system, secret search method, and computer readable medium
US10902063B2 (en) Wildcard search in encrypted text
CN109766707B (en) Data processing method, device, equipment and medium based on block chain
JP5557683B2 (en) Information search apparatus and information search method
US8510860B2 (en) Local storage of information pedigrees
RU2373572C2 (en) System and method for resolution of names
JP2015041319A (en) Data management device, data management method, and program
Ananthi et al. FSS-SDD: fuzzy-based semantic search for secure data discovery from outsourced cloud data
US11442922B2 (en) Data management method, data management apparatus, and non-transitory computer readable medium
WO2020140616A1 (en) Data encryption method and related device
JP2000029751A (en) Log managing method/device
JP2018018420A (en) Information processing device and information processing program
US8005849B2 (en) Database access server with reformatting
WO2015107561A1 (en) Search system, search method, and search program
US11106740B2 (en) Search device, search system, search method, and computer readable medium
JP2018022218A (en) Information processing apparatus and information processing program
US20080104682A1 (en) Secure Content Routing
US20140320905A1 (en) Data managing system, image processing apparatus, image restoring apparatus, storage medium, and data managing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140411

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140603

R150 Certificate of patent or registration of utility model

Ref document number: 5557683

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250