Confidential search system, registration device, search operation device, confidential search method, registration method, search operation method, registration program, and search operation program
Patent Information
- Application Number
- JP2026531467
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2024-07-02
- Filing Date
- 2024-10-15
- Publication Date
- 2026-09-30
- Estimated Expiration
- 2044-10-15
AI Technical Summary
【0016】 本開示によれば、検索範囲に含まれて長さが共通する2つ以上の検索キーワードが検索キーワードの長さを表現する集約符号で代替される。そのため、秘匿検索において検索範囲の検索キーワードの個数が削減される。
Smart Images

Figure 0007927210000001 
Figure 0007927210000002 
Figure 0007927210000003
Abstract
Description
[[Technical Field]]
[0001] The present disclosure relates to range search in private search technology. [[Background Art]]
[0002] Private search is a technology that enables searching of data while the data remains encrypted.
[0003] The use of low-cost, readily available cloud storage has become commonplace. However, when managing data containing sensitive information on cloud storage, it is necessary to encrypt the data to prevent information leakage. Since private search enables searching encrypted data without decrypting it, it is possible to achieve both security and convenience.
[0004] Private search implements search using two types of encrypted keywords. The first encrypted keyword is a ciphertext of a keyword associated with data (registered keyword). This ciphertext is referred to as an "encrypted tag". The second encrypted keyword is a ciphertext of a keyword to be searched for (search keyword). This ciphertext is referred to as a "search query".
[0005] When registering data, the encrypted data and encrypted tags are registered in the server's storage. At this time, the encrypted tags are stored in the storage in association with the associated data or an identifier of the data. When searching for data, a search query is transmitted to the server in response to a search request. The server identifies an encrypted tag that matches the search query from among the encrypted tags stored in the storage. At this time, the server identifies the encrypted tag matching the search query without knowing the registered keyword and the search keyword. Therefore, information about the data and keywords is not exposed. Finally, the server returns the encrypted data associated with the matching encrypted tag to the searcher.
[0006] Some secure search methods allow for range searches in addition to exact match searches. In an exact match search, a match is determined when the registered keyword and the search keyword are identical. In a range search, a match is determined if the registered keyword is included within the range specified by the searcher.
[0007] Range searches are more convenient than exact match searches because they allow for more ambiguous searches. For example, let's assume that the registered keywords are integers greater than or equal to 0. Let's also assume that "98" and "123" are used as registered keywords, and that the closed interval [99,212] is used as the search keyword range. In this case, in a range search, "123" will be determined to be a match, and "98" will be determined to be a mismatch.
[0008] One naive way to perform a range search is to use all the search keywords included in the range to perform an exact match search. However, this method repeats the exact match search as many times as there are search keywords within the specified range. Therefore, it has a significant impact on search execution time when the range is wide.
[0009] Patent Document 1 discloses a secure search method that reduces the search execution time for range searches. This method introduces a special character "?" which represents a single-digit integer from 0 to 9. This allows multiple search keywords within the search range to be represented by a single search keyword, reducing the number of exact match searches required. The special character "?" introduced using this method is called a "wildcard character."
[0010] To enable wildcard characters in search keywords, you need to expand the registered keywords into a set of strings and add the strings containing wildcard characters to that set. For example, the registered keyword "98" is converted to the set {98,9?} and encrypted. This set has 2 elements. The registered keyword "123" is converted to the set {123,12?,1??} and encrypted. This set has 3 elements. Also, the search range [99,212] is converted to {99,1??,20?,210,211,212} using wildcard characters and encrypted. In this case, the number of search keywords, which is 114 in the naive method, is reduced to 6.
[0011] Thus, although the size of the encryption tag increases, the method described in Patent Document 1 can significantly reduce the size of the search query compared to naive methods. In other words, the method described in Patent Document 1 enables faster range searching.
[0012] However, with the method described in Patent Document 1, the number of search keywords increases as the search range is broadened. For example, the number of search keywords {1??,2??,...,9??} in the search range [100,999] is 9. However, the number of search keywords {1??,...,9??,1???,...,9???} in the search range [100,9999] becomes 18, and the total number of search keywords in the search range [100,999999] becomes 36. Furthermore, an increase in the number of search keywords can slow down search speed. [Prior art documents] [Patent Documents]
[0013] [Patent Document 1] Patent No. 6910477 [Overview of the Initiative] [Problems that the invention aims to solve]
[0014] This disclosure aims to reduce the number of search keywords in the search scope during confidential searches. [Means for solving the problem]
[0015] The private search system of the present disclosure comprises: a registration device that, for each piece of registration data, generates a registered keyword having, as an element, a keyword length code representing the length of a keyword for the registration data, encrypts the registered keyword to generate an encrypted tag, and registers a set of the registration data and the encrypted tag; a search operation device that, for each search keyword group constituted by two or more search keywords included in a search range and having a common length, replaces the search keyword group with an aggregation code representing the length of the search keywords belonging to the search keyword group, generates a search keyword set having, as an element, the aggregation code for each said search keyword group, and encrypts the search keyword set to generate a search query; . Effects of the Invention
[0016] According to the present disclosure, two or more search keywords included in a search range and having a common length are replaced with an aggregation code representing the length of the search keywords. Therefore, the number of search keywords in the search range is reduced in private search. Brief Description of the Drawings
[0017] [Figure 1] A configuration diagram of the private search system 100 according to Embodiment 1. [Figure 2] A configuration diagram of the registration device 200 according to Embodiment 1. [Figure 3] A configuration diagram of the generation unit 220 according to Embodiment 1. [Figure 4] A configuration diagram of the search operation device 300 according to Embodiment 1. [Figure 5] A configuration diagram of the generation unit 320 according to Embodiment 1. [Figure 6] A configuration diagram of the data management device 400 according to Embodiment 1. [Figure 7] A flowchart of the private search method according to Embodiment 1. [Figure 8]Flowchart of step S110 in Embodiment 1. [Figure 9] Flowchart of step S120 in Embodiment 1. [Figure 10] Flowchart of step S130 in Embodiment 1. [Figure 11] Hardware configuration diagram of the registration device 200 in Embodiment 1. [Figure 12] Hardware configuration diagram of the search operation device 300 in Embodiment 1. [Figure 13] Hardware configuration diagram of the data management device 400 in Embodiment 1. [Modes for carrying out the invention]
[0018] In the embodiments and drawings, the same or corresponding elements are denoted by the same reference numeral. The descriptions of elements denoted by the same reference numeral as the described elements are omitted or simplified as appropriate. The arrows in the figures mainly indicate the flow of data or processing.
[0019] Embodiment 1. The confidential search system 100 will be explained based on Figures 1 to 13.
[0020] ***Explanation of the structure*** The configuration of the secure search system 100 will be explained based on Figure 1. The confidential search system 100 comprises a registration device 200, a search operation device 300, and a data management device 400. The registration device 200, the search operation device 300, and the data management device 400 can communicate with each other via the network 101.
[0021] The configuration of the registration device 200 will be explained based on Figure 2. The registration device 200 is a computer equipped with hardware such as a processor 201, memory 202, auxiliary storage device 203, communication device 204, and input / output interface 205. These hardware components are connected to each other via signal lines.
[0022] Processor 201 is the processor of registration device 200. A processor is an integrated circuit (IC) that performs calculations and controls other hardware. For example, processors can be a CPU, DSP, or GPU. IC is an abbreviation for Integrated Circuit. CPU is an abbreviation for Central Processing Unit. DSP is an abbreviation for Digital Signal Processor. GPU is an abbreviation for Graphics Processing Unit.
[0023] Memory 202 is the memory of the registration device 200. Data stored in memory 202 is saved to the auxiliary storage device 203 as needed. Memory is a type of storage device that can be either volatile or non-volatile. It is also called main memory. For example, memory is RAM. RAM is an abbreviation for Random Access Memory.
[0024] The auxiliary storage device 203 is an auxiliary storage device of the registration device 200. Data stored in the auxiliary storage device 203 is loaded into memory 202 as needed. Auxiliary storage devices are non-volatile storage devices. For example, auxiliary storage devices include ROM, HDD, flash memory, or a combination of these. ROM is an abbreviation for Read Only Memory. HDD is an abbreviation for Hard Disk Drive.
[0025] Communication device 204 is the communication device for registration device 200. Communication of registration device 200 is performed using communication device 204. Communication devices include receivers and transmitters. For example, a communication device is a communication chip or NIC. NIC is an abbreviation for Network Interface Card.
[0026] The input / output interface 205 is the input / output interface of the registration device 200. Input and output of the registration device 200 are performed via the input / output interface 205. An input / output interface is a port to which input and output devices are connected. For example, an input / output interface is a USB port, input devices are a keyboard and mouse, and output devices are a display. USB is an abbreviation for Universal Serial Bus.
[0027] The registration device 200 comprises elements such as a reception unit 210, a generation unit 220, and a registration unit 230. These elements are implemented by software.
[0028] The auxiliary storage device 203 stores registration programs that enable the computer to function as a reception unit 210, a generation unit 220, and a registration unit 230. The registration programs are loaded into memory 202 and executed by the processor 201. The auxiliary storage device 203 also stores the operating system. At least a portion of the OS is loaded into memory 202 and executed by the processor 201. Processor 201 runs the registered program while simultaneously running the OS. OS is an abbreviation for Operating System.
[0029] The data for the registered program (input data, output data, etc.) is stored in the storage unit 290. Memory 202 functions as storage unit 290. However, storage devices such as auxiliary storage device 203, registers in the processor 201, and cache memory in the processor 201 may function as storage unit 290 instead of memory 202, or together with memory 202.
[0030] The registration program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disc or flash memory.
[0031] The configuration of the generation unit 220 will be explained based on Figure 3. The generation unit 220 includes a keyword acquisition unit 221, a keyword conversion unit 222, a keyword addition unit 223, an encryption tag generation unit 224, and a random number generation unit 225.
[0032] The configuration of the search operation device 300 will be explained based on Figure 4. The search operation device 300 is a computer equipped with hardware such as a processor 301, memory 302, auxiliary storage device 303, communication device 304, and input / output interface 305. These hardware components are connected to each other via signal lines.
[0033] Processor 301 is the processor of the search operation device 300. Memory 302 is the memory of the search operation device 300. Data stored in memory 302 is saved to the auxiliary storage device 303 as needed. The auxiliary storage device 303 is an auxiliary storage device for the search operation device 300. Data stored in the auxiliary storage device 303 is loaded into memory 302 as needed. Communication device 304 is a communication device for the search operation device 300. Communication of the search operation device 300 is performed using communication device 304. The input / output interface 305 is the input / output interface for the search operation device 300. Input and output of the search operation device 300 are performed via the input / output interface 305.
[0034] The search operation device 300 comprises elements such as a reception unit 310, a generation unit 320, a request unit 330, and an output unit 340. These elements are implemented by software.
[0035] The auxiliary storage device 303 stores a search operation program that allows the computer to function as a reception unit 310, a generation unit 320, a request unit 330, and an output unit 340. The search operation program is loaded into memory 302 and executed by the processor 301. The auxiliary storage device 303 also stores the operating system. At least a portion of the OS is loaded into memory 302 and executed by the processor 301. Processor 301 runs the search operation program while simultaneously running the OS.
[0036] The data for the search operation program (input data, output data, etc.) is stored in the storage unit 390. Memory 302 functions as a storage unit 390. However, storage devices such as auxiliary storage device 303, registers in the processor 301, and cache memory in the processor 301 may function as a storage unit 390 instead of memory 302, or together with memory 302.
[0037] The search operation program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disc or flash memory.
[0038] The configuration of the generation unit 320 will be explained based on Figure 5. The generation unit 320 includes a keyword enumeration unit 321, a keyword aggregation unit 322, and a search query generation unit 323.
[0039] The configuration of the data management device 400 will be explained based on Figure 6. The data management device 400 is a computer equipped with hardware such as a processor 401, memory 402, auxiliary storage device 403, communication device 404, and input / output interface 405. These hardware components are connected to each other via signal lines.
[0040] Processor 401 is the processor of the data management device 400. Memory 402 is the memory of the data management device 400. Data stored in memory 402 is saved to the auxiliary storage device 403 as needed. The auxiliary storage device 403 is an auxiliary storage device of the data management device 400. Data stored in the auxiliary storage device 403 is loaded into memory 402 as needed. Communication device 404 is a communication device for data management device 400. Communication of data management device 400 is performed using communication device 404. The input / output interface 405 is the input / output interface of the data management device 400. Input and output of the data management device 400 are performed via the input / output interface 405.
[0041] The data management device 400 comprises elements such as a reception unit 410, a search unit 420, and an output unit 430. These elements are implemented by software.
[0042] The auxiliary storage device 403 stores data management programs that enable the computer to function as a reception unit 410, a search unit 420, and an output unit 430. The data management programs are loaded into memory 402 and executed by the processor 401. The auxiliary storage device 403 also stores the operating system. At least a portion of the OS is loaded into memory 402 and executed by the processor 401. Processor 401 runs the OS while simultaneously executing the data management program.
[0043] The data for the data management program (input data, output data, etc.) is stored in the storage unit 490. Memory 402 functions as storage unit 490. However, storage devices such as auxiliary storage device 403, registers in the processor 401, and cache memory in the processor 401 may function as storage unit 490 instead of memory 402, or together with memory 402.
[0044] The data management program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disc or flash memory.
[0045] ***Explanation of operation*** The operating procedure of the secure search system 100 corresponds to the secure search method. Furthermore, the operating procedure of the secure search system 100 corresponds to the processing procedure of the secure search program. The operating procedure of the registration device 200 corresponds to the registration method. Furthermore, the operating procedure of the registration device 200 corresponds to the processing procedure of the registration program. The operation procedure of the search operation device 300 corresponds to the search operation method. Furthermore, the operation procedure of the search operation device 300 corresponds to the processing procedure of the search operation program. The operating procedure of the data management device 400 corresponds to the data management method. Furthermore, the operating procedure of the data management device 400 corresponds to the processing procedure of the data management program.
[0046] The confidential search method will be explained based on Figure 7. In step S110, the registration device 200 generates a registration keyword for each piece of registration data using a keyword for the registration data, encrypts the registration keyword to generate an encrypted tag, and registers the pair of registration data and encrypted tag.
[0047] The registered data is data that is registered for and retrieved using confidential search.
[0048] Keywords for registered data consist of a sequence of symbols, each containing one or more symbols. Specifically, a sequence of symbols is a sequence of one or more symbols (for example, numbers) that have a defined order. A concrete example of a symbol sequence is an integer. An integer is a symbol sequence consisting of one or more digits. However, a symbol sequence may be a numerical value other than an integer. Also, a symbol sequence may be a string of one or more characters. Furthermore, a symbol sequence may be a sequence of other symbols (e.g., marks), or a sequence that combines two or more of the following: digits, characters, and other symbols.
[0049] A registered keyword is data that has as its elements a keyword for the registered data, one or more conversion keywords, and a keyword length code. The conversion keyword is a keyword generated by replacing some of the symbols in the symbol sequence that makes up the keyword for the registered data with wildcard symbols. The keyword length code is a code that represents the length of a keyword in the registered data.
[0050] The encrypted tag is an encrypted registration keyword.
[0051] Details of step S110 will be described later.
[0052] In step S120, the search operation device 300 generates a set of search keywords based on the search range, encrypts the set of search keywords, and generates a search query.
[0053] The search range is the range of the symbol sequence to be searched.
[0054] A set of search keywords is data that contains an aggregation code for each group of search keywords, and each search keyword that does not belong to any of the search keyword groups, as its elements. A set of search keywords consists of two or more search keywords that are included in the search range and share a common length. In particular, if all search keywords with a common length are included in the search range, then all search keywords with a common length constitute a set of search keywords. An aggregate code is a code that represents the length of search keywords belonging to a set of search keywords. In a set of search keywords, each group of search keywords is replaced by an aggregate code.
[0055] A search query is an encrypted set of search keywords.
[0056] Details of step S120 will be described later.
[0057] In step S130, the data management device 400 matches the encrypted tag for each registered data with the search query, and outputs the registered data for the encrypted tag that matches the search query.
[0058] Step S110 will be explained in detail based on Figure 8. Step S110 is performed by the registration device 200.
[0059] Steps S111 to S118 are performed for each registration data D.
[0060] In step S111, the encryption tag generation unit 224 obtains the secret key K.
[0061] The private key K is obtained as follows: The secret key K is stored in the storage unit 290, and the encryption tag generation unit 224 retrieves the secret key K from the storage unit 290. For example, the secret key K may be obtained from another device and stored in the storage unit 290 beforehand. However, the encryption tag generation unit 224 may obtain the secret key K from another device.
[0062] In step S112, the reception unit 210 receives the registration data D.
[0063] For example, registration data D is input to the registration device 200, and the reception unit 210 receives the input registration data D. Alternatively, the reception unit 210 may receive registration data D from another device.
[0064] Then, the reception unit 210 passes the registration data D to the keyword acquisition unit 221.
[0065] In step S113, the keyword acquisition unit 221 acquires the keyword W for the registered data D.
[0066] For example, the keyword acquisition unit 221 extracts keywords W from the registered data D by performing morphological analysis or natural language processing on the registered data D. However, keyword W may be input to the registration device 200, and the keyword acquisition unit 221 may receive the input keyword W.
[0067] Then, the keyword acquisition unit 221 passes the keyword W to the keyword conversion unit 222.
[0068] In step S114, the random number generation unit 225 generates a random number. The generated random number is called the tag random number R. The tag random number R is passed to the encryption tag generation unit 224.
[0069] In step S115, the keyword conversion unit 222 converts keyword W to generate registered keyword U.
[0070] For example, if keyword W is an integer "123", the following registered keyword U will be generated. U={123,12?,1??}
[0071] The registered keyword U has three elements: "123", "12?", and "1??". "123" is the same as the keyword W. "12?" and "1??" are conversion keywords, generated by replacing part of the symbol sequence "123" that makes up keyword W with the wildcard symbol "?".
[0072] The keyword conversion unit 222 then passes the registered keyword U to the keyword addition unit 223.
[0073] In step S116, the keyword addition unit 223 adds a keyword length code to the registered keyword U.
[0074] For example, if the keyword W is an integer, the string "n digits" representing the number of digits n in the keyword W becomes the keyword length code.
[0075] For example, if keyword W is the integer "123" and registered keyword U is {123,12?,1??}, then the keyword length code "3 digits" will be added to registered keyword U as follows. U={123,12?,1??,3 digits}
[0076] The keyword addition unit 223 then passes the registered keyword U to the encryption tag generation unit 224.
[0077] In step S117, the encryption tag generation unit 224 encrypts the registered keyword U and generates an encryption tag CT.
[0078] The encrypted tag CT is generated as follows: A registered keyword U having m elements can be represented as follows: U={u1,u2,···,um}
[0079] Each element ui of the registered keyword U is encrypted using the secret key K, the random tag number R, and the encryption tag generation function ET. The encrypted element ui is referred to as element ti. The element ti is represented as follows: ti = ET(K, ui, R)
[0080] The encrypted tag CT is represented as follows using each element ti and the tag random number R. CT=((t1,t2,···,tn),R)
[0081] In step S118, the registration unit 230 registers the combination of registration data D and encrypted tag CT in the data management device 400.
[0082] Specifically, the registration unit 230 communicates with the data management device 400 to register the pair of registration data D and encrypted tag CT with the data management device 400. As a result, the pair of registration data D and encrypted tag CT is stored in the storage unit 490 of the data management device 400.
[0083] Step S120 will be explained in detail based on Figure 9. Step S120 is performed by the search operation device 300.
[0084] In step S121, the search query generation unit 323 obtains the secret key K.
[0085] The private key K is obtained as follows: The secret key K is stored in the storage unit 390, and the search query generation unit 323 retrieves the secret key K from the storage unit 390. For example, the secret key K may be obtained from another device and stored in the storage unit 390 beforehand. However, the search query generation unit 323 may obtain the secret key K from another device. The secret key K in step S121 may be the same as the secret key K in step S111, or it may be different from the secret key K in step S111. Also, if there are multiple search operation devices 300, the secret key K may be different for each search operation device 300.
[0086] In step S122, the reception unit 310 receives the search range [FROM, TO].
[0087] The search range [FROM,TO] indicates the range from the symbol string "FROM" to the symbol string "TO". For example, the search range [99, 10000] represents the range of integers from "99" to "10000".
[0088] For example, a search range [FROM,TO] is input to the search operation device 300, and the reception unit 310 receives the input search range [FROM,TO]. Alternatively, the reception unit 310 may receive a search range [FROM,TO] from another device.
[0089] Then, the reception unit 310 passes the search range [FROM, TO] to the keyword enumeration unit 321.
[0090] In step S123, the keyword enumeration unit 321 generates a keyword set RANGE based on the search range [FROM, TO].
[0091] For example, if the search range is [99,10000], the following keyword set RANGE will be generated. RANGE={99,1??,2??,...,9???,1???,2???,...,9???,10000}
[0092] "1??" represents the range from 100 to 199, "2??" represents the range from 200 to 299, and "9??" represents the range from 900 to 999. The subset {1??, 2??, ..., 9??} represents the set of all three-digit integers (100 to 999). "1???" represents the range from 1000 to 1999, "2???" represents the range from 2000 to 2999, and "9???" represents the range from 9000 to 9999. The subset {1???, 2???, ..., 9???} represents the set of all four-digit integers (1000 to 9999).
[0093] The keyword enumeration unit 321 then passes the keyword set RANGE to the keyword aggregation unit 322.
[0094] In step S124, the keyword aggregation unit 322 attempts to aggregate elements of the keyword set RANGE.
[0095] For example, in the keyword set RANGE, a subset representing all n-digit integers is replaced by an aggregated code called "n-digit".
[0096] For example, let's assume that the keyword set RANGE before aggregation is represented as follows: RANGE={99,1??,2??,...,9???,1???,2???,...,9???,10000} The subset {1??, 2??, ..., 9??} consists of nine symbol sequences with a common length (number of digits) and represents all three-digit integers. Therefore, this subset (set of search keywords) is aggregated and replaced with the aggregate code "3 digits". The subset {1???, 2???, ..., 9???} consists of nine symbol sequences with a common length (number of digits) and represents all 4-digit integers. Therefore, this subset (the set of search keywords) is aggregated and replaced with the aggregate code "4 digits". As a result, the aggregated keyword set RANGE (search keyword set) is expressed as follows: RANGE={99,3 digits,4 digits,10000}
[0097] The keyword aggregation unit 322 then passes the keyword set RANGE to the search query generation unit 323.
[0098] In step S125, the search query generation unit 323 encrypts the keyword set RANGE and generates the search query Q.
[0099] The search query Q is generated as follows: A keyword set RANGE with m elements can be represented as follows: RANGE={RANGE1,RANGE2,...,RANGEm}
[0100] Each element RANGEi in the keyword set RANGE is encrypted using the secret key K and the search query generation function EQ. The encrypted element RANGEi is referred to as element qi. The element qi is represented as follows: qi = EQ(K, RANGEi)
[0101] The search query Q is expressed as follows using each element qi: Q = (q1, q2, ..., qm)
[0102] The search query generation unit 323 then passes the search query Q to the request unit 330.
[0103] In step S126, the request unit 330 sends the search query Q to the data management device 400.
[0104] In step S127, the request unit 330 receives the search results from the data management device 400.
[0105] In step S128, the output unit 340 outputs the search results.
[0106] For example, the output unit 340 displays the search results on the display.
[0107] Step S130 will be explained in detail based on Figure 10. Step S130 is performed by the data management device 400.
[0108] In step S131, the reception unit 410 receives the search query Q from the search operation device 300 and passes the search query Q to the search unit 420.
[0109] In step S132, the search unit 420 compares the search query Q with the encrypted tag CT for each registered data D and searches for the registered data D corresponding to the encrypted tag CT that matches the search query Q.
[0110] The matching of the search query Q and the encryption tag CT is performed using the matching function CMP. The search query Q and encryption tag CT are represented as follows: Q = (q1, q2, ..., qm) CT=((t1,t2,···,tn),R) The matching function CMP is expressed as follows, using the elements qj of the search query Q, the elements ti of the encryption tag CT, and the tag random number R. V = CMP((ti, R), qj) "V" is a variable that indicates whether elements ti and qj "match" or "do not match".
[0111] Matching the search query Q with the encryption tag CT is performed using the matching function CMP as follows: The matching function CMP is executed on any combination of the element qj of the search query Q and the element ti of the encryption tag CT. If there is one or more combinations (ti, qj) for which the result V of the matching function CMP is a "match", the search query Q is determined to be a "match" with the encryption tag CT; otherwise, the search query Q is determined to be a "mismatch" with the encryption tag CT.
[0112] The search unit 420 then passes the registration data D for the encrypted tag CT that matches the search query Q to the output unit 430.
[0113] In step S133, the output unit 430 transmits the search results to the search operation device 300.
[0114] The search results show the registered data D (relevant data) for the encrypted tag CT that matches the search query Q. However, if no matching data is found, the search results will indicate that no matching data was found.
[0115] ***Supplementary explanation of operation*** In secure search, registered keywords and search scope are encrypted using a secret key, and encrypted tags and search queries are generated. Depending on the method used for secure searching, the secret key used to generate the encrypted tag may be different from the secret key used to generate the search query.
[0116] In Embodiment 1, a range search is performed using an exact match search in a secure search.
[0117] This document explains how to generate encrypted tags and search queries for exact match searches. The encrypted tag CT for the registered keyword W is generated using the secret key K, the random tag number R, and the encrypted tag generation function ET as follows. CT=(ET(K,W,R),R) The search query Q for the search keyword W is generated using the secret key K and the cryptographic query generation function EQ as follows: Q=EQ(K,W)
[0118] This document explains how encrypted tags and search queries are matched in exact match searches. The variable V is generated using the encryption tag CT, the search query Q, and the matching function CMP as follows. Variable V is a variable that indicates a match or mismatch. V = CMP(CT, Q)
[0119] For example, the encryption tag generation function ET, the search query generation function EQ, and the matching function CMP can be configured as follows. Functions F1 and F2 are, respectively, pseudorandom functions, hash functions, or functions of a symmetric-key cryptography scheme. The encryption tag generation function ET is expressed as follows: "||" means concatenation. ET(K,W,R)=F2(F1(K||W)||R) The search query generation function EQ is expressed as follows: EQ(K,W) = F1(K||W) The matching function CMP first calculates F2(Q||R) using the tag random number R, which is the second element of the encryption tag CT, and the search query Q. If F2(Q||R) is the same as the first element of the encryption tag CT, it returns "match," otherwise it returns "mismatch."
[0120] The registration device 200 operates as follows: First, the registration device 200 receives the registration data D and extracts the keyword W from the registration data D. Next, the registration device 200 converts keyword W to generate registration keyword U. Registration keyword U is expressed as follows: U={u1,u2,···,un} Next, the registration device 200 encrypts the registration keyword U using the secret key K to generate an encrypted tag CT. Then, the registration device 200 registers the data D and the encrypted tag CT with the data management device 400.
[0121] The keywords W extracted from the registered data D may be multiple. The registration data D may be in plain text or ciphertext. If the registration data D is in ciphertext, the registration data D included in the search results may be decrypted in step S128 before being output. The keyword W may not be extracted from the data D, but may be received via the input / output interface 205 of the registration device 200. In this case, the registration data D may be ciphertext.
[0122] The search operation device 300 operates as follows: First, the search operation device 300 receives the search range [FROM, TO] and transforms the search range [FROM, TO] to generate a set of search keywords W'. The search keywords W' are expressed as follows. W'={w'1,w'2,···,w'm} The search operation device 300 then encrypts each search keyword w'i using the secret key K to generate a search query Q.
[0123] The data management device 400 operates as follows: First, the data management device 400 receives the search query Q and identifies an encrypted tag from among the registered encrypted tags CT that matches the search query Q. The data management device 400 then sends back the registered data D associated with the encrypted tag CT that was determined to be a match to the search operation device 300.
[0124] ***Effects of Embodiment 1*** Embodiment 1 is a range search method that reduces the number of search keywords used to represent elements of the search range.
[0125] Embodiment 1 has the following features. The registration device includes information about the length of the registration keyword in the encrypted tag. The search operation device aggregates elements within the search range, focusing on the length of the keywords, and reduces the number of elements.
[0126] In Embodiment 1, when performing a range search with a wide search scope, the size of the encryption tag increases compared to conventional methods, while the size of the search query is significantly reduced. Therefore, Embodiment 1 can suppress the decrease in search speed.
[0127] The range search described in Patent Document 1 has the problem that the search speed decreases when the difference between the largest and smallest elements of the search range is large. Embodiment 1 reduces the number of search keywords that represent elements within the search range by introducing a new string. More specifically, Embodiment 1 introduces a string "n digits" that represents the length of a keyword, thereby allowing a single search keyword to represent search keywords that refer to the same length. Embodiment 1 makes it possible to suppress a decrease in search speed even when the difference between the maximum and minimum sources in the search range is large.
[0128] ***Embodiment of Embodiment 1*** The keyword length code may represent the length of a keyword in the registered data within a range of keyword lengths. The aggregate code may represent the length of the search keywords belonging to the search keyword group within a range of search keyword lengths. For example, if the aggregated keyword set RANGE has three aggregation codes as elements, {1 digit, 2 digits, 3 digits}, then these three elements {1 digit, 2 digits, 3 digits} can be further aggregated into the aggregation code {3 digits or less}. In other words, the number of elements in the aggregated keyword set RANGE can be further reduced.
[0129] An example of a keyword sequence is an integer. This integer can be a decimal number, or an integer with a base other than "10" (such as a binary or hexadecimal number). A larger base will result in greater reduction of search queries. Additionally, it is possible to apply mixed radix, which allows you to set a base for each digit.
[0130] ***Supplement to Embodiment 1*** The hardware configuration of the registration device 200 will be explained based on Figure 11. The registration device 200 includes a processing circuit 209. The processing circuit 209 is the processing circuit of the registration device 200. The processing circuit 209 is hardware that implements the receiving unit 210, the generation unit 220, and the registration unit 230.
[0131] The processing circuit may be dedicated hardware, or it may be a processor that executes a program stored in memory.
[0132] When the processing circuit is dedicated hardware, the processing circuit may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof. ASIC is an abbreviation for Application Specific Integrated Circuit. FPGA is an abbreviation for Field Programmable Gate Array.
[0133] The registration device 200 may include multiple processing circuits that replace the processing circuit 209.
[0134] In the processing circuit 209, some functions may be implemented by dedicated hardware, while the remaining functions may be implemented by software or firmware.
[0135] Thus, the functions of the registration device 200 can be realized through hardware, software, firmware, or a combination thereof.
[0136] Based on Figure 12, the hardware configuration of the search operation device 300 will be explained. The search operation device 300 includes a processing circuit 309. The processing circuit 309 is the processing circuit of the search operation device 300. The processing circuit 309 is hardware that implements the receiving unit 310, the generating unit 320, the requesting unit 330, and the output unit 340. The search operation device 300 may include multiple processing circuits that replace the processing circuit 309.
[0137] In the processing circuit 309, some functions may be implemented by dedicated hardware, while the remaining functions may be implemented by software or firmware.
[0138] Thus, the functions of the search operation device 300 can be realized by hardware, software, firmware, or a combination thereof.
[0139] Based on Figure 13, the hardware configuration of the data management device 400 will be explained. The data management device 400 includes a processing circuit 409. The processing circuit 409 is the processing circuit of the data management device 400. The processing circuit 409 is hardware that implements the reception unit 410, the search unit 420, and the output unit 430. The data management device 400 may include multiple processing circuits that replace the processing circuit 409.
[0140] In the processing circuit 409, some functions may be implemented by dedicated hardware, while the remaining functions may be implemented by software or firmware.
[0141] Thus, the functions of the data management device 400 can be realized through hardware, software, firmware, or a combination thereof.
[0142] Embodiment 1 is an example of a preferred form and is not intended to limit the technical scope of this disclosure. Embodiment 1 may be implemented in part or in combination with other forms. The procedure described using flowcharts, etc., may be modified as appropriate.
[0143] The word "part" in each element of the registration device 200, the search operation device 300, and the data management device 400 may be read as "processing," "process," "circuit," or "circuit."
[0144] The various aspects of this disclosure are described below as appendices. (Note 1) A registration device that generates a registration keyword for each piece of registration data, having a keyword length code as an element that represents the length of the keyword for the registration data, encrypts the registration keyword to generate an encrypted tag, and registers the pair of the registration data and the encrypted tag. A search operation device that generates a search keyword set having the aggregate code for each search keyword group as an element, by replacing the search keyword group with an aggregate code that represents the length of the search keywords belonging to the search keyword group, for each search keyword group consisting of two or more search keywords that are included in the search range and have a common length, and then encrypts the search keyword set to generate a search query. A secure search system equipped with the following features.
[0145] (Note 2) The registration device generates one or more converted keywords for each piece of registration data by replacing some of the symbols in the symbol sequence constituting the keyword for the registration data with wildcard symbols, and generates a registration keyword having the keyword for the registration data, the one or more converted keywords, and the keyword length code as its elements. The confidential search system described in Appendix 1.
[0146] (Note 3) The search operation device generates a set of search keywords, each of which has an aggregation code for each of the search keyword groups and a search keyword that does not belong to any of the search keyword groups as its elements. The confidential search system described in Appendix 1 or Appendix 2.
[0147] (Note 4) The data management device includes a device that, for each piece of registered data, matches the encrypted tag and search query for the registered data, and outputs the registered data for the encrypted tag that matches the search query. A confidential search system as described in any one of the appendices 1 through 3.
[0148] (Note 5) A generation unit generates a registered keyword for each registered data, which has a keyword length code as an element that represents the length of the keyword for the registered data, and generates an encrypted tag by encrypting the registered keyword. A registration unit that registers the set of the registration data and the encryption tag, A registration device equipped with the following features.
[0149] (Note 6) The generation unit generates one or more converted keywords for each of the registered data by replacing some of the symbols in the symbol sequence constituting the keyword for the registered data with wildcard symbols, and generates a registered keyword having the keyword for the registered data, the one or more converted keywords, and the keyword length code as elements. The registered device as described in Appendix 5.
[0150] (Note 7) A generation unit generates a set of search keywords having the aggregate code for each set of search keywords as an element, by replacing each set of search keywords with an aggregate code that represents the length of the search keywords belonging to the set of search keywords, for each set of search keywords which consists of two or more search keywords that are included in the search range and have the same length, and then encrypts the set of search keywords to generate a search query. A search operation device equipped with the following features.
[0151] (Note 8) The generation unit generates a set of search keywords, each of which has an aggregation code for each of the search keyword groups and a search keyword that does not belong to any of the search keyword groups as its elements. The search operation device described in Appendix 7.
[0152] (Note 9) For each registered data item, a registered keyword is generated having a keyword length code as an element that represents the length of the keyword for the registered data item, the registered keyword is encrypted to generate an encrypted tag, and the pair of the registered data item and the encrypted tag is registered. For each group of search keywords consisting of two or more search keywords included in the search range and sharing a common length, the group of search keywords is replaced with an aggregate code that represents the length of the search keywords belonging to the group of search keywords. A set of search keywords is generated that has the aggregate code for each group of search keywords as an element, and the set of search keywords is encrypted to generate a search query. Confidential search methods.
[0153] (Note 10) For each registered data, a registered keyword is generated having a keyword length code as an element that represents the length of the keyword for the registered data, and the registered keyword is encrypted to generate an encrypted tag. Register the combination of the aforementioned registration data and the aforementioned encryption tag. How to register.
[0154] (Note 11) For each group of search keywords consisting of two or more search keywords included in the search range and sharing a common length, the group of search keywords is replaced with an aggregate code that represents the length of the search keywords belonging to the group of search keywords. A set of search keywords is generated that has the aggregate code for each group of search keywords as an element, and the set of search keywords is encrypted to generate a search query. How to perform a search.
[0155] (Note 12) A generation process that generates a registered keyword for each registered data, having a keyword length code as an element that represents the length of the keyword for the registered data, and then encrypts the registered keyword to generate an encrypted tag, A registration process for registering the set of the registration data and the encryption tag, A registration program to cause a computer to execute something.
[0156] (Note 13) Generation process: For each group of search keywords consisting of two or more search keywords included in the search range and having a common length, replace the group of search keywords with an aggregate code that represents the length of the search keywords belonging to the group of search keywords, generate a set of search keywords having the aggregate code for each group of search keywords as an element, encrypt the set of search keywords, and generate a search query. A search operation program that causes a computer to perform a search. [Explanation of symbols]
[0157] 100 Confidential Search System, 101 Network, 200 Registration Device, 201 Processor, 202 Memory, 203 Auxiliary Storage Device, 204 Communication Device, 205 Input / Output Interface, 209 Processing Circuit, 210 Reception Unit, 220 Generation Unit, 221 Keyword Acquisition Unit, 222 Keyword Conversion Unit, 223 Keyword Addition Unit, 224 Encryption Tag Generation Unit, 225 Random Number Generation Unit, 230 Registration Unit, 290 Storage Unit, 300 Search Operation Device, 301 Processor, 302 Memory, 303 Auxiliary Storage Device, 304 Communication Device, 305 Input / Output Interface, 309 Processing Circuit, 310 Reception Unit, 320 Generation Unit, 321 Keyword Enumeration Unit, 322 Keyword Aggregation Unit, 323 Search Query Generation Unit, 330 Request Unit, 340 Output Unit, 390 Storage Unit, 400 Data management device, 401 processor, 402 memory, 403 auxiliary storage device, 404 communication device, 405 input / output interface, 409 processing circuit, 410 reception unit, 420 search unit, 421 matching unit, 422 extraction unit, 430 output unit, 490 storage unit.
Claims
1. A registration device that generates a registration keyword for each piece of registration data, having a keyword length code as an element that represents the length of the keyword for the registration data, encrypts the registration keyword to generate an encrypted tag, and registers the pair of the registration data and the encrypted tag. A search operation device that generates a search keyword set having the aggregate code for each search keyword group as an element, by replacing the search keyword group with an aggregate code that represents the length of the search keywords belonging to the search keyword group for each search keyword group, and then encrypts the search keyword set to generate a search query. A secure search system equipped with the following features.
2. The registration device generates one or more converted keywords for each piece of registration data by replacing some of the symbols in the symbol sequence constituting the keyword for the registration data with wildcard symbols, and generates a registration keyword having the keyword for the registration data, the one or more converted keywords, and the keyword length code as its elements. The confidential search system according to claim 1.
3. The search operation device generates a set of search keywords, each of which has an aggregation code for each of the search keyword groups and a search keyword that does not belong to any of the search keyword groups as its elements. The confidential search system according to claim 1.
4. The data management device includes a device that, for each piece of registered data, matches the encrypted tag and search query for the registered data, and outputs the registered data for the encrypted tag that matches the search query. The confidential search system according to any one of claims 1 to 3.
5. A generation unit generates a registered keyword for each registered data, which has a keyword length code as an element that represents the length of the keyword for the registered data, and generates an encrypted tag by encrypting the registered keyword. A registration unit that registers the set of the registration data and the encryption tag, A registration device equipped with the following features.
6. The generation unit generates one or more converted keywords for each of the registered data by replacing some of the symbols in the symbol sequence constituting the keyword for the registered data with wildcard symbols, and generates a registered keyword having the keyword for the registered data, the one or more converted keywords, and the keyword length code as elements. The registration device according to claim 5.
7. A generation unit generates a search keyword set having the aggregate code for each search keyword group as an element, by replacing the search keyword group with an aggregate code that represents the length of the search keywords belonging to the search keyword group, for each search keyword group consisting of two or more search keywords that are included in the search range and have a common length, and then encrypts the search keyword set to generate a search query. A search operation device equipped with the following features.
8. The generation unit generates a set of search keywords, each of which has an aggregation code for each of the search keyword groups and a search keyword that does not belong to any of the search keyword groups as its elements. The search operation device according to claim 7.
9. For each registered data item, a registered keyword is generated having a keyword length code as an element that represents the length of the keyword for the registered data item, the registered keyword is encrypted to generate an encrypted tag, and the pair of the registered data item and the encrypted tag is registered. For each group of search keywords consisting of two or more search keywords included in the search range and sharing a common length, the group of search keywords is replaced with an aggregate code that represents the length of the search keywords belonging to the group of search keywords. A set of search keywords is generated that has the aggregate code for each group of search keywords as an element, and the set of search keywords is encrypted to generate a search query. Confidential search methods.
10. For each registered data, a registered keyword is generated having a keyword length code as an element that represents the length of the keyword for the registered data, and the registered keyword is encrypted to generate an encrypted tag. Register the combination of the aforementioned registration data and the aforementioned encryption tag. How to register.
11. For each group of search keywords consisting of two or more search keywords included in the search range and sharing a common length, the group of search keywords is replaced with an aggregate code that represents the length of the search keywords belonging to the group of search keywords. A set of search keywords is generated that has the aggregate code for each group of search keywords as an element, and the set of search keywords is encrypted to generate a search query. How to perform a search.
12. A generation process that generates a registered keyword for each registered data, having a keyword length code as an element that represents the length of the keyword for the registered data, and then encrypts the registered keyword to generate an encrypted tag, A registration process for registering the set of the registration data and the encryption tag, A registration program to cause a computer to execute something.
13. Generation process: For each group of search keywords consisting of two or more search keywords included in the search range and having a common length, replace the group of search keywords with an aggregate code that represents the length of the search keywords belonging to the group of search keywords, generate a set of search keywords having the aggregate code for each group of search keywords as an element, encrypt the set of search keywords, and generate a search query. A search operation program that causes a computer to perform a search.
Citation Information
Patent Citations
Document image retrieval device and program
JP2008152502A
Registration device, search operation device, data management device, registration program, search operation program, and data management program
JP6910477B2
JPP6910477B