WO2020245898A1 - 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム - Google Patents
検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム Download PDFInfo
- Publication number
- WO2020245898A1 WO2020245898A1 PCT/JP2019/022108 JP2019022108W WO2020245898A1 WO 2020245898 A1 WO2020245898 A1 WO 2020245898A1 JP 2019022108 W JP2019022108 W JP 2019022108W WO 2020245898 A1 WO2020245898 A1 WO 2020245898A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- search condition
- condition
- numerical
- query
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
Definitions
- the present invention relates to data retrieval.
- search system as a system for efficiently obtaining the necessary data from the data collected from sources such as the Internet.
- Patent Document 1 discloses a technique for searching numerical data (hereinafter, simply referred to as "numerical value").
- the search device transmits a search query in which a numerical range to be searched (hereinafter referred to as a numerical range to be searched) is specified to a server device that manages numerical values.
- Patent Document 1 a search query specifying a search target numerical range is generated. Therefore, the technique of Patent Document 1 has a problem that when the search target numerical range is wide, the number of numerical values included in the search query increases and the size of the search query increases. As the size of the search query increases, it takes a lot of computer resources and time to generate the search query in the search device. In addition, as the size of the search query increases, a large amount of communication bandwidth is required to send the search query. Further, as the size of the search query increases, the number of times the search is performed increases in proportion to the number of numerical values included in the search target numerical range, and a large amount of computer resources and time are required for the search on the server device.
- One of the main purposes of this invention is to solve the above problems. More specifically, the main object of the present invention is to control the size of a search query.
- the search device is A first search condition generator that generates a first search condition that is a search condition that includes one or more numerical values for searching for a numerical value included in the search target numerical range that is a numerical range of the search target.
- a second search condition generator that generates a second search condition that is a search condition that includes one or more numerical values for searching for a numerical value that is not included in the search target numerical range.
- a comparison unit that compares the number of numerical values included in the first search condition with the number of numerical values included in the second search condition.
- a search query generation unit that generates a search query using a search condition having a small number of numerical values among the first search condition and the second search condition. It has a transmission unit that transmits the search query generated by the search query generation unit to a destination.
- the size of the search query can be suppressed.
- FIG. The figure which shows the configuration example of the search system which concerns on Embodiment 1.
- FIG. The figure which shows the data flow example of the conventional search system.
- the figure which shows the example of the conventional search query The figure which shows the data flow example of the search system which concerns on Embodiment 1.
- FIG. The figure which shows the example of the search query which concerns on Embodiment 1.
- FIG. The figure which shows the hardware configuration example of the search apparatus which concerns on Embodiment 1.
- FIG. The figure which shows the functional structure example of the search apparatus which concerns on Embodiment 1.
- FIG. The figure which shows the hardware configuration example of the server apparatus which concerns on Embodiment 1.
- FIG. The figure which shows the functional structure example of the server apparatus which concerns on Embodiment 1.
- FIG. The flowchart which shows the operation example of the search apparatus which concerns on Embodiment 1.
- the flowchart which shows the operation example of the server apparatus which concerns on Embodiment 1.
- FIG. 1 shows a configuration example of the search system 500 according to the present embodiment.
- the search system 500 is a search system that supports confidential searches.
- the search system 500 according to the present embodiment is composed of a search device 100, a registration device 200, a server device 300, and a network 400.
- the search device 100, the registration device 200, and the server device 300 are computers, respectively.
- the registration device 200 registers the numerical value in the server device 300. More specifically, the registration device 200 encrypts (confides) the numerical value and transmits the encrypted numerical value to the server device 300.
- the server device 300 receives the encrypted numerical value from the registration device 200, and stores the received numerical value in the encrypted state. Further, the server device 300 receives a search query from the search device 100. The search query is encrypted. When the server device 300 receives the search query, the server device 300 extracts the numerical value corresponding to the search query while the search query remains encrypted. The server device 300 compares the encrypted search query with the encrypted numerical value and extracts the numerical value corresponding to the search query. That is, the server device 300 performs a confidential search. Then, the server device 300 transmits the extracted numerical value to the search device 100 in the encrypted state.
- the operation procedure of the server device 300 corresponds to the information processing method. Further, the program that realizes the operation of the server device 300 corresponds to an information processing program.
- the search device 100 generates a search query for searching a numerical value. Then, the search device 100 transmits the generated search query to the server device 300. As mentioned above, the search query is encrypted. Further, the search device 100 receives the encrypted numerical value extracted by the server device 300 from the server device 300. Then, the search device 100 decrypts the received encrypted numerical value and obtains a plain text numerical value.
- the operation procedure of the search device 100 corresponds to the search method. Further, the program that realizes the operation of the search device 100 corresponds to the search program.
- the network 400 is a LAN (Local Area Network) installed on the Internet or in a company.
- the network 400 is a communication path that connects the search device 100, the registration device 200, and the server device 300.
- search device 100 Although only one search device 100 is shown in FIG. 1, there may be two or more search devices 100. Further, in FIG. 1, only one registration device 200 is shown, but there may be two or more registration devices 200.
- Patent Document 1 *** Overview of the conventional search system ***
- Patent Document 1 a procedure for registering a numerical value and a procedure for searching for a numerical value in a conventional search system
- FIG. 2 shows a configuration example of the conventional search system 5000.
- the search device 1000 corresponds to the search device 100 of FIG.
- the registration device 2000 corresponds to the registration device 200 of FIG.
- the server device 3000 corresponds to the server device 300 of FIG.
- the registration device 2000 registers the numerical value “77” and the numerical value “87” in the server device 3000 as registration data.
- the registration device 2000 encrypts the numerical value "77” and the numerical value "87” using the private key (step (1)), and generates encrypted data.
- the registration device 2000 transmits the encrypted data to the server device 3000 as a storage request (step (2)).
- the numerical value with the key mark indicates that the numerical value is encrypted.
- the ciphertext of the numerical value "77” is ⁇ H 2 (H 1 (K, 77), R 1 ), R 1 , H 2 (H 1 (K, 7?), R.
- H 1 and H 2 are common key cryptosystems such as AES or hash functions such as SHA256, K is a private key, R 1 , R 2 , R 3 and R 4 are random numbers, and "?” Is a one-character wild card. Represents.
- the server device 3000 receives the encrypted data and stores the received encrypted data in the storage device.
- the search device 1000 searches for numerical values included in the search target numerical range "81-199".
- the search target numerical range is the search target numerical range.
- the search device 1000 encrypts the search target numerical range "81-199" using the private key (step (3)), and searches including the encrypted search target numerical range ("81-199"). Generate a query.
- the ciphertext of the search target numerical range "81-199" is ⁇ H 1 (K, 81), ..., H 1 (K, 89), H 1 (K, It is expressed as 9?), H 1 (K, 1 ??) ⁇ .
- the search device 1000 and the registration device 2000 share a secret key of a common key method. In the above example, this private key corresponds to the private key K.
- the search device 1000 transmits a search query to the server device 3000 as a search request (step (4)).
- the server device 3000 receives the search query. Then, the server device 3000 compares the search query with the encrypted data stored in the storage device. In the example of FIG. 2, since the numerical value "87" is included in the search target numerical range ("81-199"), the server device 3000 extracts the numerical value "87" in the encrypted state (step (5). )).
- the ciphertext of the numerical value "77" stored in the server device 3000 ⁇ H 2 (H 1 (K, 77), R 1 ), R 1 , H 2 (H 1 (K, 7?), R 2 ), R 2 ⁇ and the ciphertext (that is, the search query) of the search target numerical range "81-199" received from the search device 1000 ⁇ H 1 (K). , 81), ..., H 1 (K, 89), H 1 (K, 9?), H 1 (K, 1 ??) ⁇ are included in the encryption of the number "77".
- the server device 3000 transmits the extraction result numerical value "87" to the search device 1000 in an encrypted state as a search response.
- the search device 1000 receives the extraction result. Then, the search device 1000 decodes the extraction result using the private key (step (7)), and acquires the plain text numerical value "87".
- FIG. 3 shows an example of a search query corresponding to the search target numerical range (“81-199”).
- the search query corresponding to the search target numerical range (“81-199”) includes 11 numerical values.
- "?” Represents a one-character wildcard.
- the search device 100 generates a first search condition and a second search condition from the search target numerical range.
- the first search condition is a search condition for searching a numerical value included in a search target numerical range.
- the second search condition is a search condition for searching a numerical value not included in the search target numerical range.
- the first search condition is "81-199”.
- the second search condition is for searching the numerical values included in the range obtained by excluding the search target numerical range "81-199" from the range "50-299" between the minimum value and the maximum value. It is a search condition.
- the second search condition is "50-80" and "200-299".
- the search device 100 compares the number of numerical values included in the first search condition with the number of numerical values included in the second search condition. Then, the search device 100 selects a search condition having a small number of numerical values.
- FIG. 5 shows a numerical value included in the first search condition and a numerical value included in the second search condition of FIG.
- the numerical value included in the first search condition is the same as the numerical value shown in FIG. 3, and 11 numerical values are included.
- the number included in the second search condition is five. Therefore, in the example of FIG. 4, the search device 100 selects the second search condition having a small number of numerical values. Then, the search device 100 generates a search query using the selected second search condition. As long as the number of numerical values of the first search condition and the number of numerical values of the second search condition are the same, the search device 100 may select either search condition.
- the search device 100 encrypts the second search condition (“50-80” and “200-299”) to generate a search query (step (3) in FIG. 4).
- the search device 100 includes a back extraction instruction in the search query.
- the back extraction instruction is a notification instructing the server device 300 to extract a numerical value that does not match the second search condition.
- the procedure for generating the search query is the same as that shown in FIG. 2 except that the back extraction instruction is included.
- the search device 100 transmits a search query to the server device 300 as a search request (step (4)).
- the server device 300 receives the search query.
- the server device 300 determines whether or not the received search query includes a back extraction instruction.
- the server device 300 extracts a numerical value that matches the search condition (search target numerical range) included in the search query, similarly to the server device 3000 of FIG.
- the search query includes a back extraction instruction
- the numerical values that do not match the search conditions included in the search query are extracted.
- the server device 300 matches the second search conditions (“50-80” and “200-299”) included in the search query. Extract the numbers that do not.
- the server device 300 extracts the numerical value "87", which is outside the range of "50-80” and outside the range of "200-299", in the encrypted state (step (5)). ). Since the numerical value "77" is within the range of "50-80" which is the second search condition, the server device 300 does not extract the numerical value "77". Next, the server device 300 transmits the extraction result numerical value "87" to the search device 100 in an encrypted state as a search response. Since the subsequent processing is the same as that shown in FIG. 2, the description thereof will be omitted.
- FIG. 6 shows a hardware configuration example of the search device 100 according to the present embodiment.
- the search device 100 includes a processor 151, a main storage device 152, an auxiliary storage device 153, and a communication device 154 as hardware. Further, the search device 100 includes a numerical range acquisition unit 101, a first search condition generation unit 102, a second search condition generation unit 103, a comparison unit 104, a search query generation unit 105, and a transmission unit 106 as functional configurations. ..
- the auxiliary storage device 153 is a program that realizes the functions of the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit 106. Is remembered. These programs are loaded from the auxiliary storage device 153 into the main storage device 152. Then, the processor 151 executes these programs, and the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit, which will be described later, are executed. The operation of 106 is performed. In FIG.
- FIG. 7 shows an example of the functional configuration of the search device 100 according to the present embodiment.
- the search device 100 includes a numerical range acquisition unit 101, a first search condition generation unit 102, a second search condition generation unit 103, a comparison unit 104, a search query generation unit 105, and a transmission unit 106 as functional configurations.
- FIG. 7 shows only the elements related to the generation of the search query and the transmission of the search query for the sake of simplicity of the explanation. That is, the search device 100 also includes an element for receiving the extraction result and an element for decoding the extraction result, but in FIG. 7, the illustration of these elements is omitted for the sake of brevity.
- the numerical range acquisition unit 101 acquires the search target numerical range.
- the numerical range acquisition unit 101 acquires, for example, a search target numerical range specified by the user of the search device 100.
- the numerical range acquisition unit 101 outputs the acquired numerical range of the search target to the first search condition generation unit 102 and the second search condition generation unit 103.
- the first search condition generation unit 102 acquires the search target numerical range from the numerical range acquisition unit 101 and generates the first search condition.
- the process performed by the first search condition generation unit 102 corresponds to the first search condition generation process.
- the second search condition generation unit 103 acquires the search target numerical range from the numerical range acquisition unit 101 and generates the second search condition.
- the process performed by the second search condition generation unit 103 corresponds to the second search condition generation process.
- the comparison unit 104 acquires the first search condition from the first search condition generation unit 102, and acquires the second search condition from the second search condition generation unit 103. Further, the comparison unit 104 compares the number of numerical values included in the first search condition with the number of numerical values included in the second search condition. Then, the comparison unit 104 selects a search condition having a smaller number of numerical values from the first search condition and the second search condition, and outputs the selected search condition to the search query generation unit 105. Further, when the second search condition is selected, the comparison unit 104 outputs a selection notification notifying that the second search condition is selected to the search query generation unit 105 together with the second search condition. The process performed by the comparison unit 104 corresponds to the comparison process.
- the search query generation unit 105 generates a search query using a search condition having a smaller number of numerical values among the first search condition and the second search condition. That is, the search query generation unit 105 generates a search query using the search conditions output from the comparison unit 104.
- the search query generation unit 105 generates a search query by encrypting the search condition with the private key as described with reference to FIGS. 2 and 4. Further, when the selection notification is output from the comparison unit 104, the search query generation unit 105 includes the back extraction instruction in the search query.
- the back extraction instruction is a notification instructing the server device 300 to extract a numerical value that does not match the second search condition.
- the transmission unit 106 transmits the search query generated by the search query generation unit 105 to the server device 300.
- FIG. 8 shows a hardware configuration example of the server device 300 according to the present embodiment.
- the server device 300 includes a processor 351, a main storage device 352, an auxiliary storage device 353, and a communication device 354 as hardware. Further, the server device 300 includes a receiving unit 301, a search unit 302, and a transmitting unit 303 as functional configurations.
- the auxiliary storage device 353 stores a program that realizes the functions of the receiving unit 301, the searching unit 302, and the transmitting unit 303. These programs are loaded from the auxiliary storage device 353 into the main storage device 352. Then, the processor 351 executes these programs to operate the receiving unit 301, the search unit 302, and the transmitting unit 303, which will be described later.
- the auxiliary storage device 353 stores the encrypted numerical value transmitted from the registration device 200.
- FIG. 9 shows an example of the functional configuration of the server device 300 according to the present embodiment.
- the server device 300 includes a receiving unit 301, a search unit 302, and a transmitting unit 303 as functional configurations.
- FIG. 9 shows only the elements related to the reception of the search query, the search, and the transmission of the extraction result for the sake of simplification of the explanation. That is, the server device 300 also includes an element for receiving the storage request from the registration device 200 and an element for storing the numerical value included in the storage request in the storage area. However, in FIG. 9, for the sake of simplicity of explanation, these elements are included. The illustration is omitted.
- the receiving unit 301 receives the search query transmitted as a search request from the search device 100.
- the receiving unit 301 outputs the received search query to the search unit 302.
- the processing performed by the receiving unit 301 corresponds to the receiving processing.
- the search unit 302 determines whether or not the search query acquired from the receiving unit 301 includes a back extraction instruction. When the search query does not include the back extraction instruction, the search unit 302 extracts from the auxiliary storage device 353 a numerical value that matches the first search condition included in the search query. On the other hand, when the search query includes a back extraction instruction, the search unit 302 extracts a numerical value that does not match the second search condition included in the search query from the auxiliary storage device 353. The process performed by the search unit 302 corresponds to the search process.
- the transmission unit 303 transmits the numerical value extracted by the search unit 302 to the search device 100 as a search response.
- step S11 the numerical range acquisition unit 101 acquires the search target numerical range. Further, the numerical range acquisition unit 101 outputs the acquired numerical range of the search target to the first search condition generation unit 102 and the second search condition generation unit 103.
- step S12 the first search condition generation unit 102 generates the first search condition.
- step S13 the second search condition generation unit 103 generates the second search condition.
- the second search condition is to be generated after the generation of the first search condition, but the generation of the first search condition and the generation of the second search condition are performed in parallel. May be good.
- the first search condition may be generated after the generation of the second search condition.
- the first search condition generation unit 102 outputs the generated first search condition to the comparison unit 104.
- the second search condition generation unit 103 outputs the generated second search condition to the comparison unit 104.
- step S14 the comparison unit 104 compares the number of numerical values included in the first search condition with the number of numerical values included in the second search condition.
- step S15 the comparison unit 104 selects a search condition having a smaller number of numerical values from the first search condition and the second search condition, and outputs the selected search condition to the search query generation unit 105. .. Further, when the second search condition is selected, the comparison unit 104 outputs a selection notification notifying that the second search condition is selected to the search query generation unit 105 together with the second search condition.
- the search query generation unit 105 generates a search query using the search conditions output from the comparison unit 104.
- the search query generation unit 105 generates a search query by encrypting the search condition with the private key. Further, when the selection notification is output from the comparison unit 104, the search query generation unit 105 includes the back extraction instruction in the search query. Inverse extraction instructions are not encrypted.
- step S17 the transmission unit 106 transmits the search query generated by the search query generation unit 105 to the server device 300.
- step S31 the receiving unit 301 receives the search query.
- the receiving unit 301 outputs the received search query to the search unit 302.
- step S32 the search unit 302 determines whether or not the search query includes a back extraction instruction. If the search query includes a back-extraction instruction (YES in step S32), the process proceeds to step S33. On the other hand, when the search query does not include the back extraction instruction (NO in step S32), the process proceeds to step S34.
- step S33 the search unit 302 extracts a numerical value that does not match the search condition (second search condition) included in the search query from the auxiliary storage device 353.
- step S34 the search unit 302 extracts a numerical value that matches the search condition (first search condition) included in the search query from the auxiliary storage device 353.
- step S35 the search unit 302 generates a search response including the numerical value extracted in step S33 or step S34.
- step S36 the transmission unit 303 transmits the search response to the search device 100.
- the search device 100 compares the number of numerical values included in the first search condition with the number of numerical values included in the second search condition. Then, the search device 100 selects a search condition having a small number of numerical values, and generates a search query using the selected search condition. Therefore, according to the present embodiment, the size of the search query can be suppressed. Therefore, according to the present embodiment, the computer resources and time required for generating the search query can be reduced. Further, according to the present embodiment, the communication band required for transmitting the search query can be reduced. Further, according to the present embodiment, it is possible to reduce the computer resources and the time required for the search on the server device.
- the procedure described in the first embodiment may be applied to suppress the size of the search query in the search system that does not support the secret search.
- the processor 151 shown in FIG. 6 and the processor 351 shown in FIG. 8 are ICs (Integrated Circuits) that perform processing, respectively.
- the processor 151 and the processor 351 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and the like, respectively.
- the main storage device 152 shown in FIG. 6 and the main storage device 352 shown in FIG. 8 are RAMs (Random Access Memory), respectively.
- the auxiliary storage device 153 shown in FIG. 6 and the auxiliary storage device 353 shown in FIG. 8 are a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), and the like, respectively.
- the communication device 154 shown in FIG. 6 and the communication device 354 shown in FIG. 8 are electronic circuits that execute data communication processing, respectively.
- the communication device 154 and the communication device 354 are, for example, a communication chip or a NIC (Network Interface Card), respectively.
- an OS (Operating System) is also stored in each of the auxiliary storage device 153 and the auxiliary storage device 353. Then, in the search device 100, at least a part of the OS is executed by the processor 151. Further, in the server device 300, at least a part of the OS is executed by the processor 351. While executing at least a part of the OS, the processor 151 executes the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit 106. Execute the program that realizes the functions of. When the processor 151 executes the OS, task management, memory management, file management, communication control, and the like are performed.
- the processor 351 executes a program that realizes the functions of the receiving unit 301, the searching unit 302, and the transmitting unit 303 while executing at least a part of the OS.
- the processor 351 executes the OS, task management, memory management, file management, communication control, and the like are performed.
- information, data, and signals indicating the processing results of the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit 106 At least one of the values and variable values is stored in at least one of the registers and cache memory in the main storage 152, the auxiliary storage 153, and the processor 151.
- a program that realizes the functions of the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit 106 is a magnetic disk.
- a portable recording medium such as a flexible disc, an optical disc, a compact disc, a Blu-ray (registered trademark) disc, or a DVD. Then, a program that realizes the functions of the numerical range acquisition unit 101, the first search condition generation unit 102, the second search condition generation unit 103, the comparison unit 104, the search query generation unit 105, and the transmission unit 106 can be stored.
- the carry-on recording medium may be distributed commercially.
- At least one of the information, data, signal value, and variable value indicating the processing result of the receiving unit 301, the searching unit 302, and the transmitting unit 303 is a register in the main storage device 352, the auxiliary storage device 353, and the processor 351. And stored in at least one of the cache memories.
- the programs that realize the functions of the receiving unit 301, the search unit 302, and the transmitting unit 303 are stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD. You may. Then, a portable recording medium in which a program that realizes the functions of the receiving unit 301, the searching unit 302, and the transmitting unit 303 is stored may be commercially distributed.
- circuits or “circuits”. It may be read as “process” or “procedure” or “process”. Further, the "unit” of the receiving unit 301, the searching unit 302, and the transmitting unit 303 may be read as “circuit” or “process” or “procedure” or “processing”.
- the search device 100 and the server device 300 may be realized by processing circuits, respectively.
- the processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
- processing circuit Lee the superordinate concept of the processor and the processing circuit is referred to as "processing circuit Lee". That is, the processor and the processing circuit are specific examples of the "processing circuit Lee", respectively.
- search device 101 numerical range acquisition unit, 102 first search condition generation unit, 103 second search condition generation unit, 104 comparison unit, 105 search query generation unit, 106 transmission unit, 151 processor, 152 main storage device, 153 Auxiliary storage device, 154 communication device, 200 registration device, 300 server device, 301 receiver, 302 search unit, 303 transmitter, 351 processor, 352 main memory device, 353 auxiliary memory device, 354 communication device, 400 network, 500 Search system, 1000 search device, 2000 registration device, 3000 server device, 5000 search system.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
第1の検索条件生成部(102)は、検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成する。第2の検索条件生成部(103)は、検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成する。比較部(104)は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。検索クエリ生成部(105)は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する。送信部(106)は、検索クエリ生成部(105)により生成された検索クエリを送信先に送信する。
Description
本発明は、データの検索に関する。
インターネット等のソースから収集したデータの中から、必要なデータを効率的に得るためのシステムとして検索システムがある。
特許文献1では、数値データ(以下、単に「数値」という)を検索するための技術が開示されている。特許文献1では、検索装置は、数値を管理するサーバ装置に、検索対象の数値範囲(以下、検索対象数値範囲という)を指定した検索クエリを送信する。
特許文献1の技術では、検索対象数値範囲を指定した検索クエリが生成される。このため、特許文献1の技術では、検索対象数値範囲が広い場合には、検索クエリに含まれる数値の個数が多くなり、検索クエリのサイズが大きくなるという課題がある。検索クエリのサイズが大きくなると、検索装置での検索クエリの生成に多くの計算機資源及び時間を要することになる。また、検索クエリのサイズが大きくなると、検索クエリの送信に多くの通信帯域を要することになる。また、検索クエリのサイズが大きくなると、検索対象数値範囲に含まれる数値の個数に比例して検索を行う回数が増え、サーバ装置での検索に多くの計算機資源及び時間を要することになる。
この発明は、上記のような課題を解決することを主な目的の一つとしている。より具体的には、本発明は、検索クエリのサイズを抑制することを主な目的とする。
本発明に係る検索装置は、
検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成する第1の検索条件生成部と、
前記検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成する第2の検索条件生成部と、
前記第1の検索条件に含まれる数値の個数と前記第2の検索条件に含まれる数値の個数とを比較する比較部と、
前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する検索クエリ生成部と、
前記検索クエリ生成部により生成された前記検索クエリを送信先に送信する送信部とを有する。
検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成する第1の検索条件生成部と、
前記検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成する第2の検索条件生成部と、
前記第1の検索条件に含まれる数値の個数と前記第2の検索条件に含まれる数値の個数とを比較する比較部と、
前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する検索クエリ生成部と、
前記検索クエリ生成部により生成された前記検索クエリを送信先に送信する送信部とを有する。
本発明によれば、検索クエリのサイズを抑制することができる。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***システム構成例***
図1は、本実施の形態に係る検索システム500の構成例を示す。
検索システム500は秘匿検索に対応した検索システムである。
本実施の形態に係る検索システム500は、検索装置100、登録装置200、サーバ装置300及びネットワーク400で構成される。
検索装置100、登録装置200及びサーバ装置300は、それぞれコンピュータである。
***システム構成例***
図1は、本実施の形態に係る検索システム500の構成例を示す。
検索システム500は秘匿検索に対応した検索システムである。
本実施の形態に係る検索システム500は、検索装置100、登録装置200、サーバ装置300及びネットワーク400で構成される。
検索装置100、登録装置200及びサーバ装置300は、それぞれコンピュータである。
登録装置200は、数値をサーバ装置300に登録する。より具体的には、登録装置200は数値を暗号化(秘匿化)し、暗号化された数値をサーバ装置300に送信する。
サーバ装置300は、暗号化された数値を登録装置200から受信し、受信した数値を暗号化された状態のまま保管する。
また、サーバ装置300は、検索装置100から検索クエリを受信する。検索クエリは暗号化されている。
サーバ装置300は、検索クエリを受信した場合に、検索クエリが暗号化された状態のままで、検索クエリに対応する数値を抽出する。サーバ装置300は、暗号化された検索クエリと暗号化された数値とを比較して、検索クエリに対応する数値を抽出する。つまり、サーバ装置300は秘匿検索を行う。
そして、サーバ装置300は、抽出された数値を暗号化された状態のままで検索装置100に送信する。
なお、サーバ装置300の動作手順は、情報処理方法に相当する。また、サーバ装置300の動作を実現するプログラムは、情報処理プログラムに相当する。
また、サーバ装置300は、検索装置100から検索クエリを受信する。検索クエリは暗号化されている。
サーバ装置300は、検索クエリを受信した場合に、検索クエリが暗号化された状態のままで、検索クエリに対応する数値を抽出する。サーバ装置300は、暗号化された検索クエリと暗号化された数値とを比較して、検索クエリに対応する数値を抽出する。つまり、サーバ装置300は秘匿検索を行う。
そして、サーバ装置300は、抽出された数値を暗号化された状態のままで検索装置100に送信する。
なお、サーバ装置300の動作手順は、情報処理方法に相当する。また、サーバ装置300の動作を実現するプログラムは、情報処理プログラムに相当する。
検索装置100は、数値を検索するための検索クエリを生成する。そして、検索装置100は、生成した検索クエリをサーバ装置300に送信する。前述のように検索クエリは暗号化されている。
また、検索装置100は、サーバ装置300から、サーバ装置300で抽出された暗号化された数値を受信する。そして、検索装置100は、受信した暗号化された数値の復号を行い、平文の数値を得る。
なお、検索装置100の動作手順は、検索方法に相当する。また、検索装置100の動作を実現するプログラムは、検索プログラムに相当する。
また、検索装置100は、サーバ装置300から、サーバ装置300で抽出された暗号化された数値を受信する。そして、検索装置100は、受信した暗号化された数値の復号を行い、平文の数値を得る。
なお、検索装置100の動作手順は、検索方法に相当する。また、検索装置100の動作を実現するプログラムは、検索プログラムに相当する。
ネットワーク400は、インターネット又は企業内に敷設されたLAN(Local Area Network)である。
ネットワーク400は、検索装置100、登録装置200及びサーバ装置300を接続する通信路である。
ネットワーク400は、検索装置100、登録装置200及びサーバ装置300を接続する通信路である。
図1では、1つの検索装置100のみが示されるが、検索装置100は2つ以上存在してもよい。また、図1では、1つの登録装置200のみが示されるが、登録装置200は2つ以上存在してもよい。
***従来の検索システムの概要***
ここで、図2及び図3を参照して、従来(特許文献1)の検索システムにおける数値の登録手順及び数値の検索手順を説明する。
ここで、図2及び図3を参照して、従来(特許文献1)の検索システムにおける数値の登録手順及び数値の検索手順を説明する。
図2は、従来の検索システム5000の構成例を示す。
図2において、検索装置1000は図1の検索装置100に対応する。登録装置2000は図1の登録装置200に対応する。サーバ装置3000は図1のサーバ装置300に対応する。
図2において、検索装置1000は図1の検索装置100に対応する。登録装置2000は図1の登録装置200に対応する。サーバ装置3000は図1のサーバ装置300に対応する。
図2では、登録装置2000が登録データとして数値「77」と数値「87」とをサーバ装置3000に登録する。
登録装置2000は、秘密鍵を用いて数値「77」と数値「87」とを暗号化し(ステップ(1))、暗号化データを生成する。そして、登録装置2000は、保管要求として、暗号化データをサーバ装置3000に送信する(ステップ(2))。
なお、図2において、鍵のマークが付された数値は、数値が暗号化されていることを表す。
例えば、数値の暗号化の例として、数値「77」の暗号文を{H2(H1(K,77),R1),R1,H2(H1(K,7?),R2),R2}と表し、また数値「87」の暗号文を{H2(H1(K,87),R3),R3,H2(H1(K,8?),R4),R4}と表す。ただし、H1とH2はAES等の共通鍵暗号方式またはSHA256等のハッシュ関数、Kは秘密鍵、R1,R2,R3,R4は乱数、「?」は1文字のワイルドカードを表す。
登録装置2000は、秘密鍵を用いて数値「77」と数値「87」とを暗号化し(ステップ(1))、暗号化データを生成する。そして、登録装置2000は、保管要求として、暗号化データをサーバ装置3000に送信する(ステップ(2))。
なお、図2において、鍵のマークが付された数値は、数値が暗号化されていることを表す。
例えば、数値の暗号化の例として、数値「77」の暗号文を{H2(H1(K,77),R1),R1,H2(H1(K,7?),R2),R2}と表し、また数値「87」の暗号文を{H2(H1(K,87),R3),R3,H2(H1(K,8?),R4),R4}と表す。ただし、H1とH2はAES等の共通鍵暗号方式またはSHA256等のハッシュ関数、Kは秘密鍵、R1,R2,R3,R4は乱数、「?」は1文字のワイルドカードを表す。
サーバ装置3000は、暗号化データを受信し、受信した暗号化データを記憶装置に保管する。
図2では、検索装置1000が検索対象数値範囲である「81-199」に含まれる数値を検索する。検索対象数値範囲は、前述の通り、検索対象の数値範囲である。
検索装置1000は、秘密鍵を用いて検索対象数値範囲である「81-199」を暗号化し(ステップ(3))、暗号化された検索対象数値範囲(「81-199」)が含まれる検索クエリを生成する。
例えば、検索対象数値範囲の暗号化の例として、検索対象数値範囲「81-199」の暗号文を{H1(K,81),…,H1(K,89),H1(K,9?),H1(K,1??)}と表す。
なお、検索装置1000と登録装置2000は、共通鍵方式の秘密鍵を共有している。前述の例では、この秘密鍵は秘密鍵Kに相当する。
検索装置1000は、検索要求として、検索クエリをサーバ装置3000に送信する(ステップ(4))。
検索装置1000は、秘密鍵を用いて検索対象数値範囲である「81-199」を暗号化し(ステップ(3))、暗号化された検索対象数値範囲(「81-199」)が含まれる検索クエリを生成する。
例えば、検索対象数値範囲の暗号化の例として、検索対象数値範囲「81-199」の暗号文を{H1(K,81),…,H1(K,89),H1(K,9?),H1(K,1??)}と表す。
なお、検索装置1000と登録装置2000は、共通鍵方式の秘密鍵を共有している。前述の例では、この秘密鍵は秘密鍵Kに相当する。
検索装置1000は、検索要求として、検索クエリをサーバ装置3000に送信する(ステップ(4))。
サーバ装置3000は、検索クエリを受信する。
そして、サーバ装置3000は、検索クエリと記憶装置で保管されている暗号化データとを比較する。
図2の例では、数値「87」が検索対象数値範囲(「81-199」)に含まれるため、サーバ装置3000は、数値「87」を暗号化された状態のまま抽出する(ステップ(5))。
例えば、暗号化されたデータの比較の例として、サーバ装置3000に保管された数値「77」の暗号文である{H2(H1(K,77),R1),R1,H2(H1(K,7?),R2),R2}と、検索装置1000から受信した検索対象数値範囲「81-199」の暗号文(すなわち、検索クエリ)である{H1(K,81),…,H1(K,89),H1(K,9?),H1(K,1??)}を比較するときは、数値「77」の暗号化に含まれている乱数R1とR2を用いて、検索対象比較数値に含まれる各暗号化データに対して、H2(H1(K,81),R1),H2(H1(K,81),R2),…,H2(H1(K,1??),R1),H2(H1(K,1??),R2)と演算を行う。もし、この演算されたデータのいずれかが、数値「77」の暗号文に存在するいずれかの暗号化データと値が一致した場合は、数値「77」は検索対象数値範囲「81-199」に含まれると判定する。本例では、この演算されたデータは数値「77」の暗号文に存在しないため、含まれないと判定される。一方で、同様に数値「87」と判定処理を行うと、数値「87」は検索対象数値範囲「81-199」に含まれると判定される。これは、演算されたデータとしてH2(H1(K,87),R3)が現れ、その値が数値「87」の暗号文に存在するためである。
次に、サーバ装置3000は、検索応答として、抽出結果である数値「87」を暗号化された状態のまま検索装置1000に送信する。
そして、サーバ装置3000は、検索クエリと記憶装置で保管されている暗号化データとを比較する。
図2の例では、数値「87」が検索対象数値範囲(「81-199」)に含まれるため、サーバ装置3000は、数値「87」を暗号化された状態のまま抽出する(ステップ(5))。
例えば、暗号化されたデータの比較の例として、サーバ装置3000に保管された数値「77」の暗号文である{H2(H1(K,77),R1),R1,H2(H1(K,7?),R2),R2}と、検索装置1000から受信した検索対象数値範囲「81-199」の暗号文(すなわち、検索クエリ)である{H1(K,81),…,H1(K,89),H1(K,9?),H1(K,1??)}を比較するときは、数値「77」の暗号化に含まれている乱数R1とR2を用いて、検索対象比較数値に含まれる各暗号化データに対して、H2(H1(K,81),R1),H2(H1(K,81),R2),…,H2(H1(K,1??),R1),H2(H1(K,1??),R2)と演算を行う。もし、この演算されたデータのいずれかが、数値「77」の暗号文に存在するいずれかの暗号化データと値が一致した場合は、数値「77」は検索対象数値範囲「81-199」に含まれると判定する。本例では、この演算されたデータは数値「77」の暗号文に存在しないため、含まれないと判定される。一方で、同様に数値「87」と判定処理を行うと、数値「87」は検索対象数値範囲「81-199」に含まれると判定される。これは、演算されたデータとしてH2(H1(K,87),R3)が現れ、その値が数値「87」の暗号文に存在するためである。
次に、サーバ装置3000は、検索応答として、抽出結果である数値「87」を暗号化された状態のまま検索装置1000に送信する。
検索装置1000は、抽出結果を受信する。そして、検索装置1000は、秘密鍵を用いて抽出結果を復号し(ステップ(7))、平文である数値「87」を取得する。
図3は、検索対象数値範囲(「81-199」)に対応した検索クエリの例を示す。
検索対象数値範囲(「81-199」)に対応した検索クエリには、11個の数値が含まれる。なお、図3において、「?」は1文字のワイルドカードを表す。
検索対象数値範囲(「81-199」)に対応した検索クエリには、11個の数値が含まれる。なお、図3において、「?」は1文字のワイルドカードを表す。
***本実施の形態に係る検索システムの概要***
次に、図4及び図5を参照して、本実施の形態に係る検索システム500における数値の検索手順を説明する。
なお、登録装置200による数値の登録手順は、図2に示したものと同じであるため、登録手順の図示及び説明を省略する。
なお、図4の例でも、鍵のマークが付された数値は、数値が暗号化されていることを表す。
また、図4の例でも、検索対象数値範囲は「81-199」である。
また、図4の例では、サーバ装置300で保管されている数値の範囲が「50-299」であるとする。つまり、本実施の形態では、数値が取り得る最小値(「50」)と最大値(「299」)とが定義されているものとする。
次に、図4及び図5を参照して、本実施の形態に係る検索システム500における数値の検索手順を説明する。
なお、登録装置200による数値の登録手順は、図2に示したものと同じであるため、登録手順の図示及び説明を省略する。
なお、図4の例でも、鍵のマークが付された数値は、数値が暗号化されていることを表す。
また、図4の例でも、検索対象数値範囲は「81-199」である。
また、図4の例では、サーバ装置300で保管されている数値の範囲が「50-299」であるとする。つまり、本実施の形態では、数値が取り得る最小値(「50」)と最大値(「299」)とが定義されているものとする。
検索装置100は、検索対象数値範囲から第1の検索条件と、第2の検索条件とを生成する。
第1の検索条件は、検索対象数値範囲に含まれる数値を検索するための検索条件である。第2の検索条件は、検索対象数値範囲に含まれない数値を検索するための検索条件である。
検索対象数値範囲「81-199」の場合は、第1の検索条件は「81-199」である。
第2の検索条件は、最小値と最大値との範囲である「50-299」から検索対象数値範囲である「81-199」を除外して得られる範囲に含まれる数値を検索するための検索条件である。具体的には、第2の検索条件は、「50-80」及び「200-299」である。
第1の検索条件は、検索対象数値範囲に含まれる数値を検索するための検索条件である。第2の検索条件は、検索対象数値範囲に含まれない数値を検索するための検索条件である。
検索対象数値範囲「81-199」の場合は、第1の検索条件は「81-199」である。
第2の検索条件は、最小値と最大値との範囲である「50-299」から検索対象数値範囲である「81-199」を除外して得られる範囲に含まれる数値を検索するための検索条件である。具体的には、第2の検索条件は、「50-80」及び「200-299」である。
検索装置100は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。
そして、検索装置100は、数値の個数が少ない検索条件を選択する。
図5は、図4の第1の検索条件に含まれる数値と第2の検索条件に含まれる数値を示す。
第1の検索条件に含まれる数値は、図3に示す数値と同じであり、11個の数値が含まれる。
第2の検索条件に含まれる数値は、5個である。
このため、図4の例では、検索装置100は、数値の個数が少ない第2の検索条件を選択する。そして、検索装置100は、選択した第2の検索条件を用いて検索クエリを生成する。
なお、第1の検索条件の数値の個数と第2の検索条件の数値の個数が同じであれば、検索装置100は、どちらの検索条件を選択してもよい。
そして、検索装置100は、数値の個数が少ない検索条件を選択する。
図5は、図4の第1の検索条件に含まれる数値と第2の検索条件に含まれる数値を示す。
第1の検索条件に含まれる数値は、図3に示す数値と同じであり、11個の数値が含まれる。
第2の検索条件に含まれる数値は、5個である。
このため、図4の例では、検索装置100は、数値の個数が少ない第2の検索条件を選択する。そして、検索装置100は、選択した第2の検索条件を用いて検索クエリを生成する。
なお、第1の検索条件の数値の個数と第2の検索条件の数値の個数が同じであれば、検索装置100は、どちらの検索条件を選択してもよい。
そして、検索装置100は、第2の検索条件(「50-80」及び「200-299」)を暗号化して検索クエリを生成する(図4のステップ(3))。なお、検索装置100は、第2の検索条件を用いて検索クエリを生成する場合は、逆抽出指示を検索クエリに含ませる。逆抽出指示は、第2の検索条件に合致しない数値を抽出するようサーバ装置300に指示する通知である。検索クエリの生成手順は、逆抽出指示を含ませること以外は図2に示すものと同じである。
そして、検索装置100は、検索要求として、検索クエリをサーバ装置300に送信する(ステップ(4))。
そして、検索装置100は、検索要求として、検索クエリをサーバ装置300に送信する(ステップ(4))。
サーバ装置300は、検索クエリを受信する。
本実施の形態では、サーバ装置300は、受信した検索クエリに逆抽出指示が含まれているか否かを判定する。
検索クエリに逆抽出指示が含まれていない場合は、サーバ装置300は、図2のサーバ装置3000と同様に、検索クエリに含まれる検索条件(検索対象数値範囲)に合致する数値を抽出する。
一方、検索クエリに逆抽出指示が含まれている場合は、検索クエリに含まれる検索条件に合致しない数値を抽出する。
図4の例では、検索クエリには逆抽出指示が含まれているため、サーバ装置300は、検索クエリに含まれる第2の検索条件(「50-80」及び「200-299」)に合致しない数値を抽出する。具体的には、サーバ装置300は、「50-80」の範囲外であり、「200-299」の範囲外である数値「87」を暗号化された状態のまま抽出する(ステップ(5))。なお、数値「77」は、第2の検索条件である「50-80」の範囲内にあるため、サーバ装置300は数値「77」は抽出しない。
次に、サーバ装置300は、検索応答として、抽出結果である数値「87」を暗号化された状態のまま検索装置100に送信する。
以降の処理は、図2に示すものと同じであるため説明を省略する。
本実施の形態では、サーバ装置300は、受信した検索クエリに逆抽出指示が含まれているか否かを判定する。
検索クエリに逆抽出指示が含まれていない場合は、サーバ装置300は、図2のサーバ装置3000と同様に、検索クエリに含まれる検索条件(検索対象数値範囲)に合致する数値を抽出する。
一方、検索クエリに逆抽出指示が含まれている場合は、検索クエリに含まれる検索条件に合致しない数値を抽出する。
図4の例では、検索クエリには逆抽出指示が含まれているため、サーバ装置300は、検索クエリに含まれる第2の検索条件(「50-80」及び「200-299」)に合致しない数値を抽出する。具体的には、サーバ装置300は、「50-80」の範囲外であり、「200-299」の範囲外である数値「87」を暗号化された状態のまま抽出する(ステップ(5))。なお、数値「77」は、第2の検索条件である「50-80」の範囲内にあるため、サーバ装置300は数値「77」は抽出しない。
次に、サーバ装置300は、検索応答として、抽出結果である数値「87」を暗号化された状態のまま検索装置100に送信する。
以降の処理は、図2に示すものと同じであるため説明を省略する。
***本実施の形態に係る構成***
図6は、本実施の形態に係る検索装置100のハードウェア構成例を示す。
検索装置100は、ハードウェアとして、プロセッサ151、主記憶装置152、補助記憶装置153及び通信装置154を備える。
また、検索装置100は、機能構成として、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106を備える。
補助記憶装置153には、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置153から主記憶装置152にロードされる。そして、プロセッサ151がこれらプログラムを実行して、後述する数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の動作を行う。
図6では、プロセッサ151が数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムを実行している状態を模式的に表している。
図6は、本実施の形態に係る検索装置100のハードウェア構成例を示す。
検索装置100は、ハードウェアとして、プロセッサ151、主記憶装置152、補助記憶装置153及び通信装置154を備える。
また、検索装置100は、機能構成として、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106を備える。
補助記憶装置153には、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置153から主記憶装置152にロードされる。そして、プロセッサ151がこれらプログラムを実行して、後述する数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の動作を行う。
図6では、プロセッサ151が数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムを実行している状態を模式的に表している。
図7は、本実施の形態に係る検索装置100の機能構成例を示す。
検索装置100は、機能構成として、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106を備える。
なお、図7では、説明の簡明化のため、検索クエリの生成及び検索クエリの送信に関係する要素のみを示している。つまり、検索装置100は、抽出結果を受信する要素及び抽出結果を復号する要素も備えるが、図7では、説明の簡明化のため、これらの要素の図示は省略している。
検索装置100は、機能構成として、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106を備える。
なお、図7では、説明の簡明化のため、検索クエリの生成及び検索クエリの送信に関係する要素のみを示している。つまり、検索装置100は、抽出結果を受信する要素及び抽出結果を復号する要素も備えるが、図7では、説明の簡明化のため、これらの要素の図示は省略している。
数値範囲取得部101は、検索対象数値範囲を取得する。
数値範囲取得部101は、例えば、検索装置100のユーザにより指定された検索対象数値範囲を取得する。
数値範囲取得部101は、取得した検索対象数値範囲を第1の検索条件生成部102と第2の検索条件生成部103に出力する。
数値範囲取得部101は、例えば、検索装置100のユーザにより指定された検索対象数値範囲を取得する。
数値範囲取得部101は、取得した検索対象数値範囲を第1の検索条件生成部102と第2の検索条件生成部103に出力する。
第1の検索条件生成部102は、数値範囲取得部101から検索対象数値範囲を取得し、第1の検索条件を生成する。
なお、第1の検索条件生成部102により行われる処理は、第1の検索条件生成処理に相当する。
なお、第1の検索条件生成部102により行われる処理は、第1の検索条件生成処理に相当する。
第2の検索条件生成部103は、数値範囲取得部101から検索対象数値範囲を取得し、第2の検索条件を生成する。
なお、第2の検索条件生成部103により行われる処理は、第2の検索条件生成処理に相当する。
なお、第2の検索条件生成部103により行われる処理は、第2の検索条件生成処理に相当する。
比較部104は、第1の検索条件生成部102から第1の検索条件を取得し、第2の検索条件生成部103から第2の検索条件を取得する。
また、比較部104は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。
そして、比較部104は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を選択し、選択した検索条件を検索クエリ生成部105に出力する。また、比較部104は、第2の検索条件を選択した場合は、第2の検索条件を選択した旨を通知する選択通知を第2の検索条件とともに検索クエリ生成部105に出力する。
比較部104により行われる処理は、比較処理に相当する。
また、比較部104は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。
そして、比較部104は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を選択し、選択した検索条件を検索クエリ生成部105に出力する。また、比較部104は、第2の検索条件を選択した場合は、第2の検索条件を選択した旨を通知する選択通知を第2の検索条件とともに検索クエリ生成部105に出力する。
比較部104により行われる処理は、比較処理に相当する。
検索クエリ生成部105は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する。
つまり、検索クエリ生成部105は、比較部104から出力された検索条件を用いて検索クエリを生成する。
検索クエリ生成部105は、図2及び図4を用いて説明したように、検索条件を秘密鍵で暗号化して検索クエリを生成する。また、比較部104から選択通知が出力された場合は、検索クエリ生成部105は、検索クエリに逆抽出指示を含ませる。逆抽出指示は、前述したように、第2の検索条件に合致しない数値を抽出するようサーバ装置300に指示する通知である。
つまり、検索クエリ生成部105は、比較部104から出力された検索条件を用いて検索クエリを生成する。
検索クエリ生成部105は、図2及び図4を用いて説明したように、検索条件を秘密鍵で暗号化して検索クエリを生成する。また、比較部104から選択通知が出力された場合は、検索クエリ生成部105は、検索クエリに逆抽出指示を含ませる。逆抽出指示は、前述したように、第2の検索条件に合致しない数値を抽出するようサーバ装置300に指示する通知である。
送信部106は、検索クエリ生成部105により生成された検索クエリをサーバ装置300に送信する。
図8は、本実施の形態に係るサーバ装置300のハードウェア構成例を示す。
サーバ装置300は、ハードウェアとして、プロセッサ351、主記憶装置352、補助記憶装置353及び通信装置354を備える。
また、サーバ装置300は、機能構成として、受信部301、検索部302及び送信部303を備える。
補助記憶装置353には、受信部301、検索部302及び送信部303の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置353から主記憶装置352にロードされる。そして、プロセッサ351がこれらプログラムを実行して、後述する受信部301、検索部302及び送信部303の動作を行う。
図8では、プロセッサ351が受信部301、検索部302及び送信部303の機能を実現するプログラムを実行している状態を模式的に表している。
また、補助記憶装置353には、登録装置200から送信された暗号化された数値が格納される。
サーバ装置300は、ハードウェアとして、プロセッサ351、主記憶装置352、補助記憶装置353及び通信装置354を備える。
また、サーバ装置300は、機能構成として、受信部301、検索部302及び送信部303を備える。
補助記憶装置353には、受信部301、検索部302及び送信部303の機能を実現するプログラムが記憶されている。
これらプログラムは、補助記憶装置353から主記憶装置352にロードされる。そして、プロセッサ351がこれらプログラムを実行して、後述する受信部301、検索部302及び送信部303の動作を行う。
図8では、プロセッサ351が受信部301、検索部302及び送信部303の機能を実現するプログラムを実行している状態を模式的に表している。
また、補助記憶装置353には、登録装置200から送信された暗号化された数値が格納される。
図9は、本実施の形態に係るサーバ装置300の機能構成例を示す。
サーバ装置300は、機能構成として、受信部301、検索部302及び送信部303を備える。
なお、図9では、説明の簡明化のため、検索クエリの受信、検索、抽出結果の送信に関係する要素のみを示している。つまり、サーバ装置300は、登録装置200から保管要求を受信する要素、保管要求に含まれる数値を記憶領域に格納する要素も備えるが、図9では、説明の簡明化のため、これらの要素の図示は省略している。
サーバ装置300は、機能構成として、受信部301、検索部302及び送信部303を備える。
なお、図9では、説明の簡明化のため、検索クエリの受信、検索、抽出結果の送信に関係する要素のみを示している。つまり、サーバ装置300は、登録装置200から保管要求を受信する要素、保管要求に含まれる数値を記憶領域に格納する要素も備えるが、図9では、説明の簡明化のため、これらの要素の図示は省略している。
受信部301は、検索装置100から検索要求として送信された検索クエリを受信する。
受信部301は、受信した検索クエリを検索部302に出力する。
受信部301により行われる処理は、受信処理に相当する。
受信部301は、受信した検索クエリを検索部302に出力する。
受信部301により行われる処理は、受信処理に相当する。
検索部302は、受信部301から取得した検索クエリに逆抽出指示が含まれているか否かを判定する。
検索クエリに逆抽出指示が含まれていない場合は、検索部302は、検索クエリに含まれる第1の検索条件に合致する数値を補助記憶装置353から抽出する。
一方、検索クエリに逆抽出指示が含まれている場合は、検索部302は、検索クエリに含まれる第2の検索条件に合致しない数値を補助記憶装置353から抽出する。
検索部302により行われる処理は、検索処理に相当する。
検索クエリに逆抽出指示が含まれていない場合は、検索部302は、検索クエリに含まれる第1の検索条件に合致する数値を補助記憶装置353から抽出する。
一方、検索クエリに逆抽出指示が含まれている場合は、検索部302は、検索クエリに含まれる第2の検索条件に合致しない数値を補助記憶装置353から抽出する。
検索部302により行われる処理は、検索処理に相当する。
送信部303は、検索部302により抽出された数値を検索応答として検索装置100に送信する。
***本実施の形態に係る動作***
次に、図10を参照して、本実施の形態に係る検索装置100の動作例を説明する。
次に、図10を参照して、本実施の形態に係る検索装置100の動作例を説明する。
先ず、ステップS11において、数値範囲取得部101が検索対象数値範囲を取得する。
また、数値範囲取得部101は、取得した検索対象数値範囲を第1の検索条件生成部102と第2の検索条件生成部103に出力する。
また、数値範囲取得部101は、取得した検索対象数値範囲を第1の検索条件生成部102と第2の検索条件生成部103に出力する。
次に、ステップS12において、第1の検索条件生成部102が第1の検索条件を生成する。
また、ステップS13において、第2の検索条件生成部103が第2の検索条件を生成する。
図10では、第1の検索条件の生成後に第2の検索条件が生成されることになっているが、第1の検索条件の生成と第2の検索条件の生成とが並行に行われてもよい。また、第2の検索条件の生成後に第1の検索条件が生成されてもよい。
第1の検索条件生成部102は、生成した第1の検索条件を比較部104に出力する。また、第2の検索条件生成部103は、生成した第2の検索条件を比較部104に出力する。
また、ステップS13において、第2の検索条件生成部103が第2の検索条件を生成する。
図10では、第1の検索条件の生成後に第2の検索条件が生成されることになっているが、第1の検索条件の生成と第2の検索条件の生成とが並行に行われてもよい。また、第2の検索条件の生成後に第1の検索条件が生成されてもよい。
第1の検索条件生成部102は、生成した第1の検索条件を比較部104に出力する。また、第2の検索条件生成部103は、生成した第2の検索条件を比較部104に出力する。
次に、ステップS14において、比較部104は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。
次に、ステップS15において、比較部104は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を選択し、選択した検索条件を検索クエリ生成部105に出力する。また、比較部104は、第2の検索条件を選択した場合は、第2の検索条件を選択した旨を通知する選択通知を第2の検索条件とともに検索クエリ生成部105に出力する。
次に、ステップS15において、比較部104は、第1の検索条件と第2の検索条件のうち、数値の個数が少ない検索条件を選択し、選択した検索条件を検索クエリ生成部105に出力する。また、比較部104は、第2の検索条件を選択した場合は、第2の検索条件を選択した旨を通知する選択通知を第2の検索条件とともに検索クエリ生成部105に出力する。
次に、ステップS16において、検索クエリ生成部105が、比較部104から出力された検索条件を用いて検索クエリを生成する。
検索クエリ生成部105は、検索条件を秘密鍵で暗号化して検索クエリを生成する。また、比較部104から選択通知が出力された場合は、検索クエリ生成部105は、検索クエリに逆抽出指示を含ませる。逆抽出指示は暗号化されない。
検索クエリ生成部105は、検索条件を秘密鍵で暗号化して検索クエリを生成する。また、比較部104から選択通知が出力された場合は、検索クエリ生成部105は、検索クエリに逆抽出指示を含ませる。逆抽出指示は暗号化されない。
次に、ステップS17において、送信部106が、検索クエリ生成部105により生成された検索クエリをサーバ装置300に送信する。
次に、図11を参照して、本実施の形態に係るサーバ装置300の動作例を説明する。
先ず、ステップS31において、受信部301が検索クエリを受信する。
また、受信部301は、受信した検索クエリを検索部302に出力する。
また、受信部301は、受信した検索クエリを検索部302に出力する。
ステップS32において、検索部302は、検索クエリに逆抽出指示が含まれるか否かを判定する。
検索クエリに逆抽出指示が含まれる場合(ステップS32でYES)は、処理がステップS33に進む。
一方、検索クエリに逆抽出指示が含まれない場合(ステップS32でNO)は、処理がステップS34に進む。
検索クエリに逆抽出指示が含まれる場合(ステップS32でYES)は、処理がステップS33に進む。
一方、検索クエリに逆抽出指示が含まれない場合(ステップS32でNO)は、処理がステップS34に進む。
ステップS33では、検索部302は、検索クエリに含まれる検索条件(第2の検索条件)に合致しない数値を補助記憶装置353から抽出する。
一方、ステップS34では、検索部302は、検索クエリに含まれる検索条件(第1の検索条件)に合致する数値を補助記憶装置353から抽出する。
次に、ステップS35では、検索部302は、ステップS33又はステップS34で抽出された数値が含まれる検索応答を生成する。
そして、ステップS36において、送信部303が、検索応答を検索装置100に送信する。
***実施の形態に係る効果***
このように、本実施の形態では、検索装置100は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。そして、検索装置100は、数値の個数が少ない検索条件を選択し、選択した検索条件を用いて検索クエリを生成する。
このため、本実施の形態によれば、検索クエリのサイズを抑制することができる。
従って、本実施の形態によれば、検索クエリの生成に要する計算機資源及び時間を削減することができる。また、本実施の形態によれば、検索クエリの送信に要する通信帯域を削減することができる。また、本実施の形態によれば、サーバ装置での検索に要する計算機資源及び時間を削減することができる。
このように、本実施の形態では、検索装置100は、第1の検索条件に含まれる数値の個数と第2の検索条件に含まれる数値の個数とを比較する。そして、検索装置100は、数値の個数が少ない検索条件を選択し、選択した検索条件を用いて検索クエリを生成する。
このため、本実施の形態によれば、検索クエリのサイズを抑制することができる。
従って、本実施の形態によれば、検索クエリの生成に要する計算機資源及び時間を削減することができる。また、本実施の形態によれば、検索クエリの送信に要する通信帯域を削減することができる。また、本実施の形態によれば、サーバ装置での検索に要する計算機資源及び時間を削減することができる。
なお、実施の形態1では、秘匿検索に対応した検索システムにおいて検索クエリのサイズを抑制する例を説明した。
しかしながら、実施の形態1で説明した手順を、秘匿検索に対応していない検索システムでの検索クエリのサイズの抑制に適用してもよい。
しかしながら、実施の形態1で説明した手順を、秘匿検索に対応していない検索システムでの検索クエリのサイズの抑制に適用してもよい。
***ハードウェア構成の補足説明***
最後に、検索装置100及びサーバ装置300のハードウェア構成の補足説明を行う。
最後に、検索装置100及びサーバ装置300のハードウェア構成の補足説明を行う。
図6に示すプロセッサ151及び図8に示すプロセッサ351は、それぞれ、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ151及びプロセッサ351は、それぞれ、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図6に示す主記憶装置152及び図8に示す主記憶装置352は、それぞれ、RAM(Random Access Memory)である。
図6に示す補助記憶装置153及び図8に示す補助記憶装置353は、それぞれ、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図6に示す通信装置154及び図8に示す通信装置354は、それぞれ、データの通信処理を実行する電子回路である。
通信装置154及び通信装置354は、それぞれ、例えば、通信チップ又はNIC(Network Interface Card)である。
プロセッサ151及びプロセッサ351は、それぞれ、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図6に示す主記憶装置152及び図8に示す主記憶装置352は、それぞれ、RAM(Random Access Memory)である。
図6に示す補助記憶装置153及び図8に示す補助記憶装置353は、それぞれ、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図6に示す通信装置154及び図8に示す通信装置354は、それぞれ、データの通信処理を実行する電子回路である。
通信装置154及び通信装置354は、それぞれ、例えば、通信チップ又はNIC(Network Interface Card)である。
また、補助記憶装置153及び補助記憶装置353のそれぞれには、OS(Operating System)も記憶されている。
そして、検索装置100では、OSの少なくとも一部がプロセッサ151により実行される。また、サーバ装置300では、OSの少なくとも一部がプロセッサ351により実行される。
プロセッサ151はOSの少なくとも一部を実行しながら、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムを実行する。
プロセッサ151がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
同様に、プロセッサ351はOSの少なくとも一部を実行しながら、受信部301、検索部302及び送信部303の機能を実現するプログラムを実行する。
プロセッサ351がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
そして、検索装置100では、OSの少なくとも一部がプロセッサ151により実行される。また、サーバ装置300では、OSの少なくとも一部がプロセッサ351により実行される。
プロセッサ151はOSの少なくとも一部を実行しながら、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムを実行する。
プロセッサ151がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
同様に、プロセッサ351はOSの少なくとも一部を実行しながら、受信部301、検索部302及び送信部303の機能を実現するプログラムを実行する。
プロセッサ351がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置152、補助記憶装置153、プロセッサ151内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
また、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
同様に、受信部301、検索部302及び送信部303の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置352、補助記憶装置353、プロセッサ351内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、受信部301、検索部302及び送信部303の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、受信部301、検索部302及び送信部303の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
また、受信部301、検索部302及び送信部303の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、受信部301、検索部302及び送信部303の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
また、数値範囲取得部101、第1の検索条件生成部102、第2の検索条件生成部103、比較部104、検索クエリ生成部105及び送信部106の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、受信部301、検索部302及び送信部303の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、受信部301、検索部302及び送信部303の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、検索装置100及びサーバ装置300は、それぞれ、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
100 検索装置、101 数値範囲取得部、102 第1の検索条件生成部、103 第2の検索条件生成部、104 比較部、105 検索クエリ生成部、106 送信部、151 プロセッサ、152 主記憶装置、153 補助記憶装置、154 通信装置、200 登録装置、300 サーバ装置、301 受信部、302 検索部、303 送信部、351 プロセッサ、352 主記憶装置、353 補助記憶装置、354 通信装置、400 ネットワーク、500 検索システム、1000 検索装置、2000 登録装置、3000 サーバ装置、5000 検索システム。
Claims (10)
- 検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成する第1の検索条件生成部と、
前記検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成する第2の検索条件生成部と、
前記第1の検索条件に含まれる数値の個数と前記第2の検索条件に含まれる数値の個数とを比較する比較部と、
前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する検索クエリ生成部と、
前記検索クエリ生成部により生成された前記検索クエリを送信先に送信する送信部とを有する検索装置。 - 前記検索クエリ生成部は、
検索クエリの生成に前記第2の検索条件を用いる場合は、前記第2の検索条件に合致しない数値を抽出するよう指示する逆抽出指示が含まれる検索クエリを生成する請求項1に記載の検索装置。 - 前記第2の検索条件生成部は、
数値が取り得る最小値から最大値までの範囲から前記検索対象数値範囲を除外して得られる範囲に含まれる数値を検索するための検索条件を前記第2の検索条件として生成する請求項1に記載の検索装置。 - 前記検索クエリ生成部は、
前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を暗号化して前記検索クエリを生成する請求項1に記載の検索装置。 - 数値を検索するための検索条件が含まれる検索クエリを受信する受信部と、
前記検索クエリに、前記検索条件に合致しない数値を抽出するよう指示する逆抽出指示が含まれているか否かを判定し、前記検索クエリに前記逆抽出指示が含まれている場合に、前記検索条件に合致しない数値を抽出する検索部とを有するサーバ装置。 - 前記検索部は、
抽出した、前記検索条件に合致しない数値が含まれる検索応答を生成し、
前記サーバ装置は、更に、
前記検索応答を前記検索条件の送信元に送信する送信部を有する請求項5に記載のサーバ装置。 - コンピュータが、検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成し、
前記コンピュータが、前記検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成し、
前記コンピュータが、前記第1の検索条件に含まれる数値の個数と前記第2の検索条件に含まれる数値の個数とを比較し、
前記コンピュータが、前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成し、
前記コンピュータが、生成された前記検索クエリを送信先に送信する検索方法。 - コンピュータが、数値を検索するための検索条件が含まれる検索クエリを受信し、
前記コンピュータが、前記検索クエリに、前記検索条件に合致しない数値を抽出するよう指示する逆抽出指示が含まれているか否かを判定し、前記検索クエリに前記逆抽出指示が含まれている場合に、前記検索条件に合致しない数値を抽出する情報処理方法。 - 検索対象の数値範囲である検索対象数値範囲に含まれる数値を検索するための、1つ以上の数値が含まれる検索条件である第1の検索条件を生成する第1の検索条件生成処理と、
前記検索対象数値範囲に含まれない数値を検索するための、1つ以上の数値が含まれる検索条件である第2の検索条件を生成する第2の検索条件生成処理と、
前記第1の検索条件に含まれる数値の個数と前記第2の検索条件に含まれる数値の個数とを比較する比較処理と、
前記第1の検索条件と前記第2の検索条件のうち、数値の個数が少ない検索条件を用いて検索クエリを生成する検索クエリ生成処理と、
前記検索クエリ生成処理により生成された前記検索クエリを送信先に送信する送信処理とをコンピュータに実行させる検索プログラム。 - 数値を検索するための検索条件が含まれる検索クエリを受信する受信処理と、
前記検索クエリに、前記検索条件に合致しない数値を抽出するよう指示する逆抽出指示が含まれているか否かを判定し、前記検索クエリに前記逆抽出指示が含まれている場合に、前記検索条件に合致しない数値を抽出する検索処理とをコンピュータに実行させる情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/022108 WO2020245898A1 (ja) | 2019-06-04 | 2019-06-04 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/022108 WO2020245898A1 (ja) | 2019-06-04 | 2019-06-04 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020245898A1 true WO2020245898A1 (ja) | 2020-12-10 |
Family
ID=73651953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/022108 WO2020245898A1 (ja) | 2019-06-04 | 2019-06-04 | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020245898A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015063905A1 (ja) * | 2013-10-31 | 2015-05-07 | 株式会社日立製作所 | データ分析システム |
JP2018097625A (ja) * | 2016-12-14 | 2018-06-21 | 株式会社日立製作所 | データベースシステム、暗号化データの検索方法及びコンピュータプログラム |
-
2019
- 2019-06-04 WO PCT/JP2019/022108 patent/WO2020245898A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015063905A1 (ja) * | 2013-10-31 | 2015-05-07 | 株式会社日立製作所 | データ分析システム |
JP2018097625A (ja) * | 2016-12-14 | 2018-06-21 | 株式会社日立製作所 | データベースシステム、暗号化データの検索方法及びコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687681B2 (en) | Multi-tenant cryptographic memory isolation | |
US10235539B2 (en) | Server device, recording medium, and concealed search system | |
US10872158B2 (en) | Secret search system, secret search method, and computer readable medium | |
US20150358302A1 (en) | Apparatus and method for secure transmission avoiding duplicate data | |
JP6632780B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JP6362811B1 (ja) | 登録端末、鍵サーバ、検索システム、登録プログラム | |
US20190260583A1 (en) | Encryption device, search device, computer readable medium, encryption method, and search method | |
US11106740B2 (en) | Search device, search system, search method, and computer readable medium | |
WO2020245898A1 (ja) | 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム | |
JP6462968B1 (ja) | データ管理装置、データ管理方法及びデータ管理プログラム | |
JP5337076B2 (ja) | 秘密計算システム、秘密計算方法、不正使用防止方法 | |
US11887508B2 (en) | Information processing apparatus and information processing method | |
US10936757B2 (en) | Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium | |
US20240256695A1 (en) | Secret search system, secret search method, and non-transitory computer readable medium | |
WO2017221308A1 (ja) | データ管理装置、データ管理方法、データ管理プログラム、検索装置、検索方法及び検索プログラム | |
US10769144B2 (en) | Database search system, database search method, and non-transitory recording medium | |
WO2023112176A1 (ja) | 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム | |
CN117413489A (zh) | 加密标签生成装置、隐匿检索系统、加密标签生成方法和加密标签生成程序 | |
JP2024021523A (ja) | ソフトウェア情報管理装置、ソフトウェア情報管理方法 | |
US9086999B2 (en) | Data encryption management | |
KR20170022451A (ko) | 데이터 저장장치 및 데이터 저장장치의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19932041 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19932041 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |