WO2023112176A1 - 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム - Google Patents

秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム Download PDF

Info

Publication number
WO2023112176A1
WO2023112176A1 PCT/JP2021/046136 JP2021046136W WO2023112176A1 WO 2023112176 A1 WO2023112176 A1 WO 2023112176A1 JP 2021046136 W JP2021046136 W JP 2021046136W WO 2023112176 A1 WO2023112176 A1 WO 2023112176A1
Authority
WO
WIPO (PCT)
Prior art keywords
salt
registered
keyword
disclosure
data
Prior art date
Application number
PCT/JP2021/046136
Other languages
English (en)
French (fr)
Inventor
郁海 森
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2021/046136 priority Critical patent/WO2023112176A1/ja
Priority to JP2023559065A priority patent/JP7455287B2/ja
Publication of WO2023112176A1 publication Critical patent/WO2023112176A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present disclosure relates to a confidential search system, a confidential search method, and a confidential search program.
  • searchable encryption technology that allows searching while it is encrypted. has the problem of slow processing speed. Therefore, in searchable encryption technology based on probabilistic encryption, there is a high-speed method that reduces the comparison space between tags and trapdoors by using disclosure bits that are deterministically obtained from keywords. In this high-speed method, the longer the disclosed bits, the smaller the comparison space, so the speed-up effect is greater. However, the longer the disclosed bits, the closer the frequency distribution of the disclosed bits and the frequency distribution of the keywords. Therefore, the longer the disclosed bits, the higher the risk of frequency analysis attacks. When the disclosed bits are short, the risk of frequency analysis attacks is small, but the comparison space does not become very small, so the speed-up effect is small.
  • the purpose of this disclosure is to reduce the risk of frequency analysis attacks while maintaining speed-up effects without requiring the appearance frequency of keywords in advance in searchable encryption technology based on probabilistic encryption.
  • the confidential search system is A secure search system that employs searchable encryption technology based on probabilistic encryption, At least one data to be searched confidentially and at least one keyword corresponding to each of the at least one data are registered in a confidential search server device, and each keyword registered in the confidential search server device and the confidential search server.
  • a registered client device that discloses a disclosure bit, which is data to be disclosed to the outside and is part of data deterministically calculated using a salt corresponding to each keyword registered in the device, a disclosed bit calculation unit that determines a salt corresponding to a registered keyword, which is a keyword to be registered in the confidential search server device, as a determined salt;
  • the disclosure bit calculation unit considers the degree of bias in the distribution of the disclosure bits already disclosed by the registered client device and the disclosure bits calculated using the registered keyword and the decision salt.
  • a registered client device for determining a decision salt is provided.
  • a secure search system employing searchable cryptography based on probabilistic cryptography comprises a registered client device, and the registered client device determines disclosed bits already disclosed by the registered client device and a registered keyword.
  • a disclosure bit calculation unit is provided for determining a decision salt in consideration of the degree of bias in the distribution of the salt and the disclosure bits calculated using the salt.
  • the registered keyword is a keyword to be registered in the confidential search server device, and the determined salt is a salt corresponding to the registered keyword. Therefore, according to the present disclosure, in searchable encryption technology based on probabilistic encryption, it is possible to reduce the risk of frequency analysis attacks while maintaining the speedup effect without requiring the appearance frequency of keywords in advance.
  • FIG. 1 is a diagram showing a configuration example of a confidential search system 1 according to Embodiment 1;
  • FIG. 2 is a diagram showing a configuration example of the secure search server device 10 according to the first embodiment;
  • FIG. 2 is a diagram showing a configuration example of a registered client device 20 according to the first embodiment;
  • FIG. 2 is a diagram showing a configuration example of a search client device 30 according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a salt table management device 40 according to Embodiment 1;
  • FIG. 2 is a diagram showing an example hardware configuration of a registration client device 20 according to the first embodiment;
  • FIG. 4 is a flowchart showing the operation of disclosure bit calculation section 240 according to Embodiment 1.
  • FIG. 1 shows a configuration example of a secure search system 1 according to this embodiment.
  • the secure search system 1 employs searchable encryption technology based on probabilistic encryption, and as shown in the figure, includes a secure search server device 10, a registered client device 20, a search client device 30, and a salt table management system. a device 40; Each device included in the confidential search system 1 is communicably connected via a network 50 . A plurality of devices may be provided in the secure search system 1 . At least two devices included in the confidential search system 1 may be configured integrally as appropriate.
  • FIG. 2 shows a configuration example of the secure search server device 10.
  • the confidential search server device 10 includes a registered data input section 110 , a storage section 120 , a search data input section 130 , a data search section 140 and a search result output section 150 .
  • the registration data input unit 110 receives registration data 212 and registers the received registration data 212 in the registration data table 101 .
  • the registration data 212 is data consisting of a disclosure bit, an encryption keyword, and encryption data.
  • the disclosure bit is data disclosed to the outside.
  • the encrypted keyword is data used when retrieving encrypted data, and is the encrypted keyword 200 .
  • Encrypted data is encrypted data 201 .
  • the registered data table 101 manages data consisting of disclosure bits, encrypted keywords, and encrypted data.
  • the registered data table 101 may manage multiple data.
  • Storage unit 120 stores registration data table 101 .
  • Search data input unit 130 receives search data 307 and sends the received search data 307 to data search unit 140 .
  • the search data 307 is data consisting of a disclosure bit and an encrypted keyword, and is data used when searching for data registered in the registered data table 101 .
  • the data search unit 140 receives the search data 307 from the search data input unit 130, searches the registration data table 101 for data corresponding to the received search data 307, and generates search results 309 indicating the search results. Search result 309 is sent to search result output unit 150 .
  • the search result output unit 150 receives the search result 309 from the data search unit 140 and outputs the received search result 309 to the outside.
  • FIG. 3 shows a configuration example of the registration client device 20.
  • the registration client device 20 includes a data input section 220 , a storage section 230 , a disclosure bit calculation section 240 , a registration data generation section 250 , a data registration request section 260 and a salt table registration request section 270 .
  • the registration client device 20 registers at least one data 201 to be searched confidentially and at least one keyword 200 corresponding to each of the at least one data 201 in the confidential search server device 10 . Also, the registered client device 20 discloses the disclosure bit.
  • the disclosure bit is part of data that is deterministically calculated using each keyword 200 registered in the confidential search server device 10 and the salt corresponding to each keyword 200 registered in the confidential search server device 10, This is the data to be disclosed to the outside.
  • the registration client device 20 discloses the disclosure bit to at least the confidential search server device 10 .
  • registering the data 201 and the keyword 200 in the confidential search server device 10 includes registering the encrypted data 201 and the keyword 200 in the confidential search server device 10 .
  • disclosure of the disclosure bit by the registered client device 20 includes disclosure of the disclosure bit by the secure search server device 10 .
  • Data input unit 220 receives data 201 and keyword 200 and records received data 201 and keyword 200 in storage unit 230 .
  • the data 201 is data to be registered in the confidential search server device 10, and is plaintext data.
  • the keyword 200 is a keyword for searching the data 201 and is plaintext data.
  • Storage unit 230 stores data 201 , keyword 200 , disclosure bit secret key 204 , disclosure bit length 205 , salt table 206 , frequency distribution table 207 , and confidential search encryption key 208 .
  • the disclosure bit secret key 204 is data indicating a secret key used when calculating the disclosure bit.
  • the disclosure bit length 205 is data indicating the data size of disclosure bits.
  • the salt table 206 is data showing a list of salts used when calculating the disclosure bit 211 . In the salt table 206, the salt corresponding to each keyword may be summarized.
  • the salt table 206 is not disclosed to the secure search server device 10 .
  • the frequency distribution table 207 is also called a disclosed bit frequency distribution table, and is data indicating the frequency distribution of disclosed bits disclosed by the registered client device 20 .
  • the confidential search encryption key 208 is an encryption key used when encrypting the data 201 and the keyword 200 .
  • the disclosure bit calculation unit 240 refers to the frequency distribution table 207 and calculates the disclosure bit 211 using the keyword 200 , the disclosure bit secret key 204 , and the salt shown in the salt table 206 . In addition, disclosure bit calculation section 240 determines the salt corresponding to the registered keyword, which is keyword 200 to be registered in secure search server device 10, as the determined salt.
  • the disclosure bit calculation unit 240 considers the degree of bias in the distribution of the disclosure bits already disclosed by the registered client device 20 and the disclosure bits calculated using the registered keyword and the determined salt. Determine the decision salt. Disclosure bit calculation section 240 may determine the determination salt based on the salt managed by storage section 420 of salt table management device 40 as the salt corresponding to the registered keyword. The disclosure bit calculation unit 240 may determine a salt other than the salt managed by the storage unit 420 of the salt table management device 40 as the salt corresponding to the registered keyword as the determined salt. When the appearance frequency of the keyword 200 registered by the registered client device 20 is known, the disclosure bit calculation unit 240 selects salt candidates to be determined as the decision salt based on the known appearance frequency. can be calculated.
  • Knowing the appearance frequency of the keywords 200 registered by the registered client device 20 includes being able to estimate the appearance frequency of the keywords 200 registered by the registered client device 20 .
  • the registered data generator 250 generates an encrypted keyword and encrypted data using the keyword 200, the data 201, and the secret search encryption key 208.
  • FIG. Further, the registration data generation unit 250 receives the disclosure bit 211 from the disclosure bit calculation unit 240, generates the registration data 212 using the received disclosure bit 211, the generated encryption keyword and the encryption data, and generates the registration data 212.
  • the registration data 212 is sent to the data registration request section 260 .
  • the data registration request unit 260 receives the registration data 212 from the registration data generation unit 250, transmits the received registration data 212 to the secure search server device 10, and requests the secure search server device 10 to register the registration data 212. .
  • the salt table registration requesting unit 270 outputs the salt table 206 stored in the storage unit 230 to the salt table management device 40 .
  • FIG. 4 shows a configuration example of the search client device 30.
  • the search client device 30 includes a keyword input unit 310, a storage unit 320, a disclosure bit calculation unit 330, a search data generation unit 340, a search request unit 350, a search result output unit 360, and a salt table request unit 370.
  • Keyword input unit 310 accepts keyword 200 , stores accepted keyword 200 in storage unit 320 , and sends accepted keyword 200 to disclosure bit calculation unit 330 .
  • Storage unit 320 stores keyword 200 , disclosure bit secret key 204 , disclosure bit length 205 , salt table 206 , confidential search encryption key 208 , and confidential search decryption key 209 .
  • the confidential search decryption key 209 is data indicating the decryption key used when decrypting the search result 309 .
  • the disclosure bit calculation unit 330 receives the keyword 200 from the keyword input unit 310 and calculates the disclosure bit 305 using the received keyword 200 and the disclosure bit secret key 204 . Note that disclosure bit calculation unit 330 may use all salts corresponding to each keyword 200 registered in secure search server device 10 when searching for data 201 registered in secure search server device 10. good. At this time, in order to reduce the amount of memory used, the storage unit 320 stores all the salts corresponding to the keywords 200 registered in the secure search server device 10 without duplication instead of the salt table 206. good too.
  • the search data generator 340 generates an encrypted keyword using the keyword 200 and the secret search encryption key 208 .
  • the search data generation unit 340 receives the disclosure bit 305 from the disclosure bit calculation unit 330, generates the search data 307 using the received disclosure bit 305 and the generated encrypted keyword, and converts the generated search data 307 to Send to search request unit 350 .
  • the search request unit 350 receives the search data 307 from the search data generation unit 340 , transmits the received search data 307 to the secure search server device 10 , and requests the secure search server device 10 to search for data corresponding to the search data 307 . request to.
  • the search request unit 350 receives search results 309 corresponding to the transmitted search data 307 from the confidential search server device 10 and sends the received search results 309 to the search result output unit 360 .
  • the search result output unit 360 receives the search result 309 from the search request unit 350, generates the data 201 by decrypting the received search result 309 using the decryption key 209 for confidential search, and outputs the generated data 201. .
  • the salt table request unit 370 transmits the salt table request data 301 to the salt table management device 40 .
  • the salt table requesting unit 370 also receives the salt table 206 corresponding to the transmitted salt table request data 301 from the salt table management device 40 and records the received salt table 206 in the storage unit 320 .
  • the salt table request data 301 is data indicating that the salt table 206 is requested.
  • the salt table request data 301 may be information indicating that only the salt corresponding to a certain keyword among the salts shown in the salt table 206 managed by the salt table management device 40 is requested. It may be information indicating that the salt shown in the salt table 206 managed by the salt table management device 40 is requested without duplication.
  • FIG. 5 shows a configuration example of the salt table management device 40.
  • the salt table management device 40 includes a salt table input section 410 , a storage section 420 and a salt table output section 430 .
  • the salt table input unit 410 receives the salt table 206 from the registered client device 20 and records the received salt table 206 in the storage unit 420 .
  • the salt table input unit 410 selects salt candidates determined as the decision salt by the disclosure bit calculation unit 240 based on the known frequency of appearance. can be calculated.
  • Storage unit 420 stores salt table 206 . Also, the storage unit 420 manages the salt corresponding to each keyword 200 registered in the secure search server device 10 .
  • the salt table output unit 430 receives the salt table request data 301 from the search client device 30, and converts the salt table 206 corresponding to the received salt table request data 301, which is stored in the storage unit 420, into: It transmits the salt table request data 301 to the search client device 30 that transmitted it.
  • FIG. 6 shows a hardware configuration example of the registration client device 20 according to this embodiment.
  • the registration client device 20 consists of a computer.
  • the enrollment client device 20 may consist of multiple computers.
  • the registration client device 20 is a computer equipped with hardware such as a processor 91, a memory 92, an auxiliary storage device 93, an input/output IF (Interface) 94, and a communication device 95, as shown in the figure. These pieces of hardware are appropriately connected via signal lines 99 .
  • the processor 91 is an IC (Integrated Circuit) that performs arithmetic processing and controls hardware included in the computer.
  • the processor 91 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the registration client device 20 may include multiple processors that substitute for the processor 91 . A plurality of processors share the role of processor 91 .
  • the memory 92 is typically a volatile storage device.
  • the memory 92 is also called main storage or main memory.
  • the memory 92 is, as a specific example, a RAM (Random Access Memory).
  • the data stored in the memory 92 is saved in the auxiliary storage device 93 as required.
  • Auxiliary storage device 93 is typically a non-volatile storage device.
  • the auxiliary storage device 93 is, for example, a ROM (Read Only Memory), an HDD (Hard Disk Drive), or a flash memory. Data stored in the auxiliary storage device 93 are loaded into the memory 92 as needed.
  • the memory 92 and the auxiliary storage device 93 may be constructed integrally.
  • the input/output IF 94 is a port to which an input device and an output device are connected.
  • the input/output IF 94 is, as a specific example, a USB (Universal Serial Bus) terminal.
  • the input device is, as a specific example, a keyboard and a mouse.
  • a specific example of the output device is a display.
  • the communication device 95 is a receiver and a transmitter.
  • the communication device 95 is, as a specific example, a communication chip or a NIC (Network Interface Card).
  • Each part of the registered client device 20 may appropriately use the input/output IF 94 and the communication device 95 when communicating with other devices.
  • the auxiliary storage device 93 stores a confidential search program.
  • the confidential search program is a program that causes a computer to implement the functions of the respective units of the registration client device 20 .
  • the confidential search program is loaded into memory 92 and executed by processor 91 .
  • the function of each unit included in the registration client device 20 is implemented by software.
  • the storage unit 230 consists of a storage device.
  • the storage device comprises at least one of memory 92 , auxiliary storage device 93 , registers within processor 91 , and cache memory within processor 91 as a specific example. Note that data and information may have the same meaning.
  • the storage device may be independent of the computer.
  • the functions of the memory 92 and auxiliary storage device 93 may be realized by another storage device.
  • the confidential search program may be recorded in a computer-readable non-volatile recording medium.
  • a non-volatile recording medium is, for example, an optical disk or a flash memory.
  • the secure search program may be provided as a program product.
  • the hardware configuration of each device other than the registered client device 20 included in the confidential search system 1 may be the same as the hardware configuration of the registered client device 20 .
  • FIG. 7 is a flow chart showing an example of a process in which the disclosure bit calculation unit 240 acquires the maximum frequency and minimum frequency of disclosure bits. The operation of disclosure bit calculation section 240 will be described with reference to this figure.
  • Step S101 The frequency distribution table 207 is input to the disclosed bit calculator 240 . Note that if the disclosure bit calculation unit 240 can refer to the frequency distribution table 207 stored in the storage unit 230, the disclosure bit calculation unit 240 may skip this step.
  • Step S102 If there is no entry in the referenced frequency distribution table 207, the disclosure bit calculator 240 proceeds to step S103. Otherwise, disclosure bit calculation section 240 proceeds to step S104.
  • Step S103 Disclosure bit calculation section 240 outputs information indicating that there is no maximum frequency and no minimum frequency.
  • Step S104 Disclosure bit calculation section 240 identifies the maximum frequency from the frequencies shown in frequency distribution table 207 .
  • Step S105 Disclosure bit calculation section 240 identifies the minimum frequency from the frequencies shown in frequency distribution table 207 .
  • Disclosure bit calculation section 240 outputs the specified maximum frequency and minimum frequency. Note that the disclosure bit calculation section 240 may output the specified maximum frequency and minimum frequency within the disclosure bit calculation section 240 .
  • FIG. 8 to 10 are flowcharts showing an example of the operation of the registered client device 20.
  • FIG. The operation of the registered client device 20 will be described with reference to this figure.
  • Step S201 The disclosure bit calculation unit 240 acquires the maximum frequency and minimum frequency indicated by the frequency distribution table 207 .
  • the disclosure bit calculation unit 240 executes the processing shown in FIG. 7 in this step.
  • Step S202 A keyword 200 to be registered, a secret key for disclosure bits 204 , a disclosure bit length 205 , a salt table 206 and a frequency distribution table 207 are input to the disclosure bit calculator 240 . Note that if the disclosure bit calculation unit 240 can refer to these data stored in the storage unit 230, the disclosure bit calculation unit 240 may skip this step.
  • Step S203 Disclosure bit calculation unit 240 acquires the salt corresponding to keyword 200 to be registered from salt table 206, and generates a salt list using the acquired salt.
  • Step S204 Disclosure bit calculation section 240 substitutes 0 as the salt value and assumes that there is no disclosure bit.
  • Step S205 In the processing of this flowchart, if there is a salt that has not been selected yet in the salt list generated in step S203, disclosure bit calculation section 240 proceeds to step S206. Otherwise, disclosure bit calculation section 240 proceeds to step S207.
  • Step S206 Disclosure bit calculation section 240 selects any of the salts included in the salt list that has not yet been selected in the processing of this flowchart as the selected salt.
  • Disclosure bit calculator 240 adds a new salt to the salt list.
  • the new salt is a salt that does not overlap with the salt contained in the salt list. Disclosure bit calculator 240 selects the new salt as the selected salt.
  • the disclosure bit calculation unit 240 calculates a conversion keyword using the selected salt and the keyword 200 to be registered.
  • the conversion keyword may be a logical sum of the selected salt and the keyword 200 to be registered, or may be a salt added to an arbitrary position of the keyword 200 to be registered.
  • the conversion keyword may be "AAA1", “1AAA”, or "A1AA”. good too.
  • the disclosure bit calculation unit 240 calculates the disclosure bit using the calculated conversion keyword, the disclosure bit secret key 204 and the disclosure bit length 205 . Disclosure bit calculation section 240 determines consecutive bits of disclosure bit length 205 in the data obtained using the conversion keyword and disclosure bit secret key 204 as disclosure bits.
  • Step S210 The disclosure bit calculation unit 240 acquires the frequency corresponding to the calculated disclosure bit from the frequency distribution table 207 .
  • Step S211 If the frequency could not be acquired in step S210, or if a new salt was added to the salt list, disclosure bit calculation section 240 proceeds to step S217. Otherwise, disclosed bit calculator 240 proceeds to step S212.
  • Step S212 If the frequency obtained in step S210 is equal to or higher than the maximum frequency, disclosure bit calculation section 240 proceeds to step S213. Otherwise, disclosed bit calculation section 240 proceeds to step S214.
  • Disclosure bit calculation section 240 assumes that there is no disclosure bit. After executing this step, disclosure bit calculation section 240 selects another salt or adds a new salt to the salt list.
  • Step S214 If the maximum frequency and the minimum frequency are equal, that is, if the disclosed bit frequency distribution shown in the frequency distribution table 207 is a uniform distribution, the disclosed bit calculator 240 proceeds to step S215. Otherwise, disclosure bit calculation section 240 proceeds to step S217.
  • Step S215) If the number of entries in frequency distribution table 207 is smaller than the size of the disclosure bit space, disclosure bit calculation section 240 proceeds to step S216. Otherwise, disclosure bit calculation section 240 proceeds to step S217. Note that the size of the disclosure bit space is 2 ⁇ c when the disclosure bit length 205 is c.
  • Step S216 Disclosure bit calculation section 240 assumes that there is no disclosure bit. Note that disclosure bit calculation section 240 adds a new salt to the salt list after executing this step.
  • Step S217) If there is no disclosure bit, disclosure bit calculator 240 proceeds to step S205. Otherwise, disclosed bit calculator 240 proceeds to step S218.
  • Step S2128 If a new salt is added in step S207, disclosure bit calculation section 240 proceeds to step S219. Otherwise, disclosure bit calculation section 240 proceeds to step S221.
  • Step S219) Disclosure bit calculation unit 240 adds a new salt to the entry corresponding to keyword 200 to be registered among entries in salt table 206 .
  • Step S220 The salt table registration requesting unit 270 outputs the salt table 206 .
  • Step S221 If there is no entry corresponding to the disclosed bit calculated in step S209 in the frequency distribution table 207, the disclosed bit calculator 240 proceeds to step S222. Otherwise, disclosure bit calculation section 240 proceeds to step S223. Note that the salt corresponding to the conversion keyword corresponding to the disclosure bit corresponds to the decision salt.
  • Step S222 Disclosure bit calculation section 240 sets the frequency corresponding to the disclosure bit calculated in step S209 to 0 in frequency distribution table 207 .
  • Step S223 Disclosure bit calculation section 240 adds 1 to the frequency corresponding to the disclosure bit calculated in step S209 in frequency distribution table 207 .
  • Step S224 Disclosure bit calculation section 240 outputs frequency distribution table 207 corrected in step S223 and the disclosure bits calculated in step S209. Disclosure bit calculation section 240 may update frequency distribution table 207 stored in storage section 230 to frequency distribution table 207 corrected in step S223.
  • a specific example of the process of determining the salt by the disclosure bit calculation unit 240 will be described with reference to FIG. 11 .
  • the registered keyword which is the keyword 200 is "AAA”
  • the disclosed bit calculation unit 240 calculates the disclosed bit based on the data calculated using the keyed hash function.
  • the salt table 206 each keyword and a salt corresponding to each keyword are shown, and salt s1 and salt s2 are shown as salts corresponding to the registered keyword "AAA”.
  • the disclosure bit calculation unit 240 temporarily assigns a salt and confirms the appearance frequency of disclosure bits.
  • the disclosure bit calculation unit 240 determines the salt s2 as the salt to be used for the registered keyword "AAA".
  • the disclosure bit calculation unit 240 determines the degree of bias in the frequency distribution of the disclosure bits based on the maximum frequency and the minimum frequency.
  • the magnitude of the bias in the frequency distribution of disclosed bits may be determined based on other indices such as .
  • disclosure bit calculation section 240 does not need to select a salt so that the degree of bias in the disclosure bit frequency distribution is minimized (as a specific example, the disclosure bit frequency distribution is uniform).
  • the salt may be selected so that the magnitude of the bias in the bit frequency distribution falls within a certain allowable range.
  • a specific example of the processing of the disclosure bit calculation unit 240 when the disclosure bit calculation unit 240 uses a new salt will be described with reference to FIG.
  • the disclosure bit calculation unit 240 determines the salt to be used for the registered keyword "AAA”. Further, it is assumed that the disclosure bit calculation unit 240 determines that the bias of the disclosure bit frequency distribution becomes relatively large when the salt s1 or the salt s2 is used. Therefore, first, the disclosure bit calculation unit 240 calculates the disclosure bit corresponding to the registered keyword "AAA" using the salt s3 as a new salt, and the registered client device 20 discloses the disclosure bit when the disclosure bit is disclosed.
  • the disclosure bit calculation unit 240 calculates the disclosure bit corresponding to the registered keyword "AAA" using the salt s4 as a new salt, and the registered client device 20 discloses the disclosure bit when the disclosure bit is disclosed. Find the frequency distribution of disclosed bits that are Since the obtained frequency distribution has a relatively small bias, disclosure bit calculation section 240 selects salt s4 as the salt corresponding to the registered keyword "AAA". Although a specific example of adding one salt to the salt table 206 has been shown, a plurality of salts may be added to the salt table 206 .
  • FIG. 13 is a flow chart showing an example of the operation of the search client device 30.
  • FIG. The operation of the search client device 30 will be described with reference to this figure.
  • Step S301 Disclosure bit length 205 , search keyword 200 , and salt table 206 are input to disclosure bit calculation unit 330 . Note that if the disclosure bit calculation unit 330 can refer to the frequency distribution table 207 stored in the storage unit 320, the disclosure bit calculation unit 330 may skip this step.
  • Step S302 The disclosure bit calculation unit 330 acquires the salt corresponding to the keyword 200 to be searched from the salt table 206, and uses the acquired salt to generate a salt list.
  • Step S303 If the generated salt list is empty, disclosure bit calculation section 330 proceeds to step S311. Otherwise, disclosed bit calculator 330 proceeds to step S304.
  • Step S304 The disclosure bit calculation unit 330 substitutes 0 as the salt value, and assumes that there is no disclosure bit list.
  • Step S305 Disclosure bit calculation section 330 selects, as a selected salt, one of the salts included in the salt list that has not yet been selected in the processing of this flowchart.
  • Step S306 The disclosure bit calculator 330 calculates a conversion keyword using the selected salt and the keyword 200 to be searched.
  • the conversion keyword calculation method is as described in step S208. However, the conversion keyword calculation method must be the same between the time of registration by the registration client device 20 and the time of search by the search client device 30 .
  • Step S307 Disclosure bit calculation section 330 calculates disclosure bits using the calculated conversion keyword, disclosure bit secret key 204 , and disclosure bit length 205 .
  • Step S308 The disclosed bit calculator 330 adds the calculated disclosed bits to the disclosed bit list.
  • Step S309 In the processing of this flowchart, if there is a salt that has not been selected yet in the salt list, the disclosure bit calculation unit 330 proceeds to step S305. Otherwise, disclosed bit calculator 330 proceeds to step S310.
  • Step S310 The disclosure bit calculator 330 outputs a disclosure bit list.
  • Step S311 Since the data corresponding to the keyword 200 to be searched is not registered in the confidential search server device 10, the disclosure bit calculation unit 330 ends the processing of this flowchart without searching for the data corresponding to the keyword 200.
  • FIG. 1 Since the data corresponding to the keyword 200 to be searched is not registered in the confidential search server device 10, the disclosure bit calculation unit 330 ends the processing of this flowchart without searching for the data corresponding to the keyword 200.
  • the search client device 30 searches for data corresponding to the search keyword "AAA” which is the keyword 200.
  • FIG. 14 the symbol “
  • the disclosure bit calculation unit 330 refers to the salt table 206 and calculates each disclosure bit corresponding to the search keyword "AAA” using each of all the salts corresponding to the search keyword "AAA”.
  • search request unit 350 transmits search data 307 indicating each calculated disclosure bit to secure search server device 10 .
  • the search data input section 130 receives the search data 307 and sends the received search data 307 to the data search section 140 .
  • the data search unit 140 receives the search data 307 and performs a binary comparison between each disclosure bit indicated in the received search data 307 and each disclosure bit registered in the registered data table 101 in the search query. Narrow down the disclosed bits by .
  • the tag corresponding to the narrowed down disclosure bit corresponds to the trap door corresponding to the search keyword "AAA". Since the time required for binary comparison is very short, the speed-up effect is maintained even if the number of comparisons of open bits increases.
  • each of the registered client device 20-A and the registered client device 20-B independently manages the frequency distribution table 207. It is assumed that At this time, both the frequency distribution table 207 managed by the registered client device 20-A and the frequency distribution table 207 managed by the registered client device 20-B have a relatively small bias. Therefore, the deviation of the combined distribution of the frequency distribution table 207 managed by the registered client device 20-A and the frequency distribution table 207 managed by the registered client device 20-B is relatively small.
  • the frequency distribution table 207 is stored in the confidential search server device 10.
  • the deviation of the frequency distribution of disclosed bits that are disclosed is relatively small. Similar effects can be obtained when a third party manages the frequency distribution table 207 of the registered client device 20-A and the frequency distribution table 207 of the registered client device 20-B.
  • Patent Literature 1 will be considered with reference to FIG.
  • the bias of the frequency distribution of keywords is large.
  • the risk of frequency analysis attacks is relatively low due to overlapping frequencies.
  • the choice of transformed keywords results in a wider disclosed bit space, which is relatively at risk for frequency analysis attacks because the frequency of disclosed bits is similar to that of the original keyword.
  • the salt given to the keyword is adjusted according to the appearance frequency of the already disclosed disclosure bits. At this time, the salt may be adjusted within the disclosure bit space. Therefore, in this case, it is possible to prevent the keyword from being unnecessarily divided.
  • the technique disclosed in Patent Document 1 has a problem that, if the technique is applied to the disclosed bits, the frequency distribution of the disclosed bits may be biased even if the conversion keyword is used. However, the problem is solved by applying the first embodiment to the technology disclosed in Patent Document 1.
  • FIG. 17 shows a hardware configuration example of the registration client device 20 according to this modification.
  • the registration client device 20 includes a processing circuit 98 in place of the processor 91 , the processor 91 and memory 92 , the processor 91 and auxiliary storage device 93 , or the processor 91 , memory 92 and auxiliary storage device 93 .
  • the processing circuit 98 is hardware that implements at least a part of each unit included in the registration client device 20 .
  • Processing circuitry 98 may be dedicated hardware or may be a processor that executes programs stored in memory 92 .
  • the processing circuit 98 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array) or a combination thereof.
  • Registration client device 20 may include a plurality of processing circuits that substitute for processing circuit 98 .
  • a plurality of processing circuits share the role of processing circuit 98 .
  • the registration client device 20 some functions may be implemented by dedicated hardware, and the remaining functions may be implemented by software or firmware.
  • the processing circuit 98 is implemented by hardware, software, firmware, or a combination thereof, as a specific example.
  • the processor 91, memory 92, auxiliary storage device 93, and processing circuitry 98 are collectively referred to as "processing circuitry.”
  • processing circuitry the function of each functional component of the registered client device 20 is implemented by processing circuitry.
  • Each device other than the registered client device 20 included in the secure search system 1 may also have the same configuration as that of this modified example.
  • Embodiment 1 has been described, a plurality of portions of this embodiment may be combined for implementation. Alternatively, this embodiment may be partially implemented. In addition, the present embodiment may be modified in various ways as necessary, and may be implemented in any combination as a whole or in part.
  • the above-described embodiments are essentially preferable examples, and are not intended to limit the scope of the present disclosure, its applications, and uses. The procedures described using flowcharts and the like may be changed as appropriate.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

確率的暗号に基づく秘匿検索システムにおいて、登録クライアント装置(20)は、秘匿検索されるデータ(201)と、データ(201)に対応するキーワード(200)とを秘匿検索サーバ装置に登録し、秘匿検索サーバ装置に登録した各キーワード(200)と、秘匿検索サーバ装置に登録した各キーワード(200)に対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである開示ビットを開示する。登録クライアント装置(20)は、秘匿検索サーバ装置に登録するキーワード(200)である登録キーワードに対応するソルトを決定ソルトとして決定する開示ビット計算部(240)を備える。開示ビット計算部(240)は、登録クライアント装置(20)が既に開示している開示ビットと、登録キーワードと決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して決定ソルトを決定する。

Description

秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
 本開示は、秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラムに関する。
 クラウドシステムにおいて、顧客管理下にあるクライアントを信用することができるが、第三者であるパブリッククラウドの管理者を完全には信用することができない。そこで、クラウドサーバのデータとその処理過程を保護するために暗号化したまま検索が可能である検索可能暗号技術を用いるが、トラップドアとタグとを網羅的に比較する従来の検索可能暗号技術には処理速度が低速であるという課題がある。
 そこで、確率的暗号に基づく検索可能暗号技術において、キーワードから確定的に求めた値である開示ビットを用いて、タグとトラップドアとの比較空間を削減する高速化法が存在する。当該高速化法において、開示ビットが長いほど比較空間が小さくなるために高速化効果が大きくなる。しかしながら、開示ビットが長いほど開示ビットの頻度分布とキーワードの頻度分布とが近づくため、開示ビットが長いほど頻度分析攻撃に対するリスクが上昇するという課題がある。なお、開示ビットが短い場合において、頻度分析攻撃に対するリスクは小さいものの比較空間があまり小さくならないために高速化効果が小さい。
特許第5442161号公報
 特許文献1は、確定的暗号に基づく検索可能暗号技術において高速化効果を維持しつつ頻度分析攻撃に対するリスクを小さくするために、キーワードの出現頻度に比例した数の変換キーワードを用意し、変換確率に従って用意した変換キーワードのいずれかにキーワードを置換し、置換した変換キーワードを暗号化した上でサーバ装置に登録する技術を開示している。
 しかしながら、特許文献1が開示する技術によれば、キーワードの出現頻度が事前に必要であるという課題がある。
 本開示は、確率的暗号に基づく検索可能暗号技術において、キーワードの出現頻度を事前に必要とせずに、高速化効果を維持しつつ頻度分析攻撃に対するリスクを小さくすることを目的とする。
 本開示に係る秘匿検索システムは、
 確率的暗号に基づく検索可能暗号技術を採用する秘匿検索システムであって、
 秘匿検索される少なくとも1つのデータと、前記少なくとも1つのデータの各々に対応する少なくとも1つのキーワードとを秘匿検索サーバ装置に登録し、前記秘匿検索サーバ装置に登録した各キーワードと、前記秘匿検索サーバ装置に登録した各キーワードに対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである開示ビットを開示する登録クライアント装置であって、
 前記秘匿検索サーバ装置に登録するキーワードである登録キーワードに対応するソルトを決定ソルトとして決定する開示ビット計算部
を備え、
 前記開示ビット計算部は、前記登録クライアント装置が既に開示している開示ビットと、前記登録キーワードと前記決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して前記決定ソルトを決定する登録クライアント装置
を備える。
 本開示によれば、確率的暗号に基づく検索可能暗号技術を採用する秘匿検索システムは登録クライアント装置を備え、登録クライアント装置は、登録クライアント装置が既に開示している開示ビットと、登録キーワードと決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して決定ソルトを決定する開示ビット計算部を備える。ここで、登録キーワードは秘匿検索サーバ装置に登録するキーワードであり、決定ソルトは登録キーワードに対応するソルトである。従って、本開示によれば、確率的暗号に基づく検索可能暗号技術において、キーワードの出現頻度を事前に必要とせずに、高速化効果を維持しつつ頻度分析攻撃に対するリスクを小さくすることができる。
実施の形態1に係る秘匿検索システム1の構成例を示す図。 実施の形態1に係る秘匿検索サーバ装置10の構成例を示す図。 実施の形態1に係る登録クライアント装置20の構成例を示す図。 実施の形態1に係る検索クライアント装置30の構成例を示す図。 実施の形態1に係るソルト表管理装置40の構成例を示す図。 実施の形態1に係る登録クライアント装置20のハードウェア構成例を示す図。 実施の形態1に係る開示ビット計算部240の動作を示すフローチャート。 実施の形態1に係る登録クライアント装置20の動作を示すフローチャート。 実施の形態1に係る登録クライアント装置20の動作を示すフローチャート。 実施の形態1に係る登録クライアント装置20の動作を示すフローチャート。 実施の形態1に係る開示ビット計算部240の処理を説明する図。 実施の形態1に係る開示ビット計算部240の処理を説明する図。 実施の形態1に係る検索クライアント装置30の動作を示すフローチャート。 実施の形態1に係る検索処理を説明する図。 実施の形態1の効果を説明する図。 実施の形態1の効果を説明する図。 実施の形態1の変形例に係る登録クライアント装置20のハードウェア構成例を示す図。
 実施の形態の説明及び図面において、同じ要素及び対応する要素には同じ符号を付している。同じ符号が付された要素の説明は、適宜に省略又は簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。また、「部」を、「回路」、「工程」、「手順」、「処理」又は「サーキットリー」に適宜読み替えてもよい。
 実施の形態1.
 以下、本実施の形態について、図面を参照しながら詳細に説明する。
***構成の説明***
 図1は、本実施の形態に係る秘匿検索システム1の構成例を示している。秘匿検索システム1は、確率的暗号に基づく検索可能暗号技術を採用し、また、本図に示すように、秘匿検索サーバ装置10と、登録クライアント装置20と、検索クライアント装置30と、ソルト表管理装置40とを備える。秘匿検索システム1が備える各装置は、ネットワーク50を介して通信可能に接続されている。秘匿検索システム1が備える各装置は複数存在してもよい。秘匿検索システム1が備える少なくとも2つの装置は、適宜一体的に構成されていてもよい。
 図2は、秘匿検索サーバ装置10の構成例を示している。秘匿検索サーバ装置10は、登録データ入力部110と、記憶部120と、検索データ入力部130と、データ検索部140と、検索結果出力部150とを備える。
 登録データ入力部110は、登録データ212を受け付け、受け付けた登録データ212を登録データテーブル101に登録する。
 登録データ212は、開示ビットと、暗号化キーワードと、暗号化データとから成るデータである。開示ビットは、外部に開示しているデータである。暗号化キーワードは、暗号化データを検索する際に用いられるデータであって、暗号化されたキーワード200である。暗号化データは、暗号化されたデータ201である。
 登録データテーブル101は、開示ビットと、暗号化キーワードと、暗号化データとから成るデータを管理する。登録データテーブル101は複数のデータを管理してもよい。
 記憶部120は、登録データテーブル101を記憶する。
 検索データ入力部130は、検索データ307を受け付け、受け付けた検索データ307をデータ検索部140に送る。
 検索データ307は、開示ビットと暗号化キーワードとから成るデータであって、登録データテーブル101に登録されているデータを検索する際に用いられるデータである。
 データ検索部140は、検索データ入力部130から検索データ307を受け取り、受け取った検索データ307に対応するデータを登録データテーブル101から検索し、検索した結果を示す検索結果309を生成し、生成した検索結果309を検索結果出力部150に送る。
 検索結果出力部150は、データ検索部140から検索結果309を受け取り、受け取った検索結果309を外部に出力する。
 図3は、登録クライアント装置20の構成例を示している。登録クライアント装置20は、データ入力部220と、記憶部230と、開示ビット計算部240と、登録データ生成部250と、データ登録要求部260と、ソルト表登録要求部270とを備える。登録クライアント装置20は、秘匿検索される少なくとも1つのデータ201と、少なくとも1つのデータ201の各々に対応する少なくとも1つのキーワード200とを秘匿検索サーバ装置10に登録する。また、登録クライアント装置20は開示ビットを開示する。開示ビットは、秘匿検索サーバ装置10に登録した各キーワード200と、秘匿検索サーバ装置10に登録した各キーワード200に対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである。登録クライアント装置20は、少なくとも秘匿検索サーバ装置10に開示ビットを開示する。ここで、データ201及びキーワード200を秘匿検索サーバ装置10に登録することには、暗号化したデータ201及びキーワード200を秘匿検索サーバ装置10に登録することが含まれる。また、登録クライアント装置20が開示ビットを開示することには、秘匿検索サーバ装置10が開示ビットを開示することが含まれる。
 データ入力部220は、データ201とキーワード200とを受け付け、受け付けたデータ201とキーワード200とを記憶部230に記録する。
 データ201は、秘匿検索サーバ装置10に登録するデータであり、平文のデータである。
 キーワード200は、データ201を検索するためのキーワードであり、平文のデータである。
 記憶部230は、データ201と、キーワード200と、開示ビット用秘密鍵204と、開示ビット長205と、ソルト表206と、頻度分布表207と、秘匿検索用暗号鍵208とを記憶する。
 開示ビット用秘密鍵204は、開示ビットを計算する際に用いられる秘密鍵を示すデータである。
 開示ビット長205は、開示ビットのデータサイズを示すデータである。
 ソルト表206は、開示ビット211を計算する際に用いられるソルトの一覧を示すデータである。ソルト表206において、キーワードごとにキーワードに対応するソルトがまとめられていてもよい。なお、ソルト表206は秘匿検索サーバ装置10には開示されない。
 頻度分布表207は、開示ビット頻度分布表とも呼ばれ、登録クライアント装置20が開示した開示ビットの頻度分布を示すデータである。
 秘匿検索用暗号鍵208は、データ201とキーワード200とを暗号化する際に用いられる暗号鍵である。
 開示ビット計算部240は、頻度分布表207を参照し、キーワード200と、開示ビット用秘密鍵204と、ソルト表206に示されているソルトとを用いて開示ビット211を計算する。また、開示ビット計算部240は、秘匿検索サーバ装置10に登録するキーワード200である登録キーワードに対応するソルトを決定ソルトとして決定する。この際、開示ビット計算部240は、登録クライアント装置20が既に開示している開示ビットと、登録キーワードと決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して決定ソルトを決定する。開示ビット計算部240は、ソルト表管理装置40の記憶部420が登録キーワードに対応するソルトとして管理しているソルトに基づいて決定ソルトを決定してもよい。開示ビット計算部240は、ソルト表管理装置40の記憶部420が登録キーワードに対応するソルトとして管理しているソルト以外のソルトを決定ソルトとして決定してもよい。開示ビット計算部240は、登録クライアント装置20が登録するキーワード200の出現頻度が既知である場合において、既知である出現頻度に基づいて、開示ビット計算部240が決定ソルトとして決定するソルトの候補を計算してもよい。登録クライアント装置20が登録するキーワード200の出現頻度が既知であることには、登録クライアント装置20が登録するキーワード200の出現頻度が推定可能であることが含まれる。
 登録データ生成部250は、キーワード200とデータ201と秘匿検索用暗号鍵208とを用いて暗号化キーワードと暗号化データとを生成する。また、登録データ生成部250は、開示ビット計算部240から開示ビット211を受け取り、受け取った開示ビット211と、生成した暗号化キーワード及び暗号化データとを用いて登録データ212を生成し、生成した登録データ212をデータ登録要求部260に送る。
 データ登録要求部260は、登録データ生成部250から登録データ212を受け取り、受け取った登録データ212を秘匿検索サーバ装置10に送信し、登録データ212を登録することを秘匿検索サーバ装置10に要求する。
 ソルト表登録要求部270は、記憶部230が記憶しているソルト表206をソルト表管理装置40に出力する。
 図4は、検索クライアント装置30の構成例を示している。検索クライアント装置30は、キーワード入力部310と、記憶部320と、開示ビット計算部330と、検索データ生成部340と、検索要求部350と、検索結果出力部360と、ソルト表要求部370とを備える。
 キーワード入力部310は、キーワード200を受け付け、受け付けたキーワード200を記憶部320に記憶し、また、受け付けたキーワード200を開示ビット計算部330に送る。
 記憶部320は、キーワード200と、開示ビット用秘密鍵204と、開示ビット長205と、ソルト表206と、秘匿検索用暗号鍵208と、秘匿検索用復号鍵209とを記憶する。
 秘匿検索用復号鍵209は、検索結果309を復号する際に用いられる復号鍵を示すデータである。
 開示ビット計算部330は、キーワード入力部310からキーワード200を受け取り、受け取ったキーワード200と、開示ビット用秘密鍵204とを用いて開示ビット305を計算する。なお、開示ビット計算部330は、秘匿検索サーバ装置10に登録されているデータ201を検索する際に、秘匿検索サーバ装置10に登録されている各キーワード200に対応するソルトの全てを用いてもよい。この際、メモリの使用量削減を目的として、記憶部320は、ソルト表206の代わりに、秘匿検索サーバ装置10に登録されている各キーワード200に対応するソルトの全てを重複なく記憶していてもよい。
 検索データ生成部340は、キーワード200と秘匿検索用暗号鍵208とを用いて暗号化キーワードを生成する。また、検索データ生成部340は、開示ビット計算部330から開示ビット305を受け取り、受け取った開示ビット305と、生成した暗号化キーワードとを用いて検索データ307を生成し、生成した検索データ307を検索要求部350に送る。
 検索要求部350は、検索データ生成部340から検索データ307を受け取り、受け取った検索データ307を秘匿検索サーバ装置10に送信し、検索データ307に対応するデータを検索することを秘匿検索サーバ装置10に要求する。また、検索要求部350は、送信した検索データ307に対応する検索結果309を秘匿検索サーバ装置10から受け取り、受け取った検索結果309を検索結果出力部360に送る。
 検索結果出力部360は、検索要求部350から検索結果309を受け取り、秘匿検索用復号鍵209を用いて受け取った検索結果309を復号することによりデータ201を生成し、生成したデータ201を出力する。
 ソルト表要求部370は、ソルト表要求データ301をソルト表管理装置40に送信する。また、ソルト表要求部370は、送信したソルト表要求データ301に対応するソルト表206をソルト表管理装置40から受け取り、受け取ったソルト表206を記憶部320に記録する。
 ソルト表要求データ301は、ソルト表206を要求していることを示すデータである。ソルト表要求データ301は、ソルト表管理装置40が管理しているソルト表206に示されているソルトのうちあるキーワードに対応するソルトのみを要求していることを示す情報であってもよく、ソルト表管理装置40が管理しているソルト表206に示されているソルトを重複なく要求していることを示す情報であってもよい。
 図5は、ソルト表管理装置40の構成例を示している。ソルト表管理装置40は、ソルト表入力部410と、記憶部420と、ソルト表出力部430とを備える。
 ソルト表入力部410は、登録クライアント装置20からソルト表206を受け取り、受け取ったソルト表206を記憶部420に記録する。ソルト表入力部410は、登録クライアント装置20が登録するキーワード200の出現頻度が既知である場合において、既知である出現頻度に基づいて、開示ビット計算部240が決定ソルトとして決定するソルトの候補を計算してもよい。
 記憶部420は、ソルト表206を記憶する。また、記憶部420は秘匿検索サーバ装置10に登録されている各キーワード200に対応するソルトを管理する。
 ソルト表出力部430は、検索クライアント装置30からソルト表要求データ301を受け取り、受け取ったソルト表要求データ301に対応するソルト表206であって、記憶部420が記憶しているソルト表206を、ソルト表要求データ301を送信した検索クライアント装置30に送信する。
 図6は、本実施の形態に係る登録クライアント装置20のハードウェア構成例を示している。登録クライアント装置20は、コンピュータから成る。登録クライアント装置20は、複数のコンピュータから成ってもよい。
 登録クライアント装置20は、本図に示すように、プロセッサ91と、メモリ92と、補助記憶装置93と、入出力IF(Interface)94と、通信装置95等のハードウェアを備えるコンピュータである。これらのハードウェアは、信号線99を介して適宜接続されている。
 プロセッサ91は、演算処理を行うIC(Integrated Circuit)であり、かつ、コンピュータが備えるハードウェアを制御する。プロセッサ91は、具体例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、又はGPU(Graphics Processing Unit)である。
 登録クライアント装置20は、プロセッサ91を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ91の役割を分担する。
 メモリ92は、典型的には、揮発性の記憶装置である。メモリ92は、主記憶装置又はメインメモリとも呼ばれる。メモリ92は、具体例として、RAM(Random Access Memory)である。メモリ92に記憶されたデータは、必要に応じて補助記憶装置93に保存される。
 補助記憶装置93は、典型的には、不揮発性の記憶装置である。補助記憶装置93は、具体例として、ROM(Read Only Memory)、HDD(Hard Disk Drive)、又はフラッシュメモリである。補助記憶装置93に記憶されたデータは、必要に応じてメモリ92にロードされる。
 メモリ92及び補助記憶装置93は一体的に構成されていてもよい。
 入出力IF94は、入力装置及び出力装置が接続されるポートである。入出力IF94は、具体例として、USB(Universal Serial Bus)端子である。入力装置は、具体例として、キーボード及びマウスである。出力装置は、具体例として、ディスプレイである。
 通信装置95は、レシーバ及びトランスミッタである。通信装置95は、具体例として、通信チップ又はNIC(Network Interface Card)である。
 登録クライアント装置20の各部は、他の装置等と通信する際に、入出力IF94及び通信装置95を適宜用いてもよい。
 補助記憶装置93は、秘匿検索プログラムを記憶している。秘匿検索プログラムは、登録クライアント装置20が備える各部の機能をコンピュータに実現させるプログラムである。秘匿検索プログラムは、メモリ92にロードされて、プロセッサ91によって実行される。登録クライアント装置20が備える各部の機能は、ソフトウェアにより実現される。
 秘匿検索プログラムを実行する際に用いられるデータと、秘匿検索プログラムを実行することによって得られるデータ等は、記憶装置に適宜記憶される。登録クライアント装置20の各部は、適宜記憶装置を利用する。記憶部230は記憶装置から成る。記憶装置は、具体例として、メモリ92と、補助記憶装置93と、プロセッサ91内のレジスタと、プロセッサ91内のキャッシュメモリとの少なくとも1つから成る。なお、データと、情報とは、同等の意味を有することもある。記憶装置は、コンピュータと独立したものであってもよい。
 メモリ92及び補助記憶装置93の機能は、他の記憶装置によって実現されてもよい。
 秘匿検索プログラムは、コンピュータが読み取り可能な不揮発性の記録媒体に記録されていてもよい。不揮発性の記録媒体は、具体例として、光ディスク又はフラッシュメモリである。秘匿検索プログラムは、プログラムプロダクトとして提供されてもよい。
 秘匿検索システム1が備える登録クライアント装置20以外の各装置のハードウェア構成は、登録クライアント装置20のハードウェア構成と同様であってもよい。
***動作の説明***
 秘匿検索システム1を構成する各装置の動作手順は、秘匿検索方法に相当する。また、秘匿検索システム1を構成する各装置の動作を実現するプログラムは、秘匿検索プログラムに相当する。秘匿検索プログラムは、秘匿検索システム1を構成する各装置において動作するプログラムの総称である。
 以下、本開示の特徴的な動作例を主に説明する。以下で説明する動作に加え、秘匿検索システム1は公知の技術を適宜採用して動作する。
 図7は、開示ビット計算部240が開示ビットの最大頻度及び最小頻度を取得する処理の一例を示すフローチャートである。本図を参照して開示ビット計算部240の動作を説明する。
(ステップS101)
 開示ビット計算部240に、頻度分布表207が入力される。なお、記憶部230が記憶している頻度分布表207を開示ビット計算部240が参照することができる場合、開示ビット計算部240は本ステップをスキップしてもよい。
(ステップS102)
 参照した頻度分布表207にエントリがない場合、開示ビット計算部240はステップS103に進む。それ以外の場合、開示ビット計算部240はステップS104に進む。
(ステップS103)
 開示ビット計算部240は、最大頻度がないことと、最小頻度がないことを示す情報を出力する。
(ステップS104)
 開示ビット計算部240は、頻度分布表207が示す頻度から最大頻度を特定する。
(ステップS105)
 開示ビット計算部240は、頻度分布表207が示す頻度から最小頻度を特定する。
(ステップS106)
 開示ビット計算部240は、特定した最大頻度及び最小頻度を出力する。なお、開示ビット計算部240は、特定した最大頻度及び最小頻度を開示ビット計算部240の内部において出力してもよい。
 図8から図10は、登録クライアント装置20の動作の一例を示すフローチャートである。本図を参照して登録クライアント装置20の動作を説明する。
(ステップS201)
 開示ビット計算部240は、頻度分布表207が示す最大頻度及び最小頻度を取得する。開示ビット計算部240は、本ステップにおいて図7に示す処理を実行する。
(ステップS202)
 開示ビット計算部240に、登録するキーワード200と、開示ビット用秘密鍵204と、開示ビット長205と、ソルト表206と、頻度分布表207とが入力される。なお、記憶部230が記憶しているこれらのデータを開示ビット計算部240が参照することができる場合、開示ビット計算部240は本ステップをスキップしてもよい。
(ステップS203)
 開示ビット計算部240は、ソルト表206から登録するキーワード200に対応するソルトを取得し、取得したソルトを用いてソルトリストを生成する。
(ステップS204)
 開示ビット計算部240は、ソルトの値として0を代入し、開示ビットがないものとする。
(ステップS205)
 本フローチャートの処理においてまだ選択していないソルトがステップS203において生成したソルトリストにある場合、開示ビット計算部240はステップS206に進む。それ以外の場合、開示ビット計算部240はステップS207に進む。
(ステップS206)
 開示ビット計算部240は、ソルトリストが含むソルトのうち、本フローチャートの処理においてまだ選択していないソルトのいずれかを選択ソルトとして選択する。
(ステップS207)
 開示ビット計算部240は、ソルトリストに新たなソルトを追加する。ここで、新たなソルトはソルトリストが含んでいるソルトと重複しないソルトとする。開示ビット計算部240は新たなソルトを選択ソルトとして選択する。
(ステップS208)
 開示ビット計算部240は、選択ソルトと登録するキーワード200とを用いて変換キーワードを計算する。変換キーワードは、選択ソルトと登録するキーワード200との論理和であってもよく、登録するキーワード200の任意の位置にソルトを追加したものであってもよい。具体例として、登録するキーワード200が「AAA」でありソルトが「1」である場合において、変換キーワードは、「AAA1」であっても、「1AAA」であっても、「A1AA」であってもよい。
(ステップS209)
 開示ビット計算部240は、計算した変換キーワードと、開示ビット用秘密鍵204と、開示ビット長205とを用いて開示ビットを計算する。開示ビット計算部240は、変換キーワードと、開示ビット用秘密鍵204とを用いて求めたデータのうち、開示ビット長205の長さの連続するビットを開示ビットとする。
(ステップS210)
 開示ビット計算部240は、頻度分布表207から、計算した開示ビットに対応する頻度を取得する。
(ステップS211)
 ステップS210において頻度を取得することができなかった場合、又はソルトリストに新たなソルトを追加した場合、開示ビット計算部240はステップS217に進む。それ以外の場合、開示ビット計算部240はステップS212に進む。
(ステップS212)
 ステップS210において取得した頻度が最大頻度以上である場合、開示ビット計算部240はステップS213に進む。それ以外の場合、開示ビット計算部240はステップS214に進む。
(ステップS213)
 開示ビット計算部240は、開示ビットがないものとする。なお、開示ビット計算部240は、本ステップを実行した後に他のソルトを選択するか、ソルトリストに新たなソルトを追加する。
(ステップS214)
 最大頻度と最小頻度とが等しい場合、即ち、頻度分布表207に示されている開示ビットの頻度分布が一様分布である場合、開示ビット計算部240はステップS215に進む。それ以外の場合、開示ビット計算部240はステップS217に進む。
(ステップS215)
 頻度分布表207のエントリの数が開示ビット空間のサイズよりも小さい場合、開示ビット計算部240はステップS216に進む。それ以外の場合、開示ビット計算部240はステップS217に進む。なお、開示ビット空間のサイズは、開示ビット長205をcとしたとき2^cである。
(ステップS216)
 開示ビット計算部240は開示ビットがないものとする。なお、開示ビット計算部240は、本ステップを実行した後にソルトリストに新たなソルトを追加する。
(ステップS217)
 開示ビットがない場合、開示ビット計算部240はステップS205に進む。それ以外の場合、開示ビット計算部240はステップS218に進む。
(ステップS218)
 ステップS207において新たなソルトを追加した場合、開示ビット計算部240はステップS219に進む。それ以外の場合、開示ビット計算部240はステップS221に進む。
(ステップS219)
 開示ビット計算部240は、ソルト表206のエントリのうち登録するキーワード200に対応するエントリに新たなソルトを追加する。
(ステップS220)
 ソルト表登録要求部270は、ソルト表206を出力する。
(ステップS221)
 ステップS209において計算した開示ビットに対応するエントリが頻度分布表207にない場合、開示ビット計算部240はステップS222に進む。それ以外の場合、開示ビット計算部240はステップS223に進む。なお、当該開示ビットに対応する変換キーワードに対応するソルトは決定ソルトに当たる。
(ステップS222)
 開示ビット計算部240は、頻度分布表207において、ステップS209において計算した開示ビットに対応する頻度を0とする。
(ステップS223)
 開示ビット計算部240は、頻度分布表207において、ステップS209において計算した開示ビットに対応する頻度に1を加算する。
(ステップS224)
 開示ビット計算部240は、ステップS223において修正した頻度分布表207と、ステップS209において計算した開示ビットとを出力する。開示ビット計算部240は、記憶部230が記憶している頻度分布表207を、ステップS223において修正した頻度分布表207に更新してもよい。
 図11を用いて、開示ビット計算部240がソルトを決定する処理の具体例を説明する。ここで、キーワード200である登録キーワードは「AAA」であるものとし、開示ビット計算部240は鍵付きハッシュ関数を用いて計算したデータに基づいて開示ビットを計算するものとする。また、ソルト表206において、各キーワードと各キーワードに対応するソルトとが示されており、登録キーワード「AAA」に対応するソルトとしてソルトsとソルトsとが示されている。
 開示ビット計算部240は、ソルトを仮で割り当てて開示ビットの出現頻度を確認する。具体的には、ソルトsを用いて開示ビットを計算する場合、当該開示ビットを開示すると登録クライアント装置20が開示している開示ビットの頻度分布の偏りが比較的大きくなる。そのため、この場合において頻度分析攻撃を受けるリスクが高くなる。一方、ソルトsを用いて開示ビットを計算する場合、当該開示ビットを開示しても登録クライアント装置20が開示している開示ビットの頻度分布の偏りが比較的小さいままである。そのため、この場合において頻度分析攻撃を受けるリスクが低いままである。
 従って、本例において、開示ビット計算部240は登録キーワード「AAA」に対して使用するソルトをソルトsに決定する。
 なお、フローチャートを用いて最大頻度及び最小頻度に基づいて開示ビット計算部240が開示ビットの頻度分布の偏りの大きさを判断する具体例を説明したが、開示ビット計算部240は分散の大きさ等の他の指標に基づいて開示ビットの頻度分布の偏りの大きさを判断してもよい。また、開示ビット計算部240は、開示ビットの頻度分布の偏りの大きさが最小になるよう(具体例として、開示ビットの頻度分布が一様になるよう)ソルトを選択する必要はなく、開示ビットの頻度分布の偏りの大きさがある許容範囲内に収まるようソルトを選択してもよい。
 図12を用いて開示ビット計算部240が新たなソルトを用いる場合における開示ビット計算部240の処理の具体例を説明する。ここで、開示ビット計算部240は登録キーワード「AAA」に対して使用するソルトを決定するものとする。また、ソルトs又はソルトsを用いると開示ビットの頻度分布の偏りが比較的大きくなると、開示ビット計算部240が判断したものとする。
 そこで、まず、開示ビット計算部240は、新たなソルトとしてソルトsを用いて登録キーワード「AAA」に対応する開示ビットを計算し、当該開示ビットを開示した場合における登録クライアント装置20が開示している開示ビットの頻度分布を求める。求めた頻度分布において偏りが比較的大きいため、開示ビット計算部240はソルトsを選択しない。
 次に、開示ビット計算部240は、新たなソルトとしてソルトsを用いて登録キーワード「AAA」に対応する開示ビットを計算し、当該開示ビットを開示した場合における登録クライアント装置20が開示している開示ビットの頻度分布を求める。求めた頻度分布において偏りが比較的小さいため、開示ビット計算部240は、登録キーワード「AAA」に対応するソルトとしてソルトsを選択する。
 なお、ソルト表206にソルトを1つ追加する具体例を示したが、ソルト表206に複数のソルトを追加してもよい。
 図13は、検索クライアント装置30の動作の一例を示すフローチャートである。本図を参照して検索クライアント装置30の動作を説明する。
(ステップS301)
 開示ビット計算部330に、開示ビット長205と、検索するキーワード200と、ソルト表206とが入力される。なお、記憶部320が記憶している頻度分布表207を開示ビット計算部330が参照することができる場合、開示ビット計算部330は本ステップをスキップしてもよい。
(ステップS302)
 開示ビット計算部330は、ソルト表206から検索するキーワード200に対応するソルトを取得し、取得したソルトを用いてソルトリストを生成する。
(ステップS303)
 生成したソルトリストが空である場合、開示ビット計算部330はステップS311に進む。それ以外の場合、開示ビット計算部330はステップS304に進む。
(ステップS304)
 開示ビット計算部330は、ソルトの値として0を代入し、開示ビットリストがないものとする。
(ステップS305)
 開示ビット計算部330は、ソルトリストが含むソルトのうち、本フローチャートの処理においてまだ選択していないソルトのいずれかを選択ソルトとして選択する。
(ステップS306)
 開示ビット計算部330は、選択ソルトと検索するキーワード200とを用いて変換キーワードを計算する。変換キーワードの計算方法はステップS208で説明した通りである。ただし、登録クライアント装置20による登録時と検索クライアント装置30による検索時との間で変換キーワードの計算方法が一致していなければならない。
(ステップS307)
 開示ビット計算部330は、計算した変換キーワードと、開示ビット用秘密鍵204と、開示ビット長205とを用いて開示ビットを計算する。
(ステップS308)
 開示ビット計算部330は、計算した開示ビットを開示ビットリストに追加する。
(ステップS309)
 本フローチャートの処理においてまだ選択していないソルトがソルトリストにある場合、開示ビット計算部330はステップS305に進む。それ以外の場合、開示ビット計算部330はステップS310に進む。
(ステップS310)
 開示ビット計算部330は、開示ビットリストを出力する。
(ステップS311)
 検索するキーワード200に対応するデータが秘匿検索サーバ装置10に登録されていないため、開示ビット計算部330は、キーワード200に対応するデータを検索せずに本フローチャートの処理を終了する。
 図14を用いて検索時に実行される処理の具体例を説明する。ここで、検索クライアント装置30はキーワード200である検索キーワード「AAA」に対応するデータを検索するものとする。なお、図14において記号「||」は文字列同士の連結を意味する。即ち、「S1||AAA」はソルトである「S1」をキーワードである「AAA」の先頭に追加することを意味する。
 まず、開示ビット計算部330は、ソルト表206を参照し、検索キーワード「AAA」に対応する全てのソルトの各々を用いて検索キーワード「AAA」に対応する各開示ビットを計算する。
 次に、検索要求部350は、計算した各開示ビットを示す検索データ307を秘匿検索サーバ装置10に送信する。
 次に、検索データ入力部130は検索データ307を受け取り、受け取った検索データ307をデータ検索部140に送る。
 次に、データ検索部140は、検索データ307を受け取り、検索クエリにおいて、受け取った検索データ307に示される各開示ビットと、登録データテーブル101に登録されている各開示ビットとをバイナリ比較することによって開示ビットを絞り込む。ここで、絞り込んだ開示ビットに対応するタグは検索キーワード「AAA」に対応するトラップドアに当たる。なお、バイナリ比較に要する時間は非常に短いため、開示ビットの比較数が増えても高速化効果は維持される。
***実施の形態1の効果の説明***
 以上のように、実施の形態1によれば、確率的暗号に基づく検索可能暗号技術において、キーワードの出現頻度を事前に必要とせずに、高速化効果を維持しつつ頻度分析攻撃に対するリスクを小さくすることができる。
 また、図15を用いて実施の形態1の効果を説明する。秘匿検索システム1が登録クライアント装置20-Aと登録クライアント装置20-Bとを備える場合において、登録クライアント装置20-Aと登録クライアント装置20-Bとの各々が独立して頻度分布表207を管理しているものとする。このとき、登録クライアント装置20-Aが管理している頻度分布表207と登録クライアント装置20-Bが管理している頻度分布表207とのいずれにおいても偏りが比較的小さい。そのため、登録クライアント装置20-Aが管理している頻度分布表207と、登録クライアント装置20-Bが管理している頻度分布表207とを合成した分布の偏りも比較的小さい。即ち、実施の形態1によれば、登録クライアント装置20-Aと登録クライアント装置20-Bとの各々が独立して頻度分布表207を管理している場合においても、秘匿検索サーバ装置10に保存される開示ビットの頻度分布の偏りが比較的小さくなる。なお、第三者が登録クライアント装置20-Aの頻度分布表207と登録クライアント装置20-Bの頻度分布表207とを管理する場合においても同様の効果が得られる。
 また、図16を用いて特許文献1が開示する技術を考察する。ここで、キーワードの頻度分布の偏りが大きいものとする。当該技術において、開示ビット空間が極端に狭いと、頻度が重なるために頻度分析攻撃に対するリスクが比較的低い。しかしながら、変換キーワードの選択によっては開示ビット空間が広くなり、開示ビット空間が広いと、開示ビットの頻度が元のキーワードの頻度と類似するために頻度分析攻撃に対するリスクが比較的高い。
 また、特許文献1が開示する技術に対して実施の形態1を適用する場合を考える。この場合において、既に開示している開示ビットの出現頻度に応じてキーワードに付与するソルトを調整する。この際、開示ビット空間内でソルトを調整してもよい。そのため、この場合において、キーワードを不要に分割することを防ぐことができる。即ち、特許文献1が開示する技術に実施の形態1を適用することにより、変換キーワード数を削減することができる。
 なお、特許文献1が開示する技術には当該技術を開示ビットに対して適用すると、変換キーワードに置換しても開示ビットの頻度分布に偏りが生じる可能性があるという課題がある。しかしながら、特許文献1が開示する技術に実施の形態1を適用することにより当該課題は解消される。
***他の構成***
<変形例1>
 図17は、本変形例に係る登録クライアント装置20のハードウェア構成例を示している。
 登録クライアント装置20は、プロセッサ91、プロセッサ91とメモリ92、プロセッサ91と補助記憶装置93、あるいはプロセッサ91とメモリ92と補助記憶装置93とに代えて、処理回路98を備える。
 処理回路98は、登録クライアント装置20が備える各部の少なくとも一部を実現するハードウェアである。
 処理回路98は、専用のハードウェアであってもよく、また、メモリ92に格納されるプログラムを実行するプロセッサであってもよい。
 処理回路98が専用のハードウェアである場合、処理回路98は、具体例として、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はこれらの組み合わせである。
 登録クライアント装置20は、処理回路98を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路98の役割を分担する。
 登録クライアント装置20において、一部の機能が専用のハードウェアによって実現されて、残りの機能がソフトウェア又はファームウェアによって実現されてもよい。
 処理回路98は、具体例として、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせにより実現される。
 プロセッサ91とメモリ92と補助記憶装置93と処理回路98とを、総称して「プロセッシングサーキットリー」という。つまり、登録クライアント装置20の各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
 秘匿検索システム1が備える登録クライアント装置20以外の各装置についても、本変形例と同様の構成であってもよい。
***他の実施の形態***
 実施の形態1について説明したが、本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、本実施の形態を部分的に実施しても構わない。その他、本実施の形態は、必要に応じて種々の変更がなされても構わず、全体としてあるいは部分的に、どのように組み合わせて実施されても構わない。
 なお、前述した実施の形態は、本質的に好ましい例示であって、本開示と、その適用物と、用途の範囲とを制限することを意図するものではない。フローチャート等を用いて説明した手順は、適宜変更されてもよい。
 1 秘匿検索システム、10 秘匿検索サーバ装置、101 登録データテーブル、110 登録データ入力部、120 記憶部、130 検索データ入力部、140 データ検索部、150 検索結果出力部、20 登録クライアント装置、200 キーワード、201 データ、204 開示ビット用秘密鍵、205 開示ビット長、206 ソルト表、207 頻度分布表、208 秘匿検索用暗号鍵、209 秘匿検索用復号鍵、211 開示ビット、212 登録データ、220 データ入力部、230 記憶部、240 開示ビット計算部、250 登録データ生成部、260 データ登録要求部、270 ソルト表登録要求部、30 検索クライアント装置、301 ソルト表要求データ、305 開示ビット、307 検索データ、309 検索結果、310 キーワード入力部、320 記憶部、330 開示ビット計算部、340 検索データ生成部、350 検索要求部、360 検索結果出力部、370 ソルト表要求部、40 ソルト表管理装置、410 ソルト表入力部、420 記憶部、430 ソルト表出力部、50 ネットワーク、91 プロセッサ、92 メモリ、93 補助記憶装置、94 入出力IF、95 通信装置、98 処理回路、99 信号線。

Claims (9)

  1.  確率的暗号に基づく検索可能暗号技術を採用する秘匿検索システムであって、
     秘匿検索される少なくとも1つのデータと、前記少なくとも1つのデータの各々に対応する少なくとも1つのキーワードとを秘匿検索サーバ装置に登録し、前記秘匿検索サーバ装置に登録した各キーワードと、前記秘匿検索サーバ装置に登録した各キーワードに対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである開示ビットを開示する登録クライアント装置であって、
     前記秘匿検索サーバ装置に登録するキーワードである登録キーワードに対応するソルトを決定ソルトとして決定する開示ビット計算部
    を備え、
     前記開示ビット計算部は、前記登録クライアント装置が既に開示している開示ビットと、前記登録キーワードと前記決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して前記決定ソルトを決定する登録クライアント装置
    を備える秘匿検索システム。
  2.  前記秘匿検索システムは、さらに、
     前記秘匿検索サーバ装置に登録されている各キーワードに対応するソルトを管理する記憶部
    を備えるソルト表管理装置
    を備える請求項1に記載の秘匿検索システム。
  3.  前記開示ビット計算部は、前記ソルト表管理装置の記憶部が前記登録キーワードに対応するソルトとして管理しているソルトに基づいて前記決定ソルトを決定する請求項2に記載の秘匿検索システム。
  4.  前記開示ビット計算部は、前記ソルト表管理装置の記憶部が前記登録キーワードに対応するソルトとして管理しているソルト以外のソルトを前記決定ソルトとして決定する請求項3に記載の秘匿検索システム。
  5.  前記ソルト表管理装置は、さらに、
     前記登録クライアント装置が登録するキーワードの出現頻度が既知である場合において、既知である出現頻度に基づいて、前記開示ビット計算部が前記決定ソルトとして決定するソルトの候補を計算するソルト表入力部
    を備える請求項2から4のいずれか1項に記載の秘匿検索システム。
  6.  前記開示ビット計算部は、前記登録クライアント装置が登録するキーワードの出現頻度が既知である場合において、既知である出現頻度に基づいて、前記開示ビット計算部が前記決定ソルトとして決定するソルトの候補を計算する請求項1から4のいずれか1項に記載の秘匿検索システム。
  7.  前記秘匿検索システムは、さらに、
     前記秘匿検索サーバ装置に登録されているデータを検索する際に、前記秘匿検索サーバ装置に登録されている各キーワードに対応するソルトの全てを用いる開示ビット計算部
    を備える検索クライアント装置
    を備える請求項1から6のいずれか1項に記載の秘匿検索システム。
  8.  確率的暗号に基づく検索可能暗号技術を採用する秘匿検索システムにおいて、秘匿検索される少なくとも1つのデータと、前記少なくとも1つのデータの各々に対応する少なくとも1つのキーワードとを秘匿検索サーバ装置に登録し、前記秘匿検索サーバ装置に登録した各キーワードと、前記秘匿検索サーバ装置に登録した各キーワードに対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである開示ビットを開示する登録クライアント装置が実行する秘匿検索方法であって、
     コンピュータが、前記秘匿検索サーバ装置に登録するキーワードである登録キーワードに対応するソルトを決定ソルトとして決定し、
     前記決定ソルトは、前記登録クライアント装置が既に開示している開示ビットと、前記登録キーワードと前記決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して決定されたソルトである秘匿検索方法。
  9.  確率的暗号に基づく検索可能暗号技術を採用する秘匿検索システムにおいて、秘匿検索される少なくとも1つのデータと、前記少なくとも1つのデータの各々に対応する少なくとも1つのキーワードとを秘匿検索サーバ装置に登録し、前記秘匿検索サーバ装置に登録した各キーワードと、前記秘匿検索サーバ装置に登録した各キーワードに対応するソルトとを用いて確定的に計算されたデータの一部であって、外部に開示するデータである開示ビットを開示する登録クライアント装置であるコンピュータが実行する秘匿検索プログラムであって、
     前記秘匿検索サーバ装置に登録するキーワードである登録キーワードに対応するソルトを決定ソルトとして決定する開示ビット計算処理
    を前記コンピュータに実行させ、
     前記開示ビット計算処理では、前記登録クライアント装置が既に開示している開示ビットと、前記登録キーワードと前記決定ソルトとを用いて計算した開示ビットとから成る分布の偏りの大きさを考慮して前記決定ソルトを決定する秘匿検索プログラム。
PCT/JP2021/046136 2021-12-14 2021-12-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム WO2023112176A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/046136 WO2023112176A1 (ja) 2021-12-14 2021-12-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
JP2023559065A JP7455287B2 (ja) 2021-12-14 2021-12-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/046136 WO2023112176A1 (ja) 2021-12-14 2021-12-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Publications (1)

Publication Number Publication Date
WO2023112176A1 true WO2023112176A1 (ja) 2023-06-22

Family

ID=86773800

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/046136 WO2023112176A1 (ja) 2021-12-14 2021-12-14 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム

Country Status (2)

Country Link
JP (1) JP7455287B2 (ja)
WO (1) WO2023112176A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012115031A1 (ja) * 2011-02-22 2012-08-30 三菱電機株式会社 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
WO2017122696A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP2020004199A (ja) * 2018-06-29 2020-01-09 ソニー株式会社 情報処理装置および情報処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012115031A1 (ja) * 2011-02-22 2012-08-30 三菱電機株式会社 検索システム、検索システムの検索方法、情報処理装置、検索プログラム、対応キーワード管理装置および対応キーワード管理プログラム
WO2017122696A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP2020004199A (ja) * 2018-06-29 2020-01-09 ソニー株式会社 情報処理装置および情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MORI IKUMI ET AL.: "A study on Acceleration for Full-text Search using Probabilistic Searchable Encryption", IPSJ SIG TECHNICAL REPORT, vol. 2021-CSEC-92, no. 14, 8 March 2021 (2021-03-08), pages 1 - 7, XP009546419, ISSN: 2188-8655 *

Also Published As

Publication number Publication date
JP7455287B2 (ja) 2024-03-25
JPWO2023112176A1 (ja) 2023-06-22

Similar Documents

Publication Publication Date Title
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US10235539B2 (en) Server device, recording medium, and concealed search system
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
EP3382576B1 (en) Secret search system, secret search method, and secret search program
WO2012095973A1 (ja) データ処理装置及びデータ保管装置
US20040064485A1 (en) File management apparatus and method
JP6910477B2 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
WO2018148591A1 (en) System for describing and tracking the creation and evolution of digital files
Sangeetha et al. Multi keyword searchable attribute based encryption for efficient retrieval of health Records in Cloud
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP6289768B2 (ja) 暗号化装置、暗号化プログラム及び暗号化方法
US20150212951A1 (en) Low-latency, low-overhead hybrid encryption scheme
WO2023112176A1 (ja) 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
CN110413215B (zh) 用于获取访问权限的方法、设备和计算机程序产品
JP6381861B2 (ja) 登録先決定装置、登録装置、秘匿検索システム、登録先決定方法及び登録先決定プログラム
US11106740B2 (en) Search device, search system, search method, and computer readable medium
Sude et al. Authenticated CRF based improved ranked multi-keyword search for multi-owner model in cloud computing
US11803655B2 (en) Retrieval system, retrieval device and retrieval method
Homann et al. Dynamic similarity search over encrypted data with low leakage
Borges Practical Isolated Searchable Encryption in a Trusted Computing Environment
WO2024029123A1 (ja) ソフトウェア情報管理装置、ソフトウェア情報管理方法
JP6918253B2 (ja) 秘匿検索システムおよび秘匿検索方法
WO2020245898A1 (ja) 検索装置、サーバ装置、検索方法、情報処理方法、検索プログラム及び情報処理プログラム
Mori et al. Determination of Parameters Balancing between Security and Search Performance on Searchable Encryption

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023559065

Country of ref document: JP