WO2023127038A1 - 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム - Google Patents

登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム Download PDF

Info

Publication number
WO2023127038A1
WO2023127038A1 PCT/JP2021/048616 JP2021048616W WO2023127038A1 WO 2023127038 A1 WO2023127038 A1 WO 2023127038A1 JP 2021048616 W JP2021048616 W JP 2021048616W WO 2023127038 A1 WO2023127038 A1 WO 2023127038A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
search
registration
data
public parameter
Prior art date
Application number
PCT/JP2021/048616
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/048616 priority Critical patent/WO2023127038A1/ja
Priority to JP2022536878A priority patent/JP7217836B1/ja
Publication of WO2023127038A1 publication Critical patent/WO2023127038A1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Definitions

  • the present disclosure relates to a registration request device, a search request device, a data management device, a confidential search system, a confidential search method, and a confidential search program.
  • Confidential search is a technique for searching encrypted data while it is still encrypted.
  • confidential search is a technique for searching encrypted data without decrypting it.
  • confidential search has attracted attention as a security technology for protecting confidential information from eavesdropping by server administrators and eavesdropping by malicious software in cloud services.
  • confidential search is attracting attention as a security technique for managing data on the Internet.
  • the registrant encrypts the data and stores it in the server.
  • the searcher encrypts the search keyword and transmits it to the server.
  • the server compares the search keyword with the data without decrypting the encrypted search keyword and the encrypted and stored data, and determines whether the search keyword matches the data.
  • keys that have been used may be revoked while the keys are updated periodically. Therefore, it is conceivable to update and revoke the key even in confidential search. If a key is simply replaced with a new key in confidential search, data encrypted with the old key cannot be searched with the new key. Therefore, after all, the old key cannot be discarded and must be kept. Also, search keywords must be encrypted using all stored keys. Alternatively, data that was encrypted with the old key needs to be re-encrypted with the new key so that the new key can handle everything.
  • Patent Literature 1 discloses a method of controlling the confidential search performed by each user by dividing the key used during confidential search into several pieces and distributing them.
  • Patent Document 1 a searcher can perform a confidential search using a divided key, but a registrant does not use the divided key, but encrypts and registers data using the key before division. . Therefore, there is a problem that although the searcher's confidential search can be controlled, the registrant's data encryption and registration cannot be controlled.
  • Patent Document 1 discloses a conversion method for re-encrypting encrypted data generated with an old key using agent re-encryption technology.
  • the proxy re-encryption technique is a technique for re-encrypting encrypted data generated with an old key into encrypted data generated with a new key without going through decryption.
  • this encrypted data is difficult to secretly search and is encrypted data generated by well-known encryption for restoring the original data. That is, the above re-encryption processing is re-encryption processing for this decryptable encrypted data. Therefore, in Patent Literature 1, there is a problem that the encrypted data to be secretly searched, that is, the encrypted tag and the encrypted index cannot be re-encrypted with a new key.
  • Patent Document 1 discloses a specific method of generating encrypted data for confidential search.
  • that method is a method that always generates encrypted data of the same value for the same data. Therefore, in Patent Document 1, there is a problem that it is impossible to stochastically generate encrypted data, which is important for cryptographic security, that is, to generate encrypted data with different values each time even for the same data.
  • the main purpose of this disclosure is to control the generation of encrypted data and the registration of encrypted data using split keys for encrypted data that can be searched confidentially.
  • the registration request device is A registered secret key generated using a master key and a public parameter, the registered secret key comprising a registered key used for encrypting data and a registered auxiliary key used for converting encrypted data.
  • a generation unit that acquires a registration key, plaintext data, and the public parameter, and generates encrypted data by encrypting the plaintext data using the registration key and the public parameter;
  • a data management device that converts the encrypted data using the registration auxiliary key and the public parameter, and registers the converted encrypted data obtained by the conversion in a registration database in association with an identifier that identifies the plaintext data. and a request unit for transmitting the encrypted data.
  • FIG. 1 is a diagram showing a configuration example of a secure search system according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a master key generation device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a private key device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a registration requesting device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a search request device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a data management device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a conversion key generation device according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a key conversion device according to Embodiment 1;
  • FIG. 2 is a diagram showing a configuration example of a re-encryption device according to Embodiment 1;
  • FIG. 4 is a flowchart showing the operation of the confidential search system according to Embodiment 1;
  • 4 is a flowchart showing a procedure for generating a master key according to Embodiment 1;
  • 4 is a flowchart showing a procedure for generating a split key according to Embodiment 1;
  • 4 is a flowchart showing a procedure for requesting registration according to the first embodiment;
  • 4 is a flow chart showing a procedure of a registration operation according to Embodiment 1;
  • 4 is a diagram showing a configuration example of a registration database according to Embodiment 1;
  • FIG. 1 is a diagram showing a configuration example of a registration database according to Embodiment 1;
  • 4 is a flowchart showing the procedure of a search request according to Embodiment 1; 4 is a flowchart showing the procedure of a search operation according to Embodiment 1; 4 is a flowchart showing a data deletion procedure according to the first embodiment; 4 is a flowchart showing a procedure for regenerating a split key according to the first embodiment; 4 is a flowchart showing a procedure for generating a conversion key according to Embodiment 1; 4 is a flowchart showing a key conversion procedure according to the first embodiment; 4 is a flowchart showing a re-encryption procedure according to the first embodiment; FIG.
  • FIG. 10 is a flow chart showing a re-encryption procedure according to the second embodiment
  • FIG. FIG. 2 is a diagram showing a hardware configuration example of a master key generation device according to an embodiment
  • FIG. 2 is a diagram showing a hardware configuration example of a split key device according to an embodiment
  • FIG. 2 is a diagram showing a hardware configuration example of a registration requesting device according to an embodiment
  • FIG. 2 is a diagram showing a hardware configuration example of a search request device according to an embodiment
  • 2 is a diagram showing a hardware configuration example of a data management device according to an embodiment
  • FIG. 2 is a diagram showing a hardware configuration example of a conversion key generation device according to an embodiment
  • 1 is a diagram showing a hardware configuration example of a key conversion device according to an embodiment
  • FIG. FIG. 2 is a diagram showing a hardware configuration example of a re-encryption device according to an embodiment
  • Embodiment 1 A confidential search system 100 according to this embodiment will be described with reference to FIGS. 1 to 22.
  • FIG. 1 A confidential search system 100 according to this embodiment will be described with reference to FIGS. 1 to 22.
  • FIG. 1 is a diagram showing a configuration example of a secure search system 100 according to this embodiment.
  • the confidential search system 100 includes a master key generation device 200, a split key generation device 300, a registration request device 400, a search request device 500, a data management device 600, a conversion key generation device 700, and a key conversion device 800. , and a re-encryption device 900 .
  • Each device of the confidential search system 100 communicates with each other via the network 101 .
  • FIG. 2 is a diagram showing a configuration example of the master key generation device 200 according to this embodiment.
  • the master key generation device 200 is a computer comprising hardware such as a processor 201 , a memory 202 , an auxiliary storage device 203 and an input/output interface 204 . These pieces of hardware are connected to each other via signal lines.
  • a processor 201 is an IC that performs arithmetic processing and controls other hardware.
  • processor 201 is 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.
  • Memory 202 is a volatile or non-volatile storage device. Memory 202 is also referred to as main storage or main memory. For example, memory 202 is RAM. The data stored in memory 202 is saved in auxiliary storage device 203 as needed. RAM is an abbreviation for Random Access Memory.
  • Auxiliary storage device 203 is a non-volatile storage device.
  • the auxiliary storage device 203 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 203 is loaded into the memory 202 as required.
  • ROM is an abbreviation for Read Only Memory.
  • HDD is an abbreviation for Hard Disk Drive.
  • Input/output interface 204 is a port to which an input device and an output device are connected.
  • the input/output interface 204 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the master key generation device 200 is performed using the input/output interface 204 .
  • USB is an abbreviation for Universal Serial Bus.
  • Communication device 205 is a receiver and transmitter.
  • communication device 205 is a communication chip or NIC.
  • Communication of the master key generation device 200 is performed using the communication device 205 .
  • NIC is an abbreviation for Network Interface Card.
  • the master key generation device 200 includes elements such as a reception unit 210, a generation unit 220, and an output unit 230. These elements are implemented in software.
  • the auxiliary storage device 203 stores a master key generation program for causing the computer to function as a reception unit 210, a generation unit 220 (master key generation unit), and an output unit 230 (master key output unit).
  • the master key generation program is loaded into memory 202 and executed by processor 201 .
  • the auxiliary storage device 203 further stores an OS. At least part of the OS is loaded into memory 202 and executed by processor 201 .
  • the processor 201 executes the master key generation program while executing the OS.
  • OS is an abbreviation for Operating System.
  • Input/output data of the master key generation program is stored in the storage unit 290 .
  • Auxiliary storage device 203 functions as storage unit 290 .
  • a storage device such as memory 202 , registers in processor 201 and cache memory in processor 201 may function as storage unit 290 instead of auxiliary storage device 203 or together with auxiliary storage device 203 .
  • the master key generation device 200 may include multiple processors that substitute for the processor 201. Multiple processors share the functions of processor 201 .
  • the master key generation program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 3 is a diagram showing a configuration example of the split key generation device 300 according to this embodiment.
  • the split key generation device 300 is a computer comprising hardware such as a processor 301 , a memory 302 , an auxiliary storage device 303 , an input/output interface 304 and a communication device 305 . These pieces of hardware are connected to each other via signal lines.
  • a processor 301 is an IC that performs arithmetic processing and controls other hardware.
  • processor 301 is a CPU, DSP or GPU.
  • Memory 302 is a volatile or non-volatile storage device. Memory 302 is also referred to as main storage or main memory.
  • memory 302 is RAM.
  • the data stored in the memory 302 is saved in the auxiliary storage device 303 as required.
  • Auxiliary storage device 303 is a non-volatile storage device.
  • the auxiliary storage device 303 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 303 is loaded into the memory 302 as required.
  • the input/output interface 304 is a port to which input devices and output devices are connected.
  • the input/output interface 304 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the split key generation device 300 is performed using the input/output interface 304 .
  • Communication device 305 is a receiver and transmitter.
  • communication device 305 is a communication chip or NIC. Communication of the split key generation device 300 is performed using the communication device 305 .
  • the split key generation device 300 includes elements such as a reception unit 310 , a split key generation unit 320 and an output unit 330 . These elements are implemented in software.
  • Auxiliary storage device 303 stores a secret key program for causing the computer to function as reception unit 310 , split key generation unit 320 , and output unit 330 .
  • the split key generation program is loaded into memory 302 and executed by processor 301 .
  • the auxiliary storage device 303 further stores an OS. At least part of the OS is loaded into memory 302 and executed by processor 301 .
  • the processor 301 executes the split key generation program while executing the OS.
  • Input/output data of the split key generation program is stored in the storage unit 390 .
  • Auxiliary storage device 303 functions as storage unit 390 .
  • a storage device such as memory 302 , registers in processor 301 and cache memory in processor 301 may function as storage unit 390 instead of auxiliary storage device 303 or together with auxiliary storage device 303 .
  • the split key generation device 300 may include multiple processors that substitute for the processor 301 . Multiple processors share the functions of processor 301 .
  • the split key generation program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 4 is a diagram showing a configuration example of registration requesting apparatus 400 according to this embodiment.
  • the registration requesting device 400 is a computer having hardware such as a processor 401 , a memory 402 , an auxiliary storage device 403 , an input/output interface 404 and a communication device 405 . These pieces of hardware are connected to each other via signal lines.
  • a processor 401 is an IC that performs arithmetic processing and controls other hardware.
  • processor 401 is a CPU, DSP or GPU.
  • Memory 402 is a volatile or non-volatile storage device. Memory 402 is also referred to as main storage or main memory.
  • memory 402 is RAM.
  • the data stored in memory 402 is saved in auxiliary storage device 403 as needed.
  • Auxiliary storage device 403 is a non-volatile storage device.
  • the auxiliary storage device 403 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 403 is loaded into the memory 402 as required.
  • the input/output interface 404 is a port to which input devices and output devices are connected.
  • the input/output interface 404 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the registration requesting device 400 is performed using the input/output interface 404 .
  • Communication device 405 is a receiver and transmitter.
  • communication device 405 is a communication chip or NIC. Communication of registration request device 400 is performed using communication device 405 .
  • the registration requesting device 400 includes elements such as a reception unit 410 , a generation unit 420 and a request unit 430 . These elements are implemented in software.
  • the generation unit 420 includes elements such as a keyword generation unit 421 , a random number generation unit 422 and an encrypted tag generation unit 423 .
  • Auxiliary storage device 403 stores a registration program for causing the computer to function as reception unit 410 , generation unit 420 , and request unit 430 .
  • the registration request program is loaded into memory 402 and executed by processor 401 .
  • the auxiliary storage device 403 further stores an OS. At least part of the OS is loaded into memory 402 and executed by processor 401 .
  • the processor 401 executes the registration request program while executing the OS.
  • Input/output data of the registration request program is stored in the storage unit 490 .
  • Auxiliary storage device 403 functions as storage unit 490 .
  • a storage device such as the memory 402 , a register within the processor 401 and a cache memory within the processor 401 may function as the storage unit 490 instead of or together with the auxiliary storage device 403 .
  • the registration requesting device 400 may include multiple processors that substitute for the processor 401 . Multiple processors share the functions of processor 401 .
  • the registration requesting device 400 can be computer-readable (stored) in a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 5 is a diagram showing a configuration example of a search request device 500 according to this embodiment.
  • the search request device 500 is a computer comprising hardware such as a processor 501 , a memory 502 , an auxiliary storage device 503 , an input/output interface 504 and a communication device 505 . These pieces of hardware are connected to each other via signal lines.
  • a processor 501 is an IC that performs arithmetic processing and controls other hardware.
  • processor 501 is a CPU, DSP or GPU.
  • Memory 502 is a volatile or non-volatile storage device. Memory 502 is also referred to as main storage or main memory.
  • memory 502 is RAM.
  • the data stored in memory 502 is saved in auxiliary storage device 503 as needed.
  • Auxiliary storage device 503 is a non-volatile storage device.
  • the auxiliary storage device 503 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 503 is loaded into the memory 502 as required.
  • the input/output interface 504 is a port to which input devices and output devices are connected.
  • the input/output interface 504 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the search request device 500 is performed using the input/output interface 504 .
  • Communication device 505 is a receiver and transmitter.
  • communication device 505 is a communication chip or NIC. Communication of the search request device 500 is performed using the communication device 505 .
  • the search request device 500 includes elements such as a reception unit 510 , a generation unit 520 , a request unit 530 and an output unit 540 . These elements are implemented in software.
  • the auxiliary storage device 503 stores a search operation program for causing the computer to function as a reception unit 510 , a generation unit 520 , a request unit 530 and an output unit 540 .
  • the search operation program is loaded into memory 502 and executed by processor 501 .
  • the auxiliary storage device 503 further stores an OS. At least part of the OS is loaded into memory 502 and executed by processor 501 .
  • the processor 501 executes the search request program while executing the OS.
  • Input/output data of the search request program is stored in the storage unit 590 .
  • Auxiliary storage device 503 functions as storage unit 590 .
  • a storage device such as memory 502 , registers in processor 501 and cache memory in processor 501 may function as storage unit 590 instead of auxiliary storage device 503 or together with auxiliary storage device 503 .
  • the search request device 500 may include multiple processors that substitute for the processor 501 . Multiple processors share the functions of processor 501 .
  • the search request device 500 can be computer-readable (stored) in a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 6 is a diagram showing a configuration example of a data management device 600 according to this embodiment.
  • the data management device 600 is a computer comprising hardware such as a processor 601 , a memory 602 , an auxiliary storage device 603 , an input/output interface 604 and a communication device 605 . These pieces of hardware are connected to each other via signal lines.
  • a processor 601 is an IC that performs arithmetic processing and controls other hardware.
  • processor 601 is a CPU, DSP or GPU.
  • Memory 602 is a volatile or non-volatile storage device. Memory 602 is also referred to as main storage or main memory.
  • memory 602 is RAM.
  • the data stored in memory 602 is saved in auxiliary storage device 603 as needed.
  • Auxiliary storage device 603 is a non-volatile storage device.
  • the auxiliary storage device 603 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 603 is loaded into the memory 602 as required.
  • Input/output interface 604 is a port to which input and output devices are connected.
  • the input/output interface 604 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the data management device 600 is performed using an input/output interface 604 .
  • Communication device 605 is a receiver and transmitter.
  • communication device 605 is a communication chip or NIC. Communication of the data management device 600 is performed using the communication device 605 .
  • the data management device 600 includes elements such as a reception unit 610 , a key management unit 620 , a registration unit 630 , a search unit 640 and an output unit 650 . These elements are implemented in software.
  • the registration unit 630 includes elements such as a conversion unit 631 and a storage unit 632 .
  • the search unit 640 includes elements such as a conversion unit 641 , a matching unit 642 and an extraction unit 643 .
  • the auxiliary storage device 603 stores a data management program for causing the computer to function as a reception unit 610 , a key management unit 620 , a registration unit 630 , a search unit 640 and an output unit 650 .
  • the data management program is loaded into memory 602 and executed by processor 601 .
  • the auxiliary storage device 603 further stores an OS. At least part of the OS is loaded into memory 602 and executed by processor 601 .
  • the processor 601 executes the data management program while executing the OS.
  • Input/output data of the data management program are stored in the storage unit 690 .
  • Auxiliary storage device 603 functions as storage unit 690 .
  • a storage device such as the memory 602 , a register within the processor 601 and a cache memory within the processor 601 may function as the storage unit 690 instead of or together with the auxiliary storage device 603 .
  • a registration database 691 is stored in the storage unit 690 .
  • the data management device 600 may include multiple processors that substitute for the processor 601 . Multiple processors share the functions of processor 601 .
  • the data management device 600 can be recorded (stored) in a non-volatile recording medium such as an optical disk or flash memory in a computer-readable manner.
  • FIG. 7 is a diagram showing a configuration example of a conversion key generation device 700 according to this embodiment.
  • the conversion key generation device 700 is a computer comprising hardware such as a processor 701 , a memory 702 , an auxiliary storage device 703 , an input/output interface 704 and a communication device 705 . These pieces of hardware are connected to each other via signal lines.
  • a processor 701 is an IC that performs arithmetic processing and controls other hardware.
  • processor 701 is a CPU, DSP or GPU.
  • Memory 702 is a volatile or non-volatile storage device. Memory 702 is also referred to as main storage or main memory.
  • memory 702 is RAM.
  • the data stored in memory 702 is saved in auxiliary storage device 703 as needed.
  • Auxiliary storage device 703 is a non-volatile storage device.
  • the auxiliary storage device 703 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 703 is loaded into the memory 702 as needed.
  • Input/output interface 704 is a port to which input and output devices are connected.
  • the input/output interface 704 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the conversion key generation device 700 is performed using an input/output interface 704 .
  • Communication device 705 is a receiver and transmitter.
  • communication device 705 is a communication chip or NIC. Communication of the conversion key generation device 700 is performed using the communication device 705 .
  • the conversion key generation device 700 includes elements such as a reception unit 710 , a generation unit 720 and an output unit 730 . These elements are implemented in software.
  • the auxiliary storage device 703 stores a conversion key generation program for causing the computer to function as a reception unit 710 , a generation unit 720 and an output unit 730 .
  • the conversion key generation program is loaded into memory 702 and executed by processor 701 .
  • the auxiliary storage device 703 also stores an OS. At least part of the OS is loaded into memory 702 and executed by processor 601 .
  • the processor 701 executes the conversion key generation program while executing the OS.
  • Input/output data of the conversion key generation program is stored in the storage unit 790 .
  • Auxiliary storage device 703 functions as storage unit 790 .
  • a storage device such as the memory 702 , a register within the processor 701 and a cache memory within the processor 701 may function as the storage unit 790 instead of or together with the auxiliary storage device 703 .
  • the conversion key generation device 700 may include multiple processors that substitute for the processor 701 . Multiple processors share the functions of processor 701 .
  • the conversion key generation device 700 can be computer-readable (stored) in a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 8 is a diagram showing a configuration example of a key conversion device 800 according to this embodiment.
  • the key conversion device 800 is a computer comprising hardware such as a processor 801 , a memory 802 , an auxiliary storage device 803 , an input/output interface 804 and a communication device 805 . These pieces of hardware are connected to each other via signal lines.
  • a processor 801 is an IC that performs arithmetic processing and controls other hardware.
  • processor 801 is a CPU, DSP or GPU.
  • Memory 802 is a volatile or non-volatile storage device. Memory 802 is also referred to as main storage or main memory.
  • memory 802 is RAM.
  • the data stored in memory 802 is saved in auxiliary storage device 803 as needed.
  • Auxiliary storage device 803 is a non-volatile storage device.
  • the auxiliary storage device 803 is ROM, HDD, or flash memory. Data stored in the auxiliary storage device 803 is loaded into the memory 802 as required.
  • Input/output interface 804 is a port to which an input device and an output device are connected.
  • the input/output interface 804 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the key conversion device 800 is performed using an input/output interface 804 .
  • Communication device 805 is a receiver and transmitter.
  • communication device 805 is a communication chip or NIC. Communication of the key conversion device 800 is performed using the communication device 805 .
  • the key conversion device 800 includes elements such as a reception unit 810 , a conversion unit 820 and an output unit 830 . These elements are implemented in software.
  • the auxiliary storage device 803 stores a key conversion program for causing the computer to function as a reception unit 810 , a conversion unit 820 and an output unit 830 .
  • the key conversion program is loaded into memory 802 and executed by processor 801 .
  • the auxiliary storage device 803 further stores an OS. At least part of the OS is loaded into memory 802 and executed by processor 801 .
  • the processor 801 executes the key conversion program while executing the OS.
  • Input/output data of the key conversion program is stored in the storage unit 890 .
  • Auxiliary storage device 803 functions as storage unit 890 .
  • a storage device such as the memory 802 , a register within the processor 801 and a cache memory within the processor 801 may function as the storage unit 890 instead of or together with the auxiliary storage device 803 .
  • the key conversion device 800 may include multiple processors that substitute for the processor 801 . Multiple processors share the functions of processor 801 .
  • the key conversion device 800 can be computer-readable (stored) in a non-volatile recording medium such as an optical disc or flash memory.
  • FIG. 9 is a diagram showing a configuration example of a re-encryption device 900 according to this embodiment.
  • the re-encryption device 900 is a computer comprising hardware such as a processor 901 , a memory 902 , an auxiliary storage device 903 , an input/output interface 904 and a communication device 905 . These pieces of hardware are connected to each other via signal lines.
  • a processor 901 is an IC that performs arithmetic processing and controls other hardware.
  • processor 901 is a CPU, DSP or GPU.
  • Memory 902 is a volatile or non-volatile storage device. Memory 902 is also called main storage or main memory.
  • memory 902 is RAM.
  • the data stored in memory 902 is saved in auxiliary storage device 903 as needed.
  • Auxiliary storage device 903 is a non-volatile storage device.
  • the auxiliary storage device 903 is ROM, HDD or flash memory. Data stored in the auxiliary storage device 903 is loaded into the memory 902 as needed.
  • Input/output interface 904 is a port to which an input device and an output device are connected.
  • the input/output interface 904 is a USB terminal
  • the input device is a keyboard and mouse
  • the output device is a display.
  • Input/output of the re-encryption device 900 is performed using an input/output interface 904 .
  • Communication device 905 is a receiver and transmitter.
  • communication device 905 is a communication chip or NIC. Communication of the re-encryption device 900 is performed using the communication device 905 .
  • the re-encryption device 900 comprises elements such as a reception unit 910 , a re-encryption unit 920 and an output unit 930 . These elements are implemented in software.
  • the auxiliary storage device 903 stores a re-encryption program for causing the computer to function as a reception unit 910 , a re-encryption unit 920 and an output unit 930 .
  • the re-encryption program is loaded into memory 902 and executed by processor 901 .
  • the auxiliary storage device 903 further stores an OS. At least part of the OS is loaded into memory 902 and executed by processor 901 .
  • the processor 901 executes the re-encryption program while executing the OS.
  • Input/output data of the re-encryption program is stored in the storage unit 990 .
  • Auxiliary storage device 903 functions as storage unit 990 .
  • a storage device such as the memory 902 , a register within the processor 901 and a cache memory within the processor 901 may function as the storage unit 990 instead of or together with the auxiliary storage device 903 .
  • the re-encryption device 900 may include multiple processors to replace the processor 901 . Multiple processors share the functions of processor 901 .
  • the re-encryption device 900 can be computer-readable (stored) in a non-volatile recording medium such as an optical disc or flash memory.
  • the operation procedure of the confidential search system 100 corresponds to the confidential search method.
  • the program that realizes the operation of the confidential search system 100 corresponds to the confidential search program.
  • FIG. 10 is a flow chart showing the operation of the confidential search system 100 according to this embodiment.
  • step S110 the master key generation device 200 generates a master key MK and public parameters PP.
  • FIG. 11 is a flow chart showing the procedure of master key generation (S110) according to this embodiment.
  • Master key generation (S110) is a process executed by the master key generation device 200.
  • FIG. 11 is a flow chart showing the procedure of master key generation (S110) according to this embodiment.
  • Master key generation (S110) is a process executed by the master key generation device 200.
  • FIG. 11 is a flow chart showing the procedure of master key generation (S110) according to this embodiment.
  • Master key generation (S110) is a process executed by the master key generation device 200.
  • step S111 the receiving unit 210 receives the key length BIT.
  • the key length BIT is the length of the master key MK and is represented by a positive integer (natural number).
  • step S112 the generator 220 generates the master key MK and the public parameter PP based on the key length BIT. Specifically, it is as follows.
  • the generator 220 randomly selects two prime numbers (P, Q) having the same bit length as BIT/2.
  • N the product of the prime number P and the prime number Q.
  • the generation unit 220 randomly selects an integer g from a set of integers ⁇ 1, 2, .
  • "x mod” means the remainder when the integer x is divided by the integer y.
  • the product obtained by calculating (P-1)*(Q-1) is denoted as "Z”.
  • the generator 220 randomly selects an integer X from a set of integers ⁇ 1, 2, .
  • the generation unit 220 also selects a cryptographic function F.
  • Cryptographic function F is a cryptographic hash function. Examples of cryptographic functions F are SHA-256 or SHA-512.
  • the generator 220 then generates the master key MK and the public parameter PP.
  • the master key MK includes a prime number P, a prime number Q, a remainder G, an integer Z, and an integer X.
  • the public parameters PP include the product N and the identifier of the cryptographic function F.
  • the master key MK is represented as follows.
  • MK (P, Q, G, Z, X)
  • the public parameter PP is represented as follows.
  • PP (N, F)
  • step S113 the generating unit 220 stores and stores the master key MK and the public parameter PP in the storage unit 290.
  • step S114 the output unit 230 outputs the master key MK and the public parameter PP.
  • the output unit 230 uses the communication device 205 to transmit the master key MK to the split key generation device 300 and the key conversion device 800 .
  • the master key MK is used to generate a registration secret key EK or a search secret key SK.
  • the master key MK is used when converting the master key MK.
  • the output unit 230 outputs the public parameter PP.
  • the output unit 230 uses the communication device 205 to convert the public parameter PP into the split key generation device 300, the registration request device 400, the search request device 500, the data management device 600, the conversion key generation device 700, and the key conversion device 800. and re-encryption device 900 respectively.
  • the public parameter PP includes: generation of registration secret key EK, generation of search secret key SK, registration of encrypted data C, search of encrypted data C, generation of search query SQ, regeneration of registration secret key EK, search secret key It is used for regeneration of SK, generation of conversion key TK, key conversion of master key MK, key conversion of registration secret key EK, key conversion of search secret key SK, and re-encryption of encrypted data C.
  • step S120 the description continues from step S120.
  • split key generation device 300 In step S120, split key generation device 300 generates registration secret key EK and search secret key SK using master key MK and public parameter PP.
  • the registration secret key EK is used for data encryption and conversion of encrypted data upon registration.
  • the registration secret key EK consists of a registration key EK1 and a registration auxiliary key EK2.
  • the registration key EK1 is used for data encryption.
  • the registration auxiliary key EK2 is used for converting encrypted data.
  • the search secret key SK is used to generate a query used for search from a keyword used for search, and used to convert the generated query.
  • the search secret key SK consists of a search key SK1 and a search auxiliary key SK2.
  • Search key SK1 is used to generate a query used for search from a keyword used for search.
  • the search auxiliary key SK2 is used for conversion of the generated query.
  • FIG. 12 is a flow chart showing the procedure of split key generation (S120) according to the present embodiment.
  • Split key generation (S 120 ) is a process executed by split key generation device 300 .
  • step S121 the receiving unit 310 receives the master key MK and the public parameter PP, and stores the master key MK and the public parameter PP in the storage unit 390 for safekeeping. However, if the master key MK and public parameter PP are already stored, step S121 is unnecessary.
  • the split key generation unit 320 randomly selects an integer ek1 from a set of integers ⁇ 1, 2, .
  • the split key generation unit 320 randomly selects an integer sk1 from a set of integers ⁇ 1, 2, .
  • step S124 the split key generation unit 320 stores the registration secret key EK and the search secret key SK in the storage unit 390 for safekeeping.
  • the output unit 330 outputs the registration secret key EK and the search secret key SK.
  • the output unit 330 uses the communication device 305 to transmit the registration key EK1 to the registration requesting device 400 .
  • output unit 330 uses communication device 305 to transmit search key SK1 to search request device 500 .
  • the output unit 330 uses the communication device 305 to transmit the registration auxiliary key EK2 and the search auxiliary key SK2 to the data management device 600 .
  • the output unit 330 uses the communication device 305 to transmit the registration secret key EK and the search secret key SK to the key conversion device 800 .
  • the registration key EK1 is used to generate the encrypted data C.
  • FIG. The registration auxiliary key EK2 is used for converting the encrypted data C.
  • FIG. The search key SK1 is used to generate the search query SQ.
  • the search auxiliary key EK2 is used for conversion of the search query SQ.
  • Step S130 Steps S130 to S140, steps S150 to S160, steps S170, S180, and steps S190 to S210 are repeatedly performed.
  • step S130 If encrypted data C is registered, the process proceeds to step S130. For example, when the user inputs a registration instruction for encrypted data C to registration requesting device 400, the process proceeds to step S130.
  • step S150 If encrypted data C is retrieved, the process proceeds to step S150. For example, when the user inputs a search command for encrypted data C to search request device 500, the process proceeds to step S150.
  • step S170 If the encrypted data C is deleted based on the data name, the process proceeds to step S170. For example, if the user inputs an instruction to delete encrypted data C to registration requesting device 400, the process proceeds to step S170.
  • step S180 split key generation device 300 periodically compares the usage periods of registered secret key EK and search secret key SK with a reference period. Then, if the usage period of the registered secret key EK and the search secret key SK exceeds the reference period, the process proceeds to step S180. For example, the administrator determines that either the registration key EK1 or the registration auxiliary key EK2, or either the search key SK1 or the search auxiliary key SK2 has been leaked. Then, when the administrator inputs the private key update command to the split key generation device 300, the process proceeds to step S180.
  • step S190 the process proceeds to step S190.
  • the administrator determines that registration key EK1 and registration auxiliary key EK2 or search key SK1 and search auxiliary key SK2 have been leaked. Then, when the administrator inputs the secret key update and re-encryption commands for encrypted data C to conversion key generation device 700, key conversion device 800, and re-encryption device 900, the process proceeds to step S190. move on.
  • step S ⁇ b>130 registration requesting device 400 generates encrypted data C and transmits encrypted data C to data management device 600 .
  • Generation unit 420 of registration requesting device 400 acquires registration key EK1, plaintext data D, and public parameter PP.
  • Generation unit 420 then generates encrypted data C by encrypting plaintext data D using registration key EK1 and public parameter PP.
  • the generator 420 generates a random number used to generate the encrypted data C using the public parameter PP.
  • Generation unit 420 generates encrypted data using registration key EK1, public parameter PP, and random numbers. This random number allows the encrypted data to be randomized.
  • generation unit 420 encrypts the registered keyword included in plaintext data D using registration key EK1, public parameter PP, and a random number, and encrypts encrypted tag ET obtained by encryption. Generate as data C. Specifically, it is as follows.
  • FIG. 13 is a flow chart showing the procedure of the registration request (S130) according to this embodiment.
  • the registration request ( S130 ) is a process executed by registration requesting device 400 .
  • step S131 the receiving unit 410 receives the registration key EK1, the public parameter PP, and the plaintext data D, and stores the registration key EK1 and the public parameter PP in the storage unit 490 for safekeeping. If the registration key EK1 and the public parameter PP have already been stored, only the registration key EK1 is replaced and stored.
  • Plaintext data D is unencrypted data.
  • the plaintext data D includes a data name ID (D) as metadata. An identifier is unique data. A plurality of plaintext data D may be accepted. In that case, steps S132 to S135 are executed for each plaintext data D.
  • the keyword generation unit 421 generates a registered keyword set W.
  • the registered keyword set W is a set of keywords related to the plaintext data D.
  • the keyword generation unit 421 extracts one or more keywords from the plaintext data D by performing processing such as morphological analysis or natural language processing on the plaintext data D.
  • FIG. A plurality of extracted keywords form a set W of registered keywords.
  • the registered keyword W consists of n keywords. That is, the registered keyword W is ⁇ w1, . . . , wn ⁇ . However, n is an integer of 1 or more.
  • the accepting unit 410 may accept the registered keyword W input to the registration requesting device 400 via the input/output interface 404 .
  • the random number generator 422 generates the encrypted tag random number KR using the public parameter PP.
  • step S134 the encrypted tag generator 423 encrypts the registered keyword set W using the registration key EK1, public parameter PP, and encrypted tag random number KR to generate an encrypted tag ET.
  • the encrypted tag generation unit 423 generates all i Compute the following encrypted tag element ETi for However, i is an integer greater than or equal to 1 and less than or equal to n.
  • ETi (ETi1, ETi2)
  • step S135 the request unit 430 sends the encrypted tag ET to the data management device 600.
  • step S140 the description continues from step S140.
  • step S ⁇ b>140 data management device 600 receives encrypted data C, converts encrypted data C, and registers the converted data in storage unit 690 .
  • the encrypted data C corresponds to the encrypted tag ET.
  • Registration unit 630 of data management device 600 converts encrypted data C using registration auxiliary key EK2 and public parameter PP.
  • the registration unit 630 registers the converted encrypted data obtained by the conversion in the registration database 691 in association with the identifier ID(D) for identifying the plaintext data D.
  • FIG. Specifically, it is as follows.
  • FIG. 14 is a flow chart showing the procedure of the registration operation (S140) according to this embodiment.
  • the registration operation ( S ⁇ b>140 ) is a process executed by data management device 600 .
  • step S141 accepting unit 610 accepts registration auxiliary key EK2, public parameter PP, and encrypted tag ET.
  • the key management unit 620 stores the registration auxiliary key EK2 and the public parameter PP in the storage unit 690 for safekeeping. If the registration auxiliary key EK2 and the public parameter PP are already stored, only the registration auxiliary key EK2 is replaced and stored. Multiple encryption tags ET may be accepted. In that case, steps S142 and S143 are executed for each encrypted tag ET.
  • the conversion unit 631 generates a converted encrypted tag TET as follows.
  • TET (ID(D), TET1, . . . , TETn)
  • step S ⁇ b>143 the storage unit 632 registers the converted encrypted tag TET in the registration database 691 .
  • the registration database 691 is stored and archived in the storage unit 690 of the data management device 600 .
  • FIG. 15 is a diagram showing an example of the registration database 691 according to this embodiment.
  • one row of data corresponds to one conversion encryption tag TET.
  • the data name ID (D) and the conversion encryption tag TET are associated with each other.
  • step S150 the description continues from step S150.
  • step S ⁇ b>150 the search request device 500 generates a search query SQ and transmits the search query SQ to the data management device 600 .
  • Generation unit 520 of search request device 500 acquires search key SK1, search keyword w, and public parameter PP, and generates search query SQ from search keyword w using search key SK1 and public parameter PP.
  • the generation unit 520 uses the public parameter PP to generate a random number used to generate the search query SQ, and uses the search key SK1, the public parameter PP, and the random number to generate the search query SQ.
  • the request unit 154 of the search request device 500 transmits the search query SQ to the data management device. Then, the request unit 154 acquires the identifier ID(D) corresponding to the encrypted data C that matches the search query SQ from the data management device 600 as the search result DATA. Specifically, it is as follows.
  • FIG. 16 is a flow chart showing the procedure of the search request (S150) according to this embodiment.
  • the search request (S150) is a process executed by search request device 500.
  • accepting unit 510 accepts search key SK1, public parameter PP, and search keyword sw.
  • the reception unit 510 then stores the search key SK1 and the public parameter PP in the storage unit 590 for storage. If the retrieval key SK1 and the public parameter PP are already stored, only the retrieval key SK1 is replaced and stored.
  • the search keyword sw is unencrypted keyword data. Multiple search keywords sw may be accepted. In that case, steps S152 and S153 are executed for each search keyword sw.
  • step S152 the random number generator 521 generates a search query random number QR using the public parameter PP.
  • the search query random number QR is a random number for encrypting the search query SQ.
  • step S153 the search query generator 522 encrypts the search keyword sw using the search key SK1, public parameter PP, and search query random number QR to generate a search query SQ.
  • the search query generator 522 calculates the following search query SQ for the search keyword sw and the search query random number QR.
  • SQ (SQ1, SQ2)
  • SQ1 SK1 ⁇ (F(sw)*QR) mod N
  • SQ2 QR
  • step S154 the request unit 530 sends the search query SQ to the data management device 600.
  • step S ⁇ b>155 the request unit 530 uses the communication device 505 to receive the search result DATA from the data management device 600 .
  • the search result DATA is a set of data name IDs (D) of encrypted tags that match the search query SQ. That is, it is a set of data names of data matching the search query SQ.
  • step S156 the output unit 540 outputs the search result DATA.
  • the output unit 540 displays the search result DATA on the display via the input/output interface 504 .
  • the output unit 540 outputs a search error message.
  • the search error message indicates that there is no hit plaintext data D in the confidential search.
  • step S160 the description continues from step S160.
  • step S160 the data management device 600 searches for converted encrypted data that matches the search query SQ.
  • the converted encrypted data which is the converted encrypted data C, corresponds to the converted encrypted tag TET.
  • the search unit 640 of the data management device 600 acquires the search auxiliary key SK2 and the public parameter PP, and converts the search query SQ using the search auxiliary key SK2 and the public parameter PP.
  • the search unit 640 collates the converted search query TSQ obtained by the conversion with the converted encrypted data, and extracts the identifier ID(D) corresponding to the converted encrypted data that matches the converted search query TSQ. Specifically, it is as follows.
  • FIG. 17 is a flow chart showing the procedure of the search operation (S160) according to this embodiment.
  • the search operation ( S ⁇ b>160 ) is a process executed by data management device 600 .
  • step S161 the receiving unit 610 receives the search auxiliary key SK2, the public parameter PP, and the search query SQ.
  • the key management unit 620 stores the search auxiliary key SK2 and the public parameter PP in the storage unit 690 for safekeeping. If the search auxiliary key SK2 and the public parameter PP have already been stored, only the search auxiliary key SK2 is replaced and stored. Multiple search queries SQ may be accepted. In that case, steps S162 to S164 are executed for each search query SQ.
  • TSQ (TSQ1, TSQ2)
  • TSQ1 SQ1 ⁇ SK2 mod N
  • TSQ2 SQ2
  • TET12 kr
  • TSQ2 QR
  • M1 and M2 can be expressed as follows.
  • step S165 the output unit 650 uses the communication device 605 to transmit the search result DATA to the search request device 500.
  • step S170 the description continues from step S170.
  • step S170 the data management device 600 deletes the encrypted data C corresponding to the deletion file name.
  • the converted encrypted data which is the converted encrypted data C
  • the registration unit 630 of the data management device 600 acquires the identifier ID(D) that identifies the plaintext data D to be deleted from the registration database 691, and deletes the converted encrypted data corresponding to the identifier ID(D) from the registration database 691. . Specifically, it is as follows.
  • FIG. 18 is a flow chart showing the procedure of data deletion (S170) according to this embodiment.
  • Data deletion (S 170 ) is a process executed by registration requesting device 400 and data management device 600 .
  • search requesting device 500 or another device may be used instead of registration requesting device 400.
  • accepting unit 410 of registration requesting device 400 accepts a deletion file name.
  • the receiving unit 410 receives a deletion file name input to the registration requesting device 400 via the input/output interface 404 .
  • the receiving unit 410 may receive the deletion file name from an application program executed in the registration requesting device 400 .
  • step S ⁇ b>172 the requesting unit 430 of the registration requesting device 400 uses the communication device 405 to transmit the deletion file name to the data management device 600 .
  • reception unit 610 of data management device 600 uses communication device 605 to receive the deletion file name.
  • registration unit 630 of data management device 600 deletes from registration database 691 the converted encrypted tag TET corresponding to the deletion file name. Specifically, the registration unit 630 deletes the converted encrypted tag TET containing the same data name ID(D) as the deleted file name.
  • step S180 the description continues from step S180.
  • step S180 the split key generation device 300 regenerates the registration secret key EK' and the search secret key SK'.
  • the split key generation device 300 randomly regenerates the registration secret key EK' and the search secret key SK' using the master key MK and the public parameter PP. Then, the split key generation device 300 replaces the already used registered secret key EK and search secret key SK with the registered secret key EK' and search secret key SK'.
  • FIG. 19 is a flow chart showing the procedure for regenerating the split key (S180) according to this embodiment.
  • Split key regeneration (S 180 ) is a process executed by split key generation device 300 .
  • step S181 the receiving unit 310 receives the master key MK and the public parameter PP, and stores the master key MK and the public parameter PP in the storage unit 390 for safekeeping. However, if the master key MK and public parameter PP are already stored, step S121 is unnecessary.
  • split key generation unit 320 stores registered secret key EK' and search secret key SK' in storage unit 390 as registered secret key EK and search secret key SK. If the registered secret key EK and the retrieved secret key SK are already stored in the storage unit 390, the stored registered secret key EK and retrieved secret key SK are the newly generated registered secrets in steps S182 and S183. It is replaced with the key EK' and the search secret key SK'.
  • the output unit 330 outputs the registration secret key EK' and the search secret key SK'.
  • the output unit 330 uses the communication device 305 to transmit the registration key EK1′ to the registration requesting device 400 .
  • output unit 330 uses communication device 305 to transmit search key SK1′ to search request device 500 .
  • the output unit 330 uses the communication device 305 to transmit the registration auxiliary key EK2′ and the search auxiliary key SK2′ to the data management device 600.
  • FIG. the output unit 330 uses the communication device 305 to transmit the registration secret key EK′ and the search secret key SK′ to the key conversion device 800 .
  • the registration key EK1' is used to generate the encrypted data C.
  • FIG. The registration auxiliary key EK2' is used for converting the encrypted data C.
  • FIG. The search key SK1' is used to generate the search query SQ.
  • the search auxiliary key EK2' is used for conversion of the search query SQ.
  • step S190 the description continues from step S190.
  • step S190 the conversion key generation device 700 generates a conversion key TK to key-convert the master key MK, the registration secret key EK, and the search secret key SK, and to re-encrypt the conversion encryption tag TET. do.
  • FIG. 20 is a flow chart showing the procedure of conversion key generation (S190) according to this embodiment.
  • Conversion key generation ( S190 ) is a process executed by conversion key generation device 700 .
  • step S191 the receiving unit 710 receives the public parameter PP, and stores the public parameter PP in the storage unit 790 for safekeeping. However, if the public parameter PP is already stored, step S181 is unnecessary.
  • step S192 generation unit 720 generates conversion key TK using public parameter PP. Specifically, the split key generation unit 320 randomly selects an integer TK from a set of integers ⁇ 1, 2, . In step S193, the generation unit 720 stores the conversion key TK in the storage unit 790 for safekeeping.
  • step S194 output unit 730 outputs conversion key TK.
  • the output unit 730 uses the communication device 705 to transmit the conversion key TK to the key conversion device 800 .
  • the conversion TK is used for key conversion between the master key MK, the registered secret key EK, and the search secret key SK. It is also used for re-encryption of the transformation encryption tag TET.
  • step S200 the description continues from step S200.
  • step S200 the key conversion device 800 key-converts the master key MK, the registered secret key EK, and the search secret key SK.
  • the key conversion device 800 uses the conversion key TK to convert the master key MK, the registered secret key EK, and the search secret key SK.
  • the key conversion device 800 outputs a post-key conversion master key MK', a post-key conversion registration secret key EK', and a post-key conversion search secret key SK' obtained by key conversion. Specifically, it is as follows.
  • FIG. 21 is a flow chart showing the procedure of key conversion (S200) according to this embodiment.
  • Key conversion (S200) is a process executed by the key conversion device 800.
  • FIG. 21 is a flow chart showing the procedure of key conversion (S200) according to this embodiment.
  • Key conversion (S200) is a process executed by the key conversion device 800.
  • FIG. 21 is a flow chart showing the procedure of key conversion (S200) according to this embodiment.
  • Key conversion (S200) is a process executed by the key conversion device 800.
  • step S201 the receiving unit 810 receives the conversion key TK, the master key MK, the registration secret key EK, the search secret key SK, and the public parameter PP. Then, the receiving unit 810 stores the conversion key TK, the master key MK, the registered secret key EK, the search secret key SK, and the public parameter PP in the storage unit 690 for safekeeping. If the conversion key TK, master key MK, registered secret key EK, search secret key SK, and public parameter PP are already stored, replace the conversion key TK, master key MK, registered secret key EK, and search secret key SK with store.
  • step S203 if only one of the registration key EK1 and the registration auxiliary key EK2 is converted in step S203, only either the search key SK1 or the search auxiliary key SK2 is converted in step S204.
  • step S205 the output unit 830 outputs the key-converted master key MK', the key-converted registration secret key EK', and the key-converted search secret key SK'.
  • the post-key conversion master key MK′ is stored by replacing the master key MK stored in the storage unit 290 of the master key generation device 200 and the storage unit 390 of the split key generation device 300 .
  • the registered private key EK' after key conversion and the retrieved private key SK' after key conversion replace the registered private key EK and the retrieved private key SK stored in the storage unit 390 of the split key generation device 300, respectively.
  • the post-key conversion registration key EK1′ is stored by replacing the registration key EK1 stored in the storage unit 490 of the registration requesting device 400 .
  • the post-key conversion search key SK1′ is stored by replacing the search key SK1 stored in the storage unit 590 of the search requesting device 500 .
  • the post-key conversion registration auxiliary key EK2′ and the post-key conversion search auxiliary key SK2′ are stored by replacing the registration auxiliary key EK2 and the search auxiliary key SK2 stored in the storage unit 690 of the data management device 600, respectively. be.
  • step S210 the description continues from step S210.
  • step S210 the re-encryption device 900 re-encrypts the transformed encrypted tag TET.
  • the re-encryption unit 920 of the re-encryption device 900 obtains the conversion key TK, the public parameter PP, and the converted encrypted data, and re-encrypts the converted encrypted data using the conversion key TK and the public parameter PP. .
  • the re-encryption unit 920 outputs the converted encrypted data after re-encryption obtained by re-encryption.
  • the registration unit 630 of the data management device 600 acquires the re-encrypted converted encrypted data from the re-encryption device 900, and converts the converted encrypted data registered in the registration database 691 into the re-encrypted converted encrypted data. replace.
  • the re-encrypted converted encrypted data corresponds to the re-encrypted converted encrypted tag TET'. Specifically, it is as follows.
  • FIG. 22 is a flow chart showing the procedure of re-encryption (S210) according to this embodiment.
  • Re-encryption (S210) is a process performed by the re-encryption device 900.
  • FIG. 22 is a flow chart showing the procedure of re-encryption (S210) according to this embodiment.
  • Re-encryption (S210) is a process performed by the re-encryption device 900.
  • step S211 the receiving unit 910 receives the conversion key TK, the public parameter PP, and the conversion encryption tag TET, and stores the conversion key TK and the public parameter PP in the storage unit 990 for safekeeping. Multiple transform encryption tags TET may be accepted. In that case, steps S212 and S213 are executed for each converted encrypted tag TET.
  • step S212 the re-encryption unit 920 re-encrypts the converted encrypted tag TET using the conversion key TK and the public parameter PP to generate a post-re-encryption converted encrypted tag TET'.
  • TETi' is randomly selected from a set of integers ⁇ 1, 2, .
  • TETi1′ TETi1 ⁇ (TK*RR) mod N
  • TETi2′ TETi2*RR
  • step S213 the output unit 930 outputs the re-encrypted converted encrypted tag TET'.
  • the re-encrypted converted encrypted tag TET′ is stored by replacing the converted encrypted tag TET registered in the registration database 691 of the storage unit 990 of the data management device 600 .
  • the secret key is divided into two by the split key generation, and if one of the keys is deleted, the search cannot be performed with only the other key. Therefore, key revocation can be performed. Furthermore, according to the confidential search system according to the present embodiment, even if split key generation is performed many times, a new split key can be generated each time. Therefore, key revocation can be achieved safely without the appearance of past split keys.
  • the confidential search system while generating a new key by converting a split key using a conversion key, encrypted data corresponding to the new key can be searched without decryption. can be re-encrypted with Therefore, high security is achieved and re-encryption processing can be performed efficiently. Furthermore, according to the confidential search system according to the present embodiment, even if the conversion key is executed many times, a new conversion key can be generated each time. Therefore, key conversion or re-encryption can be safely achieved without the appearance of past conversion keys.
  • random numbers can be used to randomize encrypted tags and search queries. Therefore, the encryption tag and search query can be stochastically generated to have different values each time. Therefore, it is difficult to guess the plaintext data and the search keyword from the encrypted tag and the search query. Therefore, high safety can be achieved.
  • keys are distributed and keys are updated or revoked. to allow re-encryption to Furthermore, it allows for probabilistic generation of encrypted data.
  • Embodiment 2 points different from the first embodiment and points added to the first embodiment will be mainly described.
  • the same reference numerals are assigned to components having the same functions as those of the first embodiment, and the description thereof will be omitted.
  • FIG. 23 In the present embodiment, an embodiment using an encrypted index EI instead of the encrypted tag ET described in the first embodiment will be described. This embodiment will be described with reference to FIGS. 23 to 31.
  • FIG. 23 In the present embodiment, an embodiment using an encrypted index EI instead of the encrypted tag ET described in the first embodiment will be described. This embodiment will be described with reference to FIGS. 23 to 31.
  • FIG. 23 is a diagram showing a configuration example of the generation unit 420 in the registration requesting device 400 according to this embodiment.
  • Registration requesting apparatus 400 includes elements such as an index search result generator 424 and an encrypted index generator 425 instead of the encrypted tag generator 423 of the first embodiment.
  • the operation procedure of the confidential search system 100 corresponds to the confidential search method.
  • the program that realizes the operation of the confidential search system 100 corresponds to the confidential search program.
  • FIG. 24 is a flow chart showing the operation of the confidential search system 100 according to this embodiment.
  • Step S110, step S120, step S170, step S180, step S190, and step S200 are as described in the first embodiment.
  • Steps S230, S240, S250, S260, and S310 are described below.
  • step S ⁇ b>230 registration requesting device 400 generates encrypted data C and transmits encrypted data C to data management device 600 .
  • Generation unit 420 of registration requesting device 400 acquires registration key EK1, plaintext data D, and public parameter PP.
  • Generation unit 420 then generates encrypted data C by encrypting plaintext data D using registration key EK1 and public parameter PP.
  • the generator 420 generates a random number used to generate the encrypted data C using the public parameter PP.
  • Generation unit 420 generates encrypted data using registration key EK1, public parameter PP, and random numbers. This random number allows the encrypted data to be randomized.
  • generation unit 420 searches for multiple pieces of plaintext data using a registered keyword included in each piece of plaintext data.
  • the generation unit 420 encrypts the index search result RES showing the search result in an index structure using the registration key EK1, the public parameter PP, and the random number, and encrypts the encrypted index EI obtained by encryption.
  • FIG. 25 is a flow chart showing the procedure of the registration request (S230) according to this embodiment.
  • the registration request (S230) corresponds to the registration request (S130) of the first embodiment.
  • step S231 accepting unit 410 accepts registration key EK1, public parameter PP, and plaintext data D.
  • FIG. Step S231 is the same as step S131 of the first embodiment.
  • One or a plurality of plaintext data D may be accepted. This embodiment will be described on the assumption that a plurality of plaintext data D are received. At this time, it is assumed that a plurality of plaintext data are expressed as ⁇ D ⁇ and n data are received. At this time, a plurality of plaintext data ⁇ D ⁇ are expressed as ⁇ D1, . . . , Dn ⁇ .
  • step S232 the keyword generation unit 421 generates a registered keyword set W.
  • FIG. Step S232 is the same as step S132 of the first embodiment.
  • a registered keyword set W is generated for each plaintext data of a plurality of plaintext data ⁇ D ⁇ .
  • This plurality of registered keyword sets is expressed as ⁇ W ⁇ , and when the plurality of plaintext data ⁇ D ⁇ includes m plaintext data, the plurality of registered keyword sets ⁇ W ⁇ is expressed as ⁇ W1, . . . , Wm ⁇ can be expressed as However, m is an integer of 1 or more.
  • the registered keyword set corresponding to D1 is W1, . . .
  • the registered keyword set corresponding to Dm is Wm.
  • the index search result generation unit 424 generates index search result RES based on a plurality of registered keyword sets ⁇ W ⁇ . Specifically, the index search result generator 424 generates one or more data name IDs (D ). The generated data is the index search result RES.
  • the index search result RES may also be referred to as a search result.
  • FIG. 26 is a diagram showing a configuration example of the index search result RES according to this embodiment.
  • the index search result RES has an inverted index structure as shown in FIG. In other words, it has a structure that allows reverse lookup of identifiers that hit from keywords.
  • the index search result RES associates a keyword with one or more data names for each keyword.
  • step S235 the encrypted index generator 425 encrypts the index search result RES using the registration key EK1, the public parameter PP, and the encrypted index random number IR to generate the encrypted index EI.
  • This encrypted index EI corresponds to encrypted data C in this embodiment.
  • the encrypted index EI is obtained by encrypting the index search result RES, and includes an encrypted keyword key and an encrypted identifier val.
  • the encrypted keyword key is obtained by encrypting the registered keyword w.
  • the set val of encrypted identifiers is obtained by encrypting the set res of identifiers.
  • the encrypted index EI is represented as follows.
  • 0)*ir1) mod N key2 ir1
  • val (val1, val2)
  • val1 EK1 ⁇ (F(w
  • 1)*ir2*res) mod N val2 ir2
  • ID(EI) the encrypted index
  • val2 res may be converted into an integer of 1 or more and N-1 or less in binary, for example, before calculation.
  • ID (D) included in res may be changed to bit representation before calculation. For example, if ID (D1) and ID (Dn) correspond to a registered keyword w in a plurality of keyword sets ⁇ W1, .
  • ID (Dn)” bit representation can be converted to an integer of 1 or more and N-1 or less, and the latter can be expressed with n bits like “10 ... 01”, and the n-bit value can be converted to 1 Calculation of the above val2 becomes possible by converting it to an integer equal to or less than N-1.
  • step S236 the request unit 430 sends the encrypted index EI to the data management device 600.
  • step S ⁇ b>240 data management device 600 receives encrypted data C, converts encrypted data C, and registers the converted data in storage unit 690 .
  • the encrypted data C corresponds to the encrypted index EI.
  • FIG. 27 is a flow chart showing the procedure of the registration operation (S240) according to this embodiment.
  • the registration operation ( S ⁇ b>240 ) is a process executed by data management device 600 .
  • accepting unit 610 accepts registration auxiliary key EK2, public parameter PP, and encryption index EI.
  • the key management unit 620 stores the registration auxiliary key EK2 and the public parameter PP in the storage unit 690 for safekeeping. If the registration auxiliary key EK2 and the public parameter PP are already stored, only the registration auxiliary key EK2 is replaced and stored. Multiple encrypted indexes EI may be accepted. In that case, steps S242 and S243 are executed for each encrypted index EI.
  • step S243 the storage unit 632 registers the converted encrypted index TEI in the registration database 691A.
  • Registration database 691A is stored and archived in storage unit 690 of data management device 600 .
  • FIG. 28 is a diagram showing an example of registration database 691A according to the present embodiment.
  • one row of data corresponds to one transformed encrypted index TEI.
  • the data name ID (EI) and the conversion encryption index TEI are associated with each other.
  • step S ⁇ b>250 the search request device 500 generates a search query SQ and transmits the search query SQ to the data management device 600 .
  • FIG. 29 is a flow chart showing the procedure of the search request (S250) according to this embodiment.
  • the search request (S250) is a process executed by search request device 500.
  • FIG. 29 is a flow chart showing the procedure of the search request (S250) according to this embodiment.
  • the search request (S250) is a process executed by search request device 500.
  • FIG. 29 is a flow chart showing the procedure of the search request (S250) according to this embodiment.
  • the search request (S250) is a process executed by search request device 500.
  • step S251 accepting unit 510 accepts search key SK1, public parameter PP, and search keyword sw.
  • Step S251 is the same as step S151 of the first embodiment.
  • step S252 the random number generation unit 521 generates a search query random number QR using the public parameter PP.
  • the search query random number QR is a random number for encrypting the search query SQ.
  • the random number generator 521 randomly selects integers QR1 and QR2 from a set ⁇ 1, 2, .
  • step S253 the search query generation unit 522 encrypts the search keyword sw using the search key SK1, public parameter PP, and search query random number QR to generate a search query SQ.
  • the search query generator 522 calculates the following search query SQ for the search keyword sw and the search query random number QR.
  • SQ (SQ1, SQ2)
  • SQ1 (SQ11, SQ12)
  • SQ11 SK1 ⁇ (F(sw
  • SQ12 qr1
  • SQ2 (SQ21, SQ22)
  • SQ21 SK1 ⁇ (F(sw
  • SQ22 qr2
  • step S ⁇ b>254 request unit 530 sends search query SQ to data management device 600 .
  • Step S254 is the same as step S154 of the first embodiment.
  • step S ⁇ b>255 the request unit 530 uses the communication device 505 to receive the search result DATA from the data management device 600 .
  • Step S255 is the same as step S155 of the first embodiment.
  • step S256 the output unit 540 outputs the search result DATA.
  • Step S256 is the same as step S156 of the first embodiment.
  • step S260 the data management device 600 searches for converted encrypted data that matches the search query SQ.
  • the transformed encrypted data which is the transformed encrypted data C, corresponds to the transformed encrypted index TEI.
  • FIG. 30 is a flow chart showing the procedure of the search operation (S260) according to this embodiment.
  • the search operation (S260) is a process executed by data management device 600.
  • FIG. 30 is a flow chart showing the procedure of the search operation (S260) according to this embodiment.
  • the search operation (S260) is a process executed by data management device 600.
  • FIG. 30 is a flow chart showing the procedure of the search operation (S260) according to this embodiment.
  • the search operation (S260) is a process executed by data management device 600.
  • step S261 the receiving unit 610 receives the search auxiliary key SK2, the public parameter PP, and the search query SQ.
  • the key management unit 620 stores the search auxiliary key SK2 and the public parameter PP in the storage unit 690 for safekeeping. If the search auxiliary key SK2 and the public parameter PP have already been stored, only the search auxiliary key SK2 is replaced and stored. Multiple search queries SQ may be accepted. In that case, steps S262 to S264 are executed for each search query SQ.
  • step S262 the conversion unit 641 converts the search query SQ using the search auxiliary key SK2 and the public parameter PP to generate a converted search query TSQ.
  • TSQ (TSQ1, TSQ2)
  • TSQ1 (TSQ11, TSQ12)
  • TSQ11 SQ11 ⁇ SK2 mod N
  • TSQ12 SQ12
  • TSQ2 (TSQ11, TSQ12)
  • M11 and M12 are equal to each other for Tkey of the transformed search query TSQ and the transformed encrypted index TEI. If they are equal, attention is paid to Tval corresponding to that Tkey, and the process proceeds to the next step S264. If not, determine if M11 and M12 match for the next Tkey. If M11 and M12 do not match for all Tkeys, DATA is assumed to be an empty set and step S264 is omitted.
  • M11 and M12 can be expressed as follows.
  • 0)*ir1) ⁇ qr1 mod N G ⁇ (X*F(w
  • 0)*qr1) ⁇ ir1 mod N G ⁇ (X*F(sw
  • Tval (Tval1, Tval2)
  • TSQ2 (TSQ21, TSQ22)
  • M21 TSQ21 ⁇ Tval2 mod N
  • M22 Tval1 ⁇ TSQ22 mod N
  • DATA DLog_ ⁇ M21 ⁇ (M22) Note that DLog_ ⁇ M21 ⁇ (M22) represents the discrete logarithm of M22 with M21 as the base.
  • 1)*qr2) ⁇ ir2 mod N G ⁇ (X*F(w
  • 1)*ir2*res) ⁇ qr2 mod N G ⁇ (X*F(w
  • step S265 the output unit 650 uses the communication device 605 to transmit the search result DATA to the search request device 500.
  • Step S310 the re-encrypting device 900 re-encrypts the transformed encrypted index TEI.
  • FIG. 31 is a flow chart showing the procedure of re-encryption (S310) according to this embodiment.
  • Re-encryption (S310) is a process performed by the re-encryption device 900.
  • FIG. 31 is a flow chart showing the procedure of re-encryption (S310) according to this embodiment.
  • Re-encryption (S310) is a process performed by the re-encryption device 900.
  • step S311 the reception unit 910 receives the transformation key TK, the public parameter PP, and the transformation encryption index TEI, and stores the transformation key TK and the public parameter PP in the storage unit 990 for safekeeping. Multiple transform encryption indices TEI may be accepted. In that case, steps S312 and S313 are executed for each transformed encrypted index TEI.
  • step S312 the re-encryption unit 920 re-encrypts the transformed encrypted index TEI using the transformed key TK and the public parameter PP to generate a transformed encrypted index TEI' after re-encryption.
  • Tkey2' Tkey2*RR1
  • Tval2′ Tval2*RR2
  • step S313 the output unit 930 outputs the re-encrypted converted encrypted index TEI'.
  • the re-encrypted converted encrypted index TEI' is stored by replacing the converted encrypted index TEI registered in the registration database 691A of the storage unit 990 of the data management device 600.
  • FIG. 32 is a diagram showing a hardware configuration example of the master key generation device 200 according to this embodiment.
  • the master key generation device 200 comprises processing circuitry 209 .
  • the processing circuit 209 is hardware that implements the reception unit 210 , the generation unit 220 and the output unit 230 .
  • the processing circuitry 209 may be dedicated hardware, or may be the processor 201 that executes programs stored in the memory 202 .
  • processing circuitry 209 may be, for example, a single circuit, multiple circuits, 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.
  • the master key generation device 200 may include multiple processing circuits that substitute for the processing circuit 209 .
  • some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the master key generation device 200 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 33 is a diagram showing a hardware configuration example of the split key generation device 300 according to this embodiment.
  • the split key generation device 300 has a processing circuit 309 .
  • the processing circuit 309 is hardware that implements the reception unit 310 , the split key generation unit 320 and the output unit 330 .
  • the processing circuit 309 may be dedicated hardware, or may be the processor 301 that executes a program stored in the memory 302 .
  • the processing circuit 309 is dedicated hardware, the processing circuit 309 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the split key generation device 300 may include multiple processing circuits that substitute for the processing circuit 309 .
  • some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the split key generation device 300 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 34 is a diagram showing a hardware configuration example of registration requesting apparatus 400 according to this embodiment.
  • Registration device 400 comprises processing circuitry 409 .
  • the processing circuit 409 is hardware that implements the reception unit 410 , the generation unit 420 and the request unit 430 .
  • the processing circuit 409 may be dedicated hardware, or may be the processor 401 that executes a program stored in the memory 402 .
  • the processing circuit 409 is dedicated hardware, the processing circuit 409 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • Registration device 400 may include a plurality of processing circuits that substitute for processing circuit 409 .
  • processing circuitry 409 some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the registration device 400 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 35 is a diagram showing a hardware configuration example of the search request device 500 according to this embodiment.
  • the search request device 500 comprises processing circuitry 509 .
  • the processing circuit 509 is hardware that implements the reception unit 510 , the generation unit 520 , the request unit 530 and the output unit 540 .
  • the processing circuit 509 may be dedicated hardware, or may be the processor 501 that executes a program stored in the memory 502 .
  • the processing circuit 509 is dedicated hardware, the processing circuit 509 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the search operation device 500 may include a plurality of processing circuits that substitute for the processing circuit 509.
  • the functions of the search operation device 500 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 36 is a diagram showing a hardware configuration example of the data management device 600 according to this embodiment.
  • the data management device 600 comprises processing circuitry 609 .
  • the processing circuit 609 is hardware that realizes the reception unit 610 , the key management unit 620 , the registration unit 630 , the search unit 640 and the output unit 650 .
  • the processing circuitry 609 may be dedicated hardware or may be the processor 601 that executes programs stored in the memory 602 .
  • the processing circuit 609 is dedicated hardware, the processing circuit 609 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the data management device 600 may include multiple processing circuits that replace the processing circuit 609 .
  • processing circuitry 609 some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the data management device 600 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 37 is a diagram showing a hardware configuration example of the conversion key generation device 700 according to this embodiment.
  • the conversion key generation device 700 includes processing circuitry 709 .
  • the processing circuit 709 is hardware that implements the reception unit 710 , the generation unit 720 and the output unit 730 .
  • the processing circuitry 709 may be dedicated hardware, or may be the processor 701 that executes programs stored in the memory 702 .
  • the processing circuit 709 is dedicated hardware, the processing circuit 709 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the conversion key generation device 700 may include multiple processing circuits that substitute for the processing circuit 709 .
  • some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the conversion key generation device 700 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 38 is a diagram showing a hardware configuration example of the key conversion device 800 according to this embodiment.
  • the key conversion device 800 comprises processing circuitry 809 .
  • the processing circuit 809 is hardware that implements the reception unit 810 , the conversion unit 820 and the output unit 830 .
  • the processing circuitry 809 may be dedicated hardware, or may be the processor 801 that executes programs stored in the memory 802 .
  • the processing circuit 809 is dedicated hardware, the processing circuit 809 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the key conversion device 800 may include multiple processing circuits that replace the processing circuit 809 .
  • some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the key conversion device 800 can be realized by hardware, software, firmware, or a combination thereof.
  • FIG. 39 is a diagram showing a hardware configuration example of the re-encryption device 900 according to this embodiment.
  • the re-encryption device 900 comprises processing circuitry 909 .
  • the processing circuit 909 is hardware that implements the reception unit 910 , the re-encryption unit 920 and the output unit 930 .
  • the processing circuitry 909 may be dedicated hardware, or may be the processor 901 that executes programs stored in the memory 902 .
  • the processing circuit 909 is dedicated hardware, the processing circuit 909 is, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • the re-encryption device 900 may comprise a plurality of processing circuits that substitute for the processing circuit 909 .
  • some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.
  • the functions of the re-encryption device 900 can be realized by hardware, software, firmware, or a combination thereof.
  • Each device described in the embodiments may be implemented by multiple devices. Also, two or more devices described in the embodiments may be realized by one device.
  • a “unit” that is an element of each device described in the embodiments may be read as “processing”, “process”, “circuit” or “circuitry”.
  • each part of the secure search device has been described as an independent functional block.
  • the functional block of the secure search device may have any configuration as long as it can implement the functions described in the above embodiments.
  • the secure search device may be a system composed of a plurality of devices instead of a single device.
  • a plurality of portions of Embodiments 1 and 2 may be combined for implementation.
  • one portion of these embodiments may be implemented.
  • these embodiments may be implemented in any combination as a whole or in part. That is, in Embodiments 1 and 2, it is possible to freely combine each embodiment, modify any component of each embodiment, or omit any component from each embodiment.
  • 100 secure search system 101 network, 200 master key generation device, 201 processor, 202 memory, 203 auxiliary storage device, 204 input/output interface, 205 communication device, 209 processing circuit, 210 reception unit, 220 generation unit, 230 output unit, 290 storage unit, 300 split key generation device, 301 processor, 302 memory, 303 auxiliary storage device, 304 input/output interface, 305 communication device, 309 processing circuit, 310 reception unit, 320 split key generation unit, 321 registration key generation unit, 322 registration auxiliary key generation unit 323 search key generation unit 324 search auxiliary key generation unit 330 output unit 390 storage unit 400 registration request device 401 processor 402 memory 403 auxiliary storage device 404 input/output interface 405 Communication device, 409 processing circuit, 410 reception unit, 420 generation unit, 421 keyword generation unit, 422 random number generation unit, 423 encrypted tag generation unit, 424 index search result generation unit, 425 encrypted index generation unit, 430 request unit , 490 storage unit, 500 search request device, 501 processor, 502

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

登録要求装置(400)は、生成部(420)と要求部(430)を備える。生成部(420)は、登録鍵と登録補助鍵とからなる登録秘密鍵のうちの登録鍵と、平文データと、公開パラメータとを取得し、登録鍵と公開パラメータとを用いて平文データを暗号化することにより暗号化データを生成する。登録秘密鍵は、マスター鍵と公開パラメータとを用いて生成され、データの暗号化に用いる登録鍵と暗号化されたデータの変換に用いる登録補助鍵とからなる。要求部(430)は、データ管理装置に暗号化データを送信する。データ管理装置は、登録補助鍵と公開パラメータとを用いて暗号化データを変換し、変換により得られた変換暗号化データを、平文データを識別する識別子と対応付けて登録データベースに登録する。

Description

登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム
 本開示は、登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラムに関する。
 秘匿検索とは、暗号化データを暗号化したまま検索する技術である。つまり、秘匿検索は、暗号化データを復号せずに検索する技術である。
 近年、秘匿検索は、クラウドサービスにおいて、サーバ管理者による盗聴および悪意あるソフトウェアによる盗聴から機密情報を守るためのセキュリティ技術として注目されている。つまり、秘匿検索は、インターネットにおいてデータを管理するためのセキュリティ技術として注目されている。
 秘匿検索方式の動作として、登録処理では、登録者はデータを暗号化してからサーバに保管する。検索処理では、検索者は検索キーワードを暗号化してサーバに送信する。その後、サーバは、暗号化された検索キーワードと暗号化して保管されているデータとを復号せずに検索キーワードをデータと照合し、検索キーワードがデータと合致するかを判定する。
 暗号技術では、鍵漏洩リスクの観点から定期的に鍵を更新しつつ、利用していた鍵を失効することがある。よって、秘匿検索でも鍵の更新および失効をすることが考えられる。
 もし、秘匿検索において、単純に鍵を新しい鍵に置き換えると、古い鍵で暗号化されたデータを新しい鍵を用いて検索できなくなってしまう。そのため、結局、古い鍵は捨てられず引き続き保管しなくてはならない。また、保管されている鍵を全て使って検索キーワードを暗号化しなくてはならない。もしくは、新しい鍵で全て対応できるように、古い鍵で暗号化されたデータを新しい鍵で再暗号化する必要がある。
 特許文献1では、秘匿検索時に利用する鍵をいくつかに分割し、それを分散配置することで各ユーザが行う秘匿検索を制御する方法が開示されている。
国際公開2020/003821号パンフレット
 特許文献1では、特定の検索者に対して、分割配置された鍵の一部を利用不可能にすれば、たとえ鍵をもっている検索者であっても秘匿検索をすることはできない。
 一方、特許文献1では、検索者は分割配置された鍵を使って秘匿検索をできるが、登録者は分割配置された鍵は使わず、分割前の鍵を使ってデータを暗号化して登録する。よって、検索者の秘匿検索を制御できるが、登録者のデータの暗号化および登録を制御することはできないという課題がある。
 また、特許文献1では、古い鍵で生成された暗号化データに対して代理人再暗号化技術を用いて再暗号化する変換方法が開示されている。代理人再暗号化技術は、古い鍵で生成された暗号化データに対して、復号を経由せずに新しい鍵で生成された暗号化データに再暗号化する技術である。なお、この暗号化データは、秘匿検索することは困難であり、元のデータを復元するためによく知られた暗号で生成された暗号化データである。すなわち、上記の再暗号化処理はこの復号可能な暗号化データに対する再暗号化処理である。よって、特許文献1では、秘匿検索を行う暗号化データ、すなわち暗号化タグおよび暗号化索引に対して、新しい鍵で再暗号化することはできないという課題がある。
 さらに、特許文献1では秘匿検索する暗号化データの具体的生成方法について開示されている。しかし、その方法は同じデータはいつも同じ値の暗号化データを生成する方法である。よって、特許文献1では、暗号の安全性で重要となる暗号化データの確率的生成、すなわち同じデータでも毎回値が異なる暗号化データを生成することができないという課題がある。
 本開示は、主に、秘匿検索が可能な暗号化データについて、分割鍵を用いて、暗号化データの生成および暗号化データの登録を制御することを目的とする。
 本開示に係る登録要求装置は、
 マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、平文データと、前記公開パラメータと、を取得し、前記登録鍵と前記公開パラメータとを用いて前記平文データを暗号化することにより暗号化データを生成する生成部と、
 前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録するデータ管理装置に、前記暗号化データを送信する要求部と
を備える。
 本開示によれば、秘匿検索が可能な暗号化データについて、分割鍵を用いて、暗号化データの生成および暗号化データの登録を制御することができるという効果を奏する。
実施の形態1に係る秘匿検索システムの構成例を示す図。 実施の形態1に係るマスター鍵生成装置の構成例を示す図。 実施の形態1に係る秘密鍵装置の構成例を示す図。 実施の形態1に係る登録要求装置の構成例を示す図。 実施の形態1に係る検索要求装置の構成例を示す図。 実施の形態1に係るデータ管理装置の構成例を示す図。 実施の形態1に係る変換鍵生成装置の構成例を示す図。 実施の形態1に係る鍵変換装置の構成例を示す図。 実施の形態1に係る再暗号化装置の構成例を示す図。 実施の形態1に係る秘匿検索システムの動作を示すフローチャート。 実施の形態1に係るマスター鍵生成の手順を示すフローチャート。 実施の形態1に係る分割鍵生成の手順を示すフローチャート。 実施の形態1に係る登録要求の手順を示すフローチャート。 実施の形態1に係る登録操作の手順を示すフローチャート。 実施の形態1に係る登録データベースの構成例を示す図。 実施の形態1に係る検索要求の手順を示すフローチャート。 実施の形態1に係る検索操作の手順を示すフローチャート。 実施の形態1に係るデータ削除の手順を示すフローチャート。 実施の形態1に係る分割鍵再生成の手順を示すフローチャート。 実施の形態1に係る変換鍵生成の手順を示すフローチャート。 実施の形態1に係る鍵変換の手順を示すフローチャート。 実施の形態1に係る再暗号化の手順を示すフローチャート。 実施の形態2に係る登録装置の構成例を示す図。 実施の形態2に係る秘匿検索システムの動作を示すフローチャート。 実施の形態2に係る登録要求の手順を示すフローチャート。 実施の形態2に係る検索結果の構成例を示す図。 実施の形態2に係る登録操作の手順を示すフローチャート。 実施の形態2に係る登録データベースの構成例を示す図。 実施の形態2に係る検索要求の手順を示すフローチャート。 実施の形態2に係る検索操作の手順を示すフローチャート。 実施の形態2に係る再暗号化の手順を示すフローチャート。 実施の形態に係るマスター鍵生成装置のハードウェア構成例を示す図。 実施の形態に係る分割鍵装置のハードウェア構成例を示す図。 実施の形態に係る登録要求装置のハードウェア構成例を示す図。 実施の形態に係る検索要求装置のハードウェア構成例を示す図。 実施の形態に係るデータ管理装置のハードウェア構成例を示す図。 実施の形態に係る変換鍵生成装置のハードウェア構成例を示す図。 実施の形態に係る鍵変換装置のハードウェア構成例を示す図。 実施の形態に係る再暗号化装置のハードウェア構成例を示す図。
 以下、本実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。図中の矢印はデータの流れまたは処理の流れを主に示している。
 実施の形態1.
 本実施の形態に係る秘匿検索システム100について、図1から図22に基づいて説明する。
***構成の説明***
 図1は、本実施の形態に係る秘匿検索システム100の構成例を示す図である。
 秘匿検索システム100は、マスター鍵生成装置200と、分割鍵生成装置300と、登録要求装置400と、検索要求装置500と、データ管理装置600と、変換鍵生成装置700と、鍵変換装置800と、再暗号化装置900と、を備える。
 秘匿検索システム100の各装置は、ネットワーク101を介して互いに通信を行う。
 図2は、本実施の形態に係るマスター鍵生成装置200の構成例を示す図である。
 マスター鍵生成装置200は、プロセッサ201とメモリ202と補助記憶装置203と入出力インタフェース204といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201は、CPU、DSPまたはGPUである。
 ICは、Integrated Circuitの略称である。
 CPUは、Central Processing Unitの略称である。
 DSPは、Digital Signal Processorの略称である。
 GPUは、Graphics Processing Unitの略称である。
 メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
 RAMは、Random Access Memoryの略称である。
 補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDDまたはフラッシュメモリである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
 ROMは、Read Only Memoryの略称である。
 HDDは、Hard Disk Driveの略称である。
 入出力インタフェース204は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース204はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。マスター鍵生成装置200の入出力は入出力インタフェース204を用いて行われる。
 USBは、Universal Serial Busの略称である。
 通信装置205はレシーバおよびトランスミッタである。例えば、通信装置205は通信チップまたはNICである。マスター鍵生成装置200の通信は通信装置205を用いて行われる。
 NICは、Network Interface Cardの略称である。
 マスター鍵生成装置200は、受付部210と生成部220と出力部230といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置203には、受付部210と生成部220(マスター鍵生成部)と出力部230(マスター鍵出力部)としてコンピュータを機能させるためのマスター鍵生成プログラムが記憶されている。マスター鍵生成プログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
 補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
 プロセッサ201は、OSを実行しながら、マスター鍵生成プログラムを実行する。
 OSは、Operating Systemの略称である。
 マスター鍵生成プログラムの入出力データは記憶部290に記憶される。
 補助記憶装置203は記憶部290として機能する。ただし、メモリ202、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、補助記憶装置203の代わりに、または、補助記憶装置203と共に、記憶部290として機能してもよい。
 マスター鍵生成装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ201の機能を分担する。
 マスター鍵生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図3は、本実施の形態に係る分割鍵生成装置300の構成例を示す図である。
 分割鍵生成装置300は、プロセッサ301とメモリ302と補助記憶装置303と入出力インタフェース304と通信装置305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301はCPU、DSPまたはGPUである。
 メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
 補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDDまたはフラッシュメモリである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
 入出力インタフェース304は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース304はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。分割鍵生成装置300の入出力は入出力インタフェース304を用いて行われる。
 通信装置305はレシーバおよびトランスミッタである。例えば、通信装置305は通信チップまたはNICである。分割鍵生成装置300の通信は通信装置305を用いて行われる。
 分割鍵生成装置300は、受付部310と分割鍵生成部320と出力部330といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置303には、受付部310と分割鍵生成部320と出力部330としてコンピュータを機能させるための秘密鍵プログラムが記憶されている。分割鍵生成プログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
 補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
 プロセッサ301は、OSを実行しながら、分割鍵生成プログラムを実行する。
 分割鍵生成プログラムの入出力データは記憶部390に記憶される。
 補助記憶装置303は記憶部390として機能する。ただし、メモリ302、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、補助記憶装置303の代わりに、または、補助記憶装置303と共に、記憶部390として機能してもよい。
 分割鍵生成装置300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ301の機能を分担する。
 分割鍵生成プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図4は、本実施の形態に係る登録要求装置400の構成例を示す図である。
 登録要求装置400は、プロセッサ401とメモリ402と補助記憶装置403と入出力インタフェース404と通信装置405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ401は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ401はCPU、DSPまたはGPUである。
 メモリ402は揮発性または不揮発性の記憶装置である。メモリ402は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ402はRAMである。メモリ402に記憶されたデータは必要に応じて補助記憶装置403に保存される。
 補助記憶装置403は不揮発性の記憶装置である。例えば、補助記憶装置403は、ROM、HDDまたはフラッシュメモリである。補助記憶装置403に記憶されたデータは必要に応じてメモリ402にロードされる。
 入出力インタフェース404は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース404はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。登録要求装置400の入出力は入出力インタフェース404を用いて行われる。
 通信装置405はレシーバおよびトランスミッタである。例えば、通信装置405は通信チップまたはNICである。登録要求装置400の通信は通信装置405を用いて行われる。
 登録要求装置400は、受付部410と生成部420と要求部430といった要素を備える。これらの要素はソフトウェアで実現される。
 生成部420は、キーワード生成部421と乱数生成部422と暗号化タグ生成部423といった要素を備える。
 補助記憶装置403には、受付部410と生成部420と要求部430としてコンピュータを機能させるための登録プログラムが記憶されている。登録要求プログラムは、メモリ402にロードされて、プロセッサ401によって実行される。
 補助記憶装置403には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ402にロードされて、プロセッサ401によって実行される。
 プロセッサ401は、OSを実行しながら、登録要求プログラムを実行する。
 登録要求プログラムの入出力データは記憶部490に記憶される。
 補助記憶装置403は記憶部490として機能する。ただし、メモリ402、プロセッサ401内のレジスタおよびプロセッサ401内のキャッシュメモリなどの記憶装置が、補助記憶装置403の代わりに、または、補助記憶装置403と共に、記憶部490として機能してもよい。
 登録要求装置400は、プロセッサ401を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ401の機能を分担する。
 登録要求装置400は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図5は、本実施の形態に係る検索要求装置500の構成例を示す図である。
 検索要求装置500は、プロセッサ501とメモリ502と補助記憶装置503と入出力インタフェース504と通信装置505といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ501は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ501はCPU、DSPまたはGPUである。
 メモリ502は揮発性または不揮発性の記憶装置である。メモリ502は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ502はRAMである。メモリ502に記憶されたデータは必要に応じて補助記憶装置503に保存される。
 補助記憶装置503は不揮発性の記憶装置である。例えば、補助記憶装置503は、ROM、HDDまたはフラッシュメモリである。補助記憶装置503に記憶されたデータは必要に応じてメモリ502にロードされる。
 入出力インタフェース504は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース504はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。検索要求装置500の入出力は入出力インタフェース504を用いて行われる。
 通信装置505はレシーバおよびトランスミッタである。例えば、通信装置505は通信チップまたはNICである。検索要求装置500の通信は通信装置505を用いて行われる。
 検索要求装置500は、受付部510と生成部520と要求部530と出力部540といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置503には、受付部510と生成部520と要求部530と出力部540としてコンピュータを機能させるための検索操作プログラムが記憶されている。検索操作プログラムは、メモリ502にロードされて、プロセッサ501によって実行される。
 補助記憶装置503には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ502にロードされて、プロセッサ501によって実行される。
 プロセッサ501は、OSを実行しながら、検索要求プログラムを実行する。
 検索要求プログラムの入出力データは記憶部590に記憶される。
 補助記憶装置503は記憶部590として機能する。ただし、メモリ502、プロセッサ501内のレジスタおよびプロセッサ501内のキャッシュメモリなどの記憶装置が、補助記憶装置503の代わりに、または、補助記憶装置503と共に、記憶部590として機能してもよい。
 検索要求装置500は、プロセッサ501を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ501の機能を分担する。
 検索要求装置500は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図6は、本実施の形態に係るデータ管理装置600の構成例を示す図である。
 データ管理装置600は、プロセッサ601とメモリ602と補助記憶装置603と入出力インタフェース604と通信装置605といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ601は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ601はCPU、DSPまたはGPUである。
 メモリ602は揮発性または不揮発性の記憶装置である。メモリ602は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ602はRAMである。メモリ602に記憶されたデータは必要に応じて補助記憶装置603に保存される。
 補助記憶装置603は不揮発性の記憶装置である。例えば、補助記憶装置603は、ROM、HDDまたはフラッシュメモリである。補助記憶装置603に記憶されたデータは必要に応じてメモリ602にロードされる。
 入出力インタフェース604は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース604はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。データ管理装置600の入出力は入出力インタフェース604を用いて行われる。
 通信装置605はレシーバおよびトランスミッタである。例えば、通信装置605は通信チップまたはNICである。データ管理装置600の通信は通信装置605を用いて行われる。
 データ管理装置600は、受付部610と鍵管理部620と登録部630と検索部640と出力部650といった要素を備える。これらの要素はソフトウェアで実現される。
 登録部630は、変換部631と保管部632といった要素を備える。
 検索部640は、変換部641と照合部642と抽出部643といった要素を備える。
 補助記憶装置603には、受付部610と鍵管理部620と登録部630と検索部640と出力部650としてコンピュータを機能させるためのデータ管理プログラムが記憶されている。データ管理プログラムは、メモリ602にロードされて、プロセッサ601によって実行される。
 補助記憶装置603には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ602にロードされて、プロセッサ601によって実行される。
 プロセッサ601は、OSを実行しながら、データ管理プログラムを実行する。
 データ管理プログラムの入出力データは記憶部690に記憶される。
 補助記憶装置603は記憶部690として機能する。ただし、メモリ602、プロセッサ601内のレジスタおよびプロセッサ601内のキャッシュメモリなどの記憶装置が、補助記憶装置603の代わりに、または、補助記憶装置603と共に、記憶部690として機能してもよい。
 また、記憶部690には、登録データベース691が記憶される。
 データ管理装置600は、プロセッサ601を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ601の機能を分担する。
 データ管理装置600は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図7は、本実施の形態に係る変換鍵生成装置700の構成例を示す図である。
 変換鍵生成装置700は、プロセッサ701とメモリ702と補助記憶装置703と入出力インタフェース704と通信装置705といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ701は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ701はCPU、DSPまたはGPUである。
 メモリ702は揮発性または不揮発性の記憶装置である。メモリ702は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ702はRAMである。メモリ702に記憶されたデータは必要に応じて補助記憶装置703に保存される。
 補助記憶装置703は不揮発性の記憶装置である。例えば、補助記憶装置703は、ROM、HDDまたはフラッシュメモリである。補助記憶装置703に記憶されたデータは必要に応じてメモリ702にロードされる。
 入出力インタフェース704は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース704はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。変換鍵生成装置700の入出力は入出力インタフェース704を用いて行われる。
 通信装置705はレシーバおよびトランスミッタである。例えば、通信装置705は通信チップまたはNICである。変換鍵生成装置700の通信は通信装置705を用いて行われる。
 変換鍵生成装置700は、受付部710と生成部720と出力部730といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置703には、受付部710と生成部720と出力部730としてコンピュータを機能させるための変換鍵生成プログラムが記憶されている。変換鍵生成プログラムは、メモリ702にロードされて、プロセッサ701によって実行される。
 補助記憶装置703には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ702にロードされて、プロセッサ601によって実行される。
 プロセッサ701は、OSを実行しながら、変換鍵生成プログラムを実行する。
 変換鍵生成プログラムの入出力データは記憶部790に記憶される。
 補助記憶装置703は記憶部790として機能する。ただし、メモリ702、プロセッサ701内のレジスタおよびプロセッサ701内のキャッシュメモリなどの記憶装置が、補助記憶装置703の代わりに、または、補助記憶装置703と共に、記憶部790として機能してもよい。
 変換鍵生成装置700は、プロセッサ701を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ701の機能を分担する。
 変換鍵生成装置700は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図8は、本実施の形態に係る鍵変換装置800の構成例を示す図である。
 鍵変換装置800は、プロセッサ801とメモリ802と補助記憶装置803と入出力インタフェース804と通信装置805といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ801は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ801はCPU、DSPまたはGPUである。
 メモリ802は揮発性または不揮発性の記憶装置である。メモリ802は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ802はRAMである。メモリ802に記憶されたデータは必要に応じて補助記憶装置803に保存される。
 補助記憶装置803は不揮発性の記憶装置である。例えば、補助記憶装置803は、ROM、HDDまたはフラッシュメモリである。補助記憶装置803に記憶されたデータは必要に応じてメモリ802にロードされる。
 入出力インタフェース804は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース804はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。鍵変換装置800の入出力は入出力インタフェース804を用いて行われる。
 通信装置805はレシーバおよびトランスミッタである。例えば、通信装置805は通信チップまたはNICである。鍵変換装置800の通信は通信装置805を用いて行われる。
 鍵変換装置800は、受付部810と変換部820と出力部830といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置803には、受付部810と変換部820と出力部830としてコンピュータを機能させるための鍵変換プログラムが記憶されている。鍵変換プログラムは、メモリ802にロードされて、プロセッサ801によって実行される。
 補助記憶装置803には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ802にロードされて、プロセッサ801によって実行される。
 プロセッサ801は、OSを実行しながら、鍵変換プログラムを実行する。
 鍵変換プログラムの入出力データは記憶部890に記憶される。
 補助記憶装置803は記憶部890として機能する。ただし、メモリ802、プロセッサ801内のレジスタおよびプロセッサ801内のキャッシュメモリなどの記憶装置が、補助記憶装置803の代わりに、または、補助記憶装置803と共に、記憶部890として機能してもよい。
 鍵変換装置800は、プロセッサ801を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ801の機能を分担する。
 鍵変換装置800は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図9は、本実施の形態に係る再暗号化装置900の構成例を示す図である。
 再暗号化装置900は、プロセッサ901とメモリ902と補助記憶装置903と入出力インタフェース904と通信装置905といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ901は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ901はCPU、DSPまたはGPUである。
 メモリ902は揮発性または不揮発性の記憶装置である。メモリ902は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ902はRAMである。メモリ902に記憶されたデータは必要に応じて補助記憶装置903に保存される。
 補助記憶装置903は不揮発性の記憶装置である。例えば、補助記憶装置903は、ROM、HDDまたはフラッシュメモリである。補助記憶装置903に記憶されたデータは必要に応じてメモリ902にロードされる。
 入出力インタフェース904は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース904はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。再暗号化装置900の入出力は入出力インタフェース904を用いて行われる。
 通信装置905はレシーバおよびトランスミッタである。例えば、通信装置905は通信チップまたはNICである。再暗号化装置900の通信は通信装置905を用いて行われる。
 再暗号化装置900は、受付部910と再暗号化部920と出力部930といった要素を備える。これらの要素はソフトウェアで実現される。
 補助記憶装置903には、受付部910と再暗号化部920と出力部930としてコンピュータを機能させるための再暗号化プログラムが記憶されている。再暗号化プログラムは、メモリ902にロードされて、プロセッサ901によって実行される。
 補助記憶装置903には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ902にロードされて、プロセッサ901によって実行される。
 プロセッサ901は、OSを実行しながら、再暗号化プログラムを実行する。
 再暗号化プログラムの入出力データは記憶部990に記憶される。
 補助記憶装置903は記憶部990として機能する。ただし、メモリ902、プロセッサ901内のレジスタおよびプロセッサ901内のキャッシュメモリなどの記憶装置が、補助記憶装置903の代わりに、または、補助記憶装置903と共に、記憶部990として機能してもよい。
 再暗号化装置900は、プロセッサ901を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ901の機能を分担する。
 再暗号化装置900は、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
***動作の説明***
 次に、本実施の形態に係る秘匿検索システム100の動作について説明する。秘匿検索システム100の動作手順は、秘匿検索方法に相当する。また、秘匿検索システム100の動作を実現するプログラムは、秘匿検索プログラムに相当する。
 図10は、本実施の形態に係る秘匿検索システム100の動作を示すフローチャートである。
<マスター鍵生成:S110>
 ステップS110において、マスター鍵生成装置200は、マスター鍵MKと、公開パラメータPPと、を生成する。
 図11は、本実施の形態に係るマスター鍵生成(S110)の手順を示すフローチャートである。
 マスター鍵生成(S110)は、マスター鍵生成装置200によって実行される処理である。
 ステップS111において、受付部210は、鍵長BITを受け付ける。
 鍵長BITは、マスター鍵MKの長さであり、正の整数(自然数)で表される。
 ステップS112において、生成部220は、鍵長BITに基づいて、マスター鍵MKと公開パラメータPPとを生成する。
 具体的には、以下の通りである。
 まず、生成部220は、BIT/2と同じビット長を有する2つの素数(P,Q)をランダムに選ぶ。
 次に、生成部220は、素数Pと素数Qの積N(=P*Q)を算出する。
 次に、生成部220は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数gを選ぶ。
 次に、生成部220は、整数gの二乗を積Nで割って余りG(=g*g modN)を算出する。「x mody」は整数xを整数yで割ったときの余りを意味する。
 ここで、(P-1)*(Q-1)を計算して得られる積を「Z」と記す。
 次に、生成部220は、1以上(Z-1)以下の整数の集合{1,2,・・・,Z-1}から、ランダムに整数Xを選ぶ。
 また、生成部220は、暗号的関数Fを選択する。暗号的関数Fは暗号的ハッシュ関数である。暗号的関数Fの具体例は、SHA-256またはSHA-512である。
 そして、生成部220は、マスター鍵MKと公開パラメータPPとを生成する。
 マスター鍵MKは、素数Pと、素数Qと、余りGと、整数Zと、整数Xと、を含む。
 公開パラメータPPは、積Nと、暗号的関数Fの識別子と、を含む。
 マスター鍵MKは以下のように表される。
 MK=(P,Q,G,Z,X)
 公開パラメータPPは以下のように表される。
 PP=(N,F)
 ステップS113において、生成部220は、マスター鍵MKと公開パラメータPPを記憶部290に記憶して保管する。
 ステップS114において、出力部230は、マスター鍵MKと公開パラメータPPとを出力する。
 例えば、出力部230は、通信装置205を用いて、マスター鍵MKを分割鍵生成装置300と鍵変換装置800とへ送信する。
 マスター鍵MKは、登録秘密鍵EKあるいは検索秘密鍵SKを生成するために用いられる。あるいは、マスター鍵MKは、マスター鍵MKを変換する際に用いられる。
 さらに、出力部230は、公開パラメータPPを出力する。
 例えば、出力部230は、通信装置205を用いて、公開パラメータPPを、分割鍵生成装置300と登録要求装置400と検索要求装置500とデータ管理装置600と変換鍵生成装置700と鍵変換装置800と再暗号化装置900のそれぞれに送信する。
 公開パラメータPPは、登録秘密鍵EKの生成、検索秘密鍵SKの生成、暗号化データCの登録、暗号化データCの検索、検索クエリSQの生成、登録秘密鍵EKの再生成、検索秘密鍵SKの再生成、変換鍵TKの生成、マスター鍵MKの鍵変換、登録秘密鍵EKの鍵変換、検索秘密鍵SKの鍵変換、および、暗号化データCの再暗号化に用いられる。
 図10に戻り、ステップS120から説明を続ける。
<分割鍵生成:S120>
 ステップS120において、分割鍵生成装置300は、マスター鍵MKと公開パラメータPPとを用いて、登録秘密鍵EKと検索秘密鍵SKを生成する。
 登録秘密鍵EKは、データの暗号化、および、登録の際における暗号化されたデータの変換に用いられる。
 登録秘密鍵EKは、登録鍵EK1と登録補助鍵EK2とからなる。
 登録鍵EK1は、データの暗号化に用いられる。
 登録補助鍵EK2は、暗号化されたデータの変換に用いられる。
 検索秘密鍵SKは、検索に用いるキーワードから検索に用いるクエリを生成するために用いられるとともに、生成されたクエリの変換に用いられる。
 検索秘密鍵SKは、検索鍵SK1と検索補助鍵SK2とからなる。
 検索鍵SK1は、検索に用いるキーワードから検索に用いるクエリを生成するために用いられる。
 検索補助鍵SK2は、生成されたクエリの変換に用いられる。
 図12は、本実施の形態に係る分割鍵生成(S120)の手順を示すフローチャートである。
 分割鍵生成(S120)は、分割鍵生成装置300によって実行される処理である。
 ステップS121において、受付部310は、マスター鍵MKと公開パラメータPPを受け付け、マスター鍵MKと公開パラメータPPを記憶部390に記憶して保管する。
 ただし、マスター鍵MKと公開パラメータPPが既に記憶されている場合、ステップS121は不要である。
 ステップS122において、分割鍵生成部320は、マスター鍵MKと公開パラメータPPとを用いて、登録秘密鍵EK=(EK1,EK2)を生成する。
 まず、分割鍵生成部320は、1以上(Z-1)以下の整数の集合{1,2,・・・,Z-1}から、ランダムに整数ek1を選ぶ。
 次に、分割鍵生成部320は、EK1=G^ek1 modNを計算する。
 次に、分割鍵生成部320は、「X=ek1*EK2 modZ」となる1以上(Z-1)以下の整数EK2を求める。この求め方は、拡張ユークリッドの互除法から効率的に算出することが可能である。
 ステップS123において、分割鍵生成部320は、マスター鍵MKと公開パラメータPPとを用いて、検索秘密鍵SK=(SK1,SK2)を生成する。
 まず、分割鍵生成部320は、1以上(Z-1)以下の整数の集合{1,2,・・・,Z-1}から、ランダムに整数sk1を選ぶ。
 次に、分割鍵生成部320は、SK1=G^sk1 modNを計算する。
 次に、分割鍵生成部320は、「X=SK1*SK2 modZ」となる1以上(Z-1)以下の整数EK2を求める。この求め方は、拡張ユークリッドの互除法から効率的に算出することが可能である。
 ステップS124において、分割鍵生成部320は、登録秘密鍵EKと検索秘密鍵SKとを記憶部390に記憶して保管する。
 ステップS125において、出力部330は、登録秘密鍵EKと検索秘密鍵SKを出力する。
 例えば、出力部330は、通信装置305を用いて、登録鍵EK1を登録要求装置400に送信する。
 例えば、出力部330は、通信装置305を用いて、検索鍵SK1を検索要求装置500に送信する。
 例えば、出力部330は、通信装置305を用いて、登録補助鍵EK2と検索補助鍵SK2とをデータ管理装置600に送信する。
 例えば、出力部330は、通信装置305を用いて、登録秘密鍵EKと検索秘密鍵SKとを鍵変換装置800に送信する。
 登録鍵EK1は、暗号化データCの生成に用いられる。
 登録補助鍵EK2は、暗号化データCの変換に用いられる。
 検索鍵SK1は、検索クエリSQの生成に用いられる。
 検索補助鍵EK2は、検索クエリSQの変換に用いられる。
 図10に戻り、ステップS130から説明を続ける。
 ステップS130からステップS140、ステップS150からステップS160、ステップS170、ステップS180、ステップS190からステップS210は、繰り返し実行される。
 暗号化データCが登録される場合、処理はステップS130に進む。
 例えば、利用者が暗号化データCの登録命令を登録要求装置400に入力した場合、処理はステップS130に進む。
 暗号化データCが検索される場合、処理はステップS150に進む。
 例えば、利用者が暗号化データCの検索命令を検索要求装置500に入力した場合、処理はステップS150に進む。
 データ名に基づいて暗号化データCが削除される場合、処理はステップS170に進む。
 例えば、利用者が暗号化データCの削除命令を登録要求装置400に入力した場合、処理はステップS170に進む。
 登録秘密鍵EKと検索秘密鍵SKとを再生成する場合、処理はステップS180に進む。
 例えば、分割鍵生成装置300は、定期的に登録秘密鍵EKと検索秘密鍵SKの使用期間を基準期間と比較する。そして、登録秘密鍵EKと検索秘密鍵SKの使用期間が基準期間を超えている場合、処理はステップS180に進む。
 例えば、管理者が、登録鍵EK1もしくは登録補助鍵EK2のいずれか一方、または、検索鍵SK1もしくは検索補助鍵SK2のいずれか一方が漏洩したと判断する。そして、管理者が、それらの秘密鍵の更新命令を分割鍵生成装置300に入力した場合、処理はステップS180に進む。
 登録秘密鍵EKと検索秘密鍵SKを変換、かつ、暗号化データCを再暗号化する場合、処理はステップS190に進む。
 例えば、管理者が、登録鍵EK1かつ登録補助鍵EK2、または、検索鍵SK1かつ検索補助鍵SK2が漏洩したと判断する。そして、管理者が、それらの秘密鍵の更新および暗号化データCの再暗号化命令を変換鍵生成装置700と鍵変換装置800と再暗号化装置900とに入力した場合、処理はステップS190に進む。
<登録要求:S130>
 ステップS130において、登録要求装置400は、暗号化データCを生成し、暗号化データCをデータ管理装置600へ送信する。
 登録要求装置400の生成部420は、登録鍵EK1と平文データDと公開パラメータPPとを取得する。そして、生成部420は、登録鍵EK1と公開パラメータPPと用いて平文データDを暗号化することにより暗号化データCを生成する。このとき、生成部420は、公開パラメータPPを用いて暗号化データCの生成に用いる乱数を生成する。そして、生成部420は、登録鍵EK1と公開パラメータPPと乱数とを用いて暗号化データを生成する。この乱数により、暗号化データをランダム化できる。
 本実施の形態では、生成部420は、登録鍵EK1と公開パラメータPPと乱数とを用いて、平文データDに含まれる登録キーワードを暗号化し、暗号化により得られた暗号化タグETを暗号化データCとして生成する。
 具体的には、以下の通りである。
 図13は、本実施の形態に係る登録要求(S130)の手順を示すフローチャートである。
 登録要求(S130)は、登録要求装置400によって実行される処理である。
 ステップS131において、受付部410は、登録鍵EK1と公開パラメータPPと平文データDとを受け付け、登録鍵EK1と公開パラメータPPを記憶部490に記憶して保管する。
 登録鍵EK1と公開パラメータPPが既に保管されている場合、登録鍵EK1のみを置き換えて保管する。
 平文データDは、暗号化されていないデータである。
 平文データDには、データ名ID(D)がメタデータとして含まれる。識別子は一意となるデータである。
 複数の平文データDが受け付けられてもよい。その場合、平文データDごとにステップS132からステップS135が実行される。
 ステップS132において、キーワード生成部421は、登録キーワード集合Wを生成する。
 登録キーワード集合Wは、平文データDに関するキーワードの集合である。
 具体的には、キーワード生成部421は、平文データDに対して形態素解析または自然言語処理といった処理を行うことによって、平文データDからキーワードを1つ以上抽出する。抽出された複数のキーワードが登録キーワード集合Wとなる。
 例えば、登録キーワードWはn個のキーワードからなるとする。すなわち、登録キーワードWは{w1,・・・,wn}とする。ただし、nは1以上の整数とする。
 キーワード生成部421が登録キーワードWを生成する代わりに、受付部410が、入出力インタフェース404を介して、登録要求装置400に入力される登録キーワードWを受け付けてもよい。
 ステップS133において、乱数生成部422は、公開パラメータPPを用いて暗号化タグ用乱数KRを生成する。
 暗号化タグ用乱数KRは、後述する登録キーワード集合Wを暗号化するための乱数である。
 具体的には、乱数生成部422は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数を選ぶ。このランダムな整数は登録キーワード集合Wの要素数と同じだけ選ぶ。このランダムな整数の集合が暗号化タグ用乱数KRである。
 例えば、登録キーワード集合W={w1,・・・,wn}の場合、暗号化タグ用乱数KRは{kr1,・・・,krn}となる。
 なお、もし高速に秘匿検索処理することを考慮してランダム化が不用であれば、kr1からkrnの値をkr1=・・・=krn=1として設定すればよい。
 ステップS134において、暗号化タグ生成部423は、登録鍵EK1と公開パラメータPPと暗号化タグ用乱数KRを用いて登録キーワード集合Wを暗号化し、暗号化タグETを生成する。
 具体的に、暗号化タグ生成部423は、登録キーワード集合W={w1,・・・,wn}と暗号化タグ用乱数KR={kr1,・・・,krn}に対して、すべてのiについて以下の暗号化タグ要素ETiを計算する。ただし、iは1以上n以下の整数である。
 ETi=(ETi1,ETi2)
 ETi1=EK1^(F(w)*kri) modN
 ETi2=kri
 次に、暗号化タグ生成部423は、暗号化タグETとして次のように生成する。
 ET=(ID(D),ET1,・・・,ETn)
 この暗号化タグETが、本実施の形態における暗号化データCに相当する。
 ステップS135において、要求部430は、暗号化タグETをデータ管理装置600に送付する。
 図10に戻り、ステップS140から説明を続ける。
<登録操作:S140>
 ステップS140において、データ管理装置600は、暗号化データCを受信し、暗号化データCを変換して記憶部690に登録する。本実施の形態では、暗号化データCは暗号化タグETに相当する。
 データ管理装置600の登録部630は、登録補助鍵EK2と公開パラメータPPとを用いて暗号化データCを変換する。登録部630は、変換により得られた変換暗号化データを、平文データDを識別する識別子ID(D)と対応付けて登録データベース691に登録する。
 具体的には、以下の通りである。
 図14は、本実施の形態に係る登録操作(S140)の手順を示すフローチャートである。
 登録操作(S140)は、データ管理装置600によって実行される処理である。
 ステップS141において、受付部610は、登録補助鍵EK2と公開パラメータPPと暗号化タグETとを受け付ける。その後、鍵管理部620は、登録補助鍵EK2と公開パラメータPPを記憶部690に記憶して保管する。
 登録補助鍵EK2と公開パラメータPPが既に保管されている場合、登録補助鍵EK2のみを置き換えて保管する。
 複数の暗号化タグETが受け付けられてもよい。その場合、暗号化タグETごとにステップS142とステップS143が実行される。
 ステップS142において、変換部631は、登録補助鍵EK2と公開パラメータPPとを用いて暗号化タグETを変換し、変換暗号化タグTETを生成する。
 具体的に、変換部631は、暗号化タグET={ID(D),ET1,・・・,ETn}に対して、すべてのiについて以下のように変換暗号化タグ要素TETiを計算する。ただし、iは1以上n以下の整数で、ETi=(ETi1,ETi2)である。
 TETi=(TETi1,TETi2)
 TETi1=ETi1^EK2 modN
 TETi2=ETi2
 次に、変換部631は、変換暗号化タグTETとして次のように生成する。
 TET=(ID(D),TET1,・・・,TETn)
 ステップS143おいて、保管部632は、変換暗号化タグTETを登録データベース691に登録する。
 登録データベース691は、データ管理装置600の記憶部690に記憶して保管される。
 図15は、本実施の形態に係る登録データベース691の例を示す図である。
 図15において、1行のデータが1つの変換暗号化タグTETに相当する。
 1行のデータにおいて、データ名ID(D)と変換暗号化タグTETとが互いに対応付けられる。
 図10に戻り、ステップS150から説明を続ける。
<検索要求:S150>
 ステップS150において、検索要求装置500は、検索クエリSQを生成し、検索クエリSQをデータ管理装置600へ送信する。
 検索要求装置500の生成部520は、検索鍵SK1と検索キーワードwと公開パラメータPPとを取得し、検索鍵SK1と公開パラメータPPとを用いて検索キーワードwから検索クエリSQを生成する。生成部520は、公開パラメータPPを用いて検索クエリSQの生成に用いる乱数を生成し、検索鍵SK1と公開パラメータPPと乱数とを用いて検索クエリSQを生成する。
 検索要求装置500の要求部154は、データ管理装置に検索クエリSQを送信する。そして、要求部154は、データ管理装置600から、検索クエリSQと一致する暗号化データCに対応する識別子ID(D)を検索結果DATAとして取得する。
 具体的には、以下の通りである。
 図16は、本実施の形態に係る検索要求(S150)の手順を示すフローチャートである。
 検索要求(S150)は、検索要求装置500によって実行される処理である。
 ステップS151において、受付部510は、検索鍵SK1と公開パラメータPPと検索キーワードswとを受け付ける。そして、受付部510は、検索鍵SK1と公開パラメータPPを記憶部590に記憶して保管する。
 検索鍵SK1と公開パラメータPPが既に保管されている場合、検索鍵SK1のみを置き換えて保管する。
 検索キーワードswは、暗号化されていないキーワードデータである。
 複数の検索キーワードswが受け付けられてもよい。その場合、検索キーワードswごとにステップS152とステップS153が実行される。
 ステップS152において、乱数生成部521は、公開パラメータPPを用いて検索クエリ用乱数QRを生成する。
 検索クエリ用乱数QRは、検索クエリSQを暗号化するための乱数である。
 具体的には、乱数生成部521は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数QRを選ぶ。
 なお、もし高速に秘匿検索処理することを考慮してランダム化が不用であれば、QRの値をQR=1として設定すればよい。
 ステップS153において、検索クエリ生成部522は、検索鍵SK1と公開パラメータPPと検索クエリ用乱数QRを用いて検索キーワードswを暗号化し、検索クエリSQを生成する。
 具体的に、検索クエリ生成部522は、検索キーワードswと検索クエリ用乱数QRに対して、以下の検索クエリSQを計算する。
 SQ=(SQ1,SQ2)
 SQ1=SK1^(F(sw)*QR) modN
 SQ2=QR
 ステップS154において、要求部530は、検索クエリSQをデータ管理装置600に送付する。
 ステップS155において、要求部530は、通信装置505を用いて、データ管理装置600から検索結果DATAを受信する。
 検索結果DATAとは、検索クエリSQとマッチした暗号化タグのデータ名ID(D)の集合である。すなわち、検索クエリSQとマッチしたデータのデータ名の集合である。
 ステップS156において、出力部540は、検索結果DATAを出力する。
 例えば、出力部540は、入出力インタフェース504を介して、検索結果DATAをディスプレイに表示する。
 ただし、検索結果DATAが空集合である場合、出力部540は、検索エラーメッセージを出力する。
 検索エラーメッセージは、秘匿検索でヒットした平文データDが無いことを示す。
 図10に戻り、ステップS160から説明を続ける。
<検索操作:S160>
 ステップS160において、データ管理装置600は、検索クエリSQに合致する変換された暗号化データを検索する。本実施の形態では、変換された暗号化データCである変換暗号化データは変換暗号化タグTETに相当する。
 データ管理装置600の検索部640は、検索補助鍵SK2と公開パラメータPPとを取得し、検索補助鍵SK2と公開パラメータPPとを用いて検索クエリSQを変換する。検索部640は、変換により得られた変換検索クエリTSQと変換暗号化データとを照合し、変換検索クエリTSQと一致する変換暗号化データに対応する識別子ID(D)を抽出する。
 具体的には、以下の通りである。
 図17は、本実施の形態に係る検索操作(S160)の手順を示すフローチャートである。
 検索操作(S160)は、データ管理装置600によって実行される処理である。
 ステップS161において、受付部610は、検索補助鍵SK2と公開パラメータPPと検索クエリSQとを受け付ける。その後、鍵管理部620は、検索補助鍵SK2と公開パラメータPPを記憶部690に記憶して保管する。
 検索補助鍵SK2と公開パラメータPPが既に保管されている場合、検索補助鍵SK2のみを置き換えて保管する。
 複数の検索クエリSQが受け付けられてもよい。その場合、検索クエリSQごとにステップS162からステップS164が実行される。
 ステップS162において、変換部641は、検索補助鍵SK2と公開パラメータPPとを用いて検索クエリSQを変換し、変換検索クエリTSQを生成する。
 具体的に、変換部641は、検索クエリSQ={SQ1,SQ2}に対して、以下のように変換検索クエリTSQを計算する。
 TSQ=(TSQ1,TSQ2)
 TSQ1=SQ1^SK2 modN
 TSQ2=SQ2
 ステップS163において、照合部642は、変換検索クエリTSQを登録データベース691の中の各変換暗号化タグTETと照合し、変換検索クエリTSQに合致する変換暗号化タグTETを見つける。
 具体的に、照合部642は、変換検索クエリを各変換暗号化タグTETに対して以下のように照合する。なお、iは1以上m以下の整数、kは1以上の整数である。
 TET=(ID(D),TET1,・・・,TETk)
 TETi=(TETi1,TETi2)
 M1=TETi1^TSQ2 modN
 M2=TSQ1^TETi2 modN
 M1=?M2
 すなわち、各変換暗号化タグTETに対して、M1とM2が等しくなるかを計算する。もし等しくなるのであれば、一致していると判定する。
 例えば、i=k=1のとき、変換暗号化タグTET=(ID(D),TET1)を以下のように表すことができる。
 TET11=G^(ek1*EK2*F(w)*kr)
      =G^(X*F(w)*kr)
 TET12=kr
 また、変換検索クエリTSQ=(TSQ1,TSQ2)を以下のように表すことができる。
 TSQ1=G^(sk1*SK2*F(kw)*QR)
     =G^(X*F(kw)*QR)
 TSQ2=QR
 このとき、M1とM2は次のように表すことができる。
 M1=G^(X*F(w)*kr)^QR modN
   =G^(X*F(w)*kr*QR) modN
 M2=G^(X*F(sw)*QR)^kr modN
   =G^(X*F(sw)*QR*kr) modN
 したがって、w=swとなればM1=M2となり、そうでなければM1≠M2となる。
 ステップS164において、抽出部643は、ステップS163で変換検索クエリTSQと一致した変換暗号化タグTETのID(D)を全て抽出して、検索結果DATAを生成する。
 具体的に、抽出部643は、一致した変換暗号化タグTET=(ID(D),TET1,・・・,TETk)のID(D)を抽出し、検索結果DATAに含める。ただし、kは1以上の整数である。
 ステップS165において、出力部650は、通信装置605を用いて、検索結果DATAを検索要求装置500へ送信する。
 図10に戻り、ステップS170から説明を続ける。
<データ削除:S170>
 ステップS170において、データ管理装置600は、削除ファイル名に対応する暗号化データCを削除する。本実施の形態では、変換された暗号化データCである変換暗号化データは変換暗号化タグTETに相当する。
 データ管理装置600の登録部630は、登録データベース691から削除する平文データDを識別する識別子ID(D)を取得し、識別子ID(D)に対応する変換暗号化データを登録データベース691から削除する。
 具体的には、以下の通りである。
 図18は、本実施の形態に係るデータ削除(S170)の手順を示すフローチャートである。
 データ削除(S170)は、登録要求装置400とデータ管理装置600とによって実行される処理である。ただし、登録要求装置400の代わりに検索要求装置500または他の装置が使用されてもよい。
 ステップS171において、登録要求装置400の受付部410は、削除ファイル名を受け付ける。
 例えば、受付部410は、入出力インタフェース404を介して、登録要求装置400に入力される削除ファイル名を受け付ける。また、受付部410は、登録要求装置400において実行されるアプリケーションプログラムから、削除ファイル名を受け付けてもよい。
 ステップS172において、登録要求装置400の要求部430は、通信装置405を用いて、削除ファイル名をデータ管理装置600へ送信する。
 ステップS173において、データ管理装置600の受付部610は、通信装置605を用いて、削除ファイル名を受信する。
 ステップS174において、データ管理装置600の登録部630は、削除ファイル名に対応する変換暗号化タグTETを登録データベース691から削除する。
 具体的には、登録部630は、削除ファイル名と同じデータ名ID(D)を含む変換暗号化タグTETを削除する。
 図10に戻り、ステップS180から説明を続ける。
<分割鍵再生成:S180>
 ステップS180において、分割鍵生成装置300は、登録秘密鍵EK’と検索秘密鍵SK’を再生成する。分割鍵生成装置300は、マスター鍵MKと公開パラメータPPとを用いて、登録秘密鍵EK’と検索秘密鍵SK’とをランダムに再生成する。そして、分割鍵生成装置300は、すでに利用されている登録秘密鍵EKと検索秘密鍵SKを登録秘密鍵EK’と検索秘密鍵SK’に置き換える。
 図19は、本実施の形態に係る分割鍵再生成(S180)の手順を示すフローチャートである。
 分割鍵再生成(S180)は、分割鍵生成装置300によって実行される処理である。
 ステップS181において、受付部310は、マスター鍵MKと公開パラメータPPを受け付け、マスター鍵MKと公開パラメータPPを記憶部390に記憶して保管する。
 ただし、マスター鍵MKと公開パラメータPPが既に記憶されている場合、ステップS121は不要である。
 ステップS182において、分割鍵生成部320は、マスター鍵MKと公開パラメータPPとを用いて、登録秘密鍵EK’=(EK1’,EK2’)を再生成する。具体的な再生成方法はステップS122での登録秘密鍵EKの生成方法と同じためここでは省略する。
 ステップS183において、分割鍵生成部320は、マスター鍵MKと公開パラメータPPとを用いて、検索秘密鍵SK’=(SK1’,SK2’)を再生成する。具体的な再生成方法はステップS123での検索秘密鍵SKの生成方法と同じためここでは省略する。
 ステップS184において、分割鍵生成部320は、登録秘密鍵EK’と検索秘密鍵SK’を、登録秘密鍵EKと検索秘密鍵SKとして記憶部390に記憶して保管する。
 登録秘密鍵EKと検索秘密鍵SKとが記憶部390にすでに保管されている場合、その保管されている登録秘密鍵EKと検索秘密鍵SKは、新たにステップS182とステップS183で生成した登録秘密鍵EK’と検索秘密鍵SK’に置き換えられる。
 ステップS185において、出力部330は、登録秘密鍵EK’と検索秘密鍵SK’を出力する。
 例えば、出力部330は、通信装置305を用いて、登録鍵EK1’を登録要求装置400に送信する。
 例えば、出力部330は、通信装置305を用いて、検索鍵SK1’を検索要求装置500に送信する。
 例えば、出力部330は、通信装置305を用いて、登録補助鍵EK2’と検索補助鍵SK2’とをデータ管理装置600に送信する。
 例えば、出力部330は、通信装置305を用いて、登録秘密鍵EK’と検索秘密鍵SK’とを鍵変換装置800に送信する。
 登録鍵EK1’は、暗号化データCの生成に用いられる。
 登録補助鍵EK2’は、暗号化データCの変換に用いられる。
 検索鍵SK1’は、検索クエリSQの生成に用いられる。
 検索補助鍵EK2’は、検索クエリSQの変換に用いられる。
 図10に戻り、ステップS190から説明を続ける。
<変換鍵生成:S190>
 ステップS190において、変換鍵生成装置700は、マスター鍵MKと登録秘密鍵EKと検索秘密鍵SKとを鍵変換する、および、変換暗号化タグTETを再暗号化するために、変換鍵TKを生成する。
 図20は、本実施の形態に係る変換鍵生成(S190)の手順を示すフローチャートである。
 変換鍵生成(S190)は、変換鍵生成装置700によって実行される処理である。
 ステップS191において、受付部710は、公開パラメータPPを受け付け、公開パラメータPPを記憶部790に記憶して保管する。
 ただし、公開パラメータPPが既に記憶されている場合、ステップS181は不要である。
 ステップS192において、生成部720は、公開パラメータPPを用いて、変換鍵TKを生成する。
 具体的に、分割鍵生成部320は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数TKを選ぶ。
 ステップS193において、生成部720は、変換鍵TKを記憶部790に記憶して保管する。
 ステップS194において、出力部730は、変換鍵TKを出力する。
 例えば、出力部730は、通信装置705を用いて、変換鍵TKを鍵変換装置800に送信する。
 変換TKは、マスター鍵MKと登録秘密鍵EKと検索秘密鍵SKとの鍵変換に用いられる。また、変換暗号化タグTETの再暗号化に用いられる。
 図10に戻り、ステップS200から説明を続ける。
<鍵変換:S200>
 ステップS200において、鍵変換装置800は、マスター鍵MKと登録秘密鍵EKと検索秘密鍵SKとを鍵変換する。
 鍵変換装置800は、変換鍵TKを用いて、マスター鍵MKと登録秘密鍵EKと検索秘密鍵SKとを鍵変換する。鍵変換装置800は、鍵変換により得られた鍵変換後マスター鍵MK’と鍵変換後登録秘密鍵EK’と鍵変換後検索秘密鍵SK’を出力する。
 具体的には、以下の通りである。
 図21は、本実施の形態に係る鍵変換(S200)の手順を示すフローチャートである。
 鍵変換(S200)は、鍵変換装置800によって実行される処理である。
 ステップS201において、受付部810は、変換鍵TKとマスター鍵MKと登録秘密鍵EKと検索秘密鍵SKと公開パラメータPPとを受け付ける。そして、受付部810は、変換鍵TKとマスター鍵MKと登録秘密鍵EKと検索秘密鍵SKと公開パラメータPPとを記憶部690に記憶して保管する。
 変換鍵TKとマスター鍵MKと登録秘密鍵EKと検索秘密鍵SKと公開パラメータPPとが既に保管されている場合、変換鍵TKとマスター鍵MKと登録秘密鍵EKと検索秘密鍵SKを置き換えて保管する。
 ステップS202において、変換部820は、変換鍵TKと公開パラメータPPとを用いてマスター鍵MKを鍵変換し、鍵変換後マスター鍵MK’を生成する。
 具体的に、変換部820は、マスター鍵MK=(P,Q,G,Z,X)に対して、以下のように鍵変換後マスター鍵MKを計算する。
 MK’=(P,Q,G’,Z,X’)
 G’=G^(TK^2) modN
 X’=X*TK^2 modZ
 ステップS203において、変換部820は、変換鍵TKと公開パラメータPPとを用いて登録秘密鍵EKを鍵変換し、鍵変換後登録秘密鍵EK’を生成する。
 具体的に、変換部820は、登録秘密鍵EK=(EK1,EK2)に対して、以下のように鍵変換後登録秘密鍵EK’を計算する。
 EK’=(EK1’,EK2’)
 EK1’=EK1^TK modN(=G^{ek1*TK} modN)
 EK2’=EK2*TK
 なお、上記では登録鍵EK1と登録補助鍵EK2を同時に鍵変換しているが、登録鍵EK1もしくは登録補助鍵EK2のいずれか一方のみの鍵変換でもよい。特に、登録鍵EK1は更新してもサイズが大きくならないが、登録補助鍵EK2は更新するとサイズが大きくなるため、EK1のみを更新することでサイズの増大を防ぐことができる。
 もし、登録鍵EK1もしくは登録補助鍵EK2のいずれか一方のみの鍵変換とした場合、以降のステップS204でも検索鍵SK1もしくは検索補助鍵SK2のいずれか一方のみの鍵変換をする。さらに、ステップS203でのマスター鍵MKの鍵変換は次のように変更する。
 MK’=(P,Q,G’,Z,X’)
 G’=G^TK modN
 X’=X*TK modZ
 ステップS204において、変換部820は、変換鍵TKと公開パラメータPPとを用いて検索秘密鍵SKを鍵変換し、鍵変換後検索秘密鍵SK’を生成する。
 具体的に、変換部820は、検索秘密鍵SK=(SK1,SK2)に対して、以下のように鍵変換後検索秘密鍵SK’を計算する。
 SK’=(SK1’,SK2’)
 SK1’=SK1^TK modN (=G^{sk1*TK} modN)
 SK2’=SK2*TK
 なお、前述の通り、ステップS203で登録鍵EK1もしくは登録補助鍵EK2のいずれか一方のみの鍵変換をした場合、ステップS204でも検索鍵SK1もしくは検索補助鍵SK2のいずれか一方のみの鍵変換をする。またこの場合、鍵変換後マスター鍵MK’をG’=G^TK modNとX’=X*TK modZとして計算する。
 ステップS205において、出力部830は、鍵変換後マスター鍵MK’と鍵変換後登録秘密鍵EK’と鍵変換後検索秘密鍵SK’とを出力する。
 特に、鍵変換後マスター鍵MK’は、マスター鍵生成装置200の記憶部290と、分割鍵生成装置300の記憶部390とに保管されているマスター鍵MKとを置き換えて保管される。
 また、鍵変換後登録秘密鍵EK’と鍵変換後検索秘密鍵SK’とは、分割鍵生成装置300の記憶部390とに保管されている登録秘密鍵EKと検索秘密鍵SKとをそれぞれ置き換えて保管される。
 また、鍵変換後登録鍵EK1’は、登録要求装置400の記憶部490に保管されている登録鍵EK1を置き換えて保管される。
 また、鍵変換後検索鍵SK1’は、検索要求装置500の記憶部590に保管されている検索鍵SK1を置き換えて保管される。
 また、鍵変換後登録補助鍵EK2’と鍵変換後検索補助鍵SK2’は、データ管理装置600の記憶部690に保管されている登録補助鍵EK2と検索補助鍵SK2とをそれぞれ置き換えて保管される。
 図10に戻り、ステップS210から説明を続ける。
<再暗号化:S210>
 ステップS210において、再暗号化装置900は、変換暗号化タグTETを再暗号化する。
 再暗号化装置900の再暗号化部920は、変換鍵TKと公開パラメータPPと変換暗号化データとを取得し、変換鍵TKと公開パラメータPPとを用いて変換暗号化データを再暗号化する。再暗号化部920は、再暗号化により得られた再暗号化後変換暗号化データを出力する。
 データ管理装置600の登録部630は、再暗号化装置900から再暗号化後変換暗号化データを取得し、登録データベース691に登録されている変換暗号化データを再暗号化後変換暗号化データに置き換える。
 以下において、再暗号化後変換暗号化データは、再暗号化後変換暗号化タグTET’に相当する。
 具体的には、以下の通りである。
 図22は、本実施の形態に係る再暗号化(S210)の手順を示すフローチャートである。
 再暗号化(S210)は、再暗号化装置900によって実行される処理である。
 ステップS211において、受付部910は、変換鍵TKと公開パラメータPPと変換暗号化タグTETとを受け付け、変換鍵TKと公開パラメータPPとを記憶部990に記憶して保管する。
 複数の変換暗号化タグTETが受け付けられてもよい。その場合、変換暗号化タグTETごとにステップS212とステップS213が実行される。
 ステップS212において、再暗号化部920は、変換鍵TKと公開パラメータPPとを用いて変換暗号化タグTETを再暗号化し、再暗号化後変換暗号化タグTET’を生成する。
 具体的に、再暗号化部920は、変換暗号化タグTET=(ID(D),TET1,・・・,TETk)に対して、以下のように再暗号化後変換暗号化タグTET’を計算する。ただし、TETi=(TETi1,TETi2)、iは1以上k以下の整数とする。
 TET’=(ID(D),TET1’,・・・,TETk’)
 TETi’=(TETi1’,TETi2’)
 TETi1’=TETi1^TK modN
 TETi2’=TETi2
 なお、もし再暗号化時に安全性向上のためTETi’もランダム化したい場合は、次のように計算する。
 まず、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数RRを選ぶ。
 次に、各TETi’=(TETi1’,TETi2’)について以下を計算する。
 TETi1’=TETi1^(TK*RR) modN
 TETi2’=TETi2*RR
 ステップS213において、出力部930は、再暗号化後変換暗号化タグTET’を出力する。
 特に、再暗号化後変換暗号化タグTET’は、データ管理装置600の記憶部990の登録データベース691に登録されている変換暗号化タグTETを置き換えて保管される。
***本実施の形態の効果の説明***
 本実施の形態に係る秘匿検索システムによれば、鍵を分散配置することにより、登録者によるデータの暗号化および登録を制御するとともに、検索者による秘匿検索を制御することができるという効果を奏する。
 本実施の形態に係る秘匿検索システムによれば、分割鍵生成により秘密鍵を2つに分割し、いずれか片方の鍵を削除すると、もう一方の鍵だけでは検索できなくなる。このため、鍵失効を行うことができる。
 さらに、本実施の形態に係る秘匿検索システムによれば、分割鍵生成を何回も実行した場合でも、その度に新しい分割鍵が生成できる。このため、過去の分割鍵が現れることなく、鍵失効が安全に達成できる。
 本実施の形態に係る秘匿検索システムによれば、変換鍵を用いて分割鍵を鍵変換して新しい鍵を生成しつつ、その新しい鍵に対応した暗号化データを復号せずに検索可能な形で再暗号化できる。このため、高い安全性を達成するとともに、効率よく再暗号化処理が可能である。
 さらに、本実施の形態に係る秘匿検索システムによれば、変換鍵は何回も実行した場合でも、その度に新しい変換鍵が生成できる。このため、過去の変換鍵が現れることなく、鍵変換あるいは再暗号化が安全に達成できる。
 本実施の形態に係る秘匿検索システムによれば、乱数を使って、暗号化タグおよび検索クエリをランダム化できる。よって、暗号化タグおよび検索クエリが毎回異なる値になるように確率的に生成できる。このため、暗号化タグおよび検索クエリから中身の平文データおよび検索キーワードを推測することは困難である。このため、高い安全性を達成できる。
 以上のように、本実施の形態に係る秘匿検索システムによれば、鍵を分散配置して鍵の更新あるいは失効を達成しつつ、秘匿検索する暗号化データに対して復号を経由せず新しい鍵に再暗号化することを可能とする。さらに、暗号化データの確率的生成を可能とする。
 実施の形態2.
 本実施の形態では、主に、実施の形態1と異なる点および実施の形態1に追加する点について説明する。
 本実施の形態において、実施の形態1と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
 本実施の形態では、実施の形態1で説明した暗号化タグETの代わりに暗号化索引EIを使う形態について説明する。
 本実施の形態について図23から図31に基づいて説明する。
***構成の説明***
 秘匿検索システム100の構成は、実施の形態1における図1の構成と同じである。
 ただし、登録要求装置400の構成の一部が実施の形態1における構成と異なる。
 図23は、本実施の形態にかかる登録要求装置400における生成部420の構成例を示す図である。
 登録要求装置400は、実施の形態1の暗号化タグ生成部423の代わりに、索引用検索結果生成部424と暗号化索引生成部425といった要素を備える。
***動作の説明***
 次に、本実施の形態に係る秘匿検索システム100の動作について説明する。秘匿検索システム100の動作手順は、秘匿検索方法に相当する。また、秘匿検索システム100の動作を実現するプログラムは、秘匿検索プログラムに相当する。
 図24は、本実施の形態に係る秘匿検索システム100の動作を示すフローチャートである。
 ステップS110、ステップS120、ステップS170、ステップS180、ステップS190、および、ステップS200は、実施の形態1で説明した通りである。
 ステップS230、ステップS240、ステップS250、ステップS260、および、ステップS310について、以下に説明する。
<登録要求:S230>
 ステップS230において、登録要求装置400は、暗号化データCを生成し、暗号化データCをデータ管理装置600へ送信する。
 登録要求装置400の生成部420は、登録鍵EK1と平文データDと公開パラメータPPとを取得する。そして、生成部420は、登録鍵EK1と公開パラメータPPと用いて平文データDを暗号化することにより暗号化データCを生成する。このとき、生成部420は、公開パラメータPPを用いて暗号化データCの生成に用いる乱数を生成する。そして、生成部420は、登録鍵EK1と公開パラメータPPと乱数とを用いて暗号化データを生成する。この乱数により、暗号化データをランダム化できる。
 本実施の形態では、生成部420は、複数の平文データの各平文データに含まれる登録キーワードで複数の平文データを検索する。生成部420は、登録鍵EK1と公開パラメータPPと乱数とを用いて、検索した結果を索引構造で示した索引用検索結果RESを暗号化し、暗号化により得られた暗号化索引EIを暗号化データCとして生成する。
 具体的には、以下の通りである。
 図25は、本実施の形態に係る登録要求(S230)の手順を示すフローチャートである。
 登録要求(S230)は、実施の形態1の登録要求(S130)に相当する。
 ステップS231において、受付部410は、登録鍵EK1と公開パラメータPPと平文データDとを受け付ける。
 ステップS231は、実施の形態1のステップS131と同じである。
 平文データDは1つでも複数受け付けてもよい。本実施の形態では複数の平文データDを受け付けることを想定して説明する。このとき複数の平文データを{D}と表し、n個のデータを受け付けたとする。このとき複数の平文データ{D}は{D1,・・・,Dn}と表す。
 ステップS232において、キーワード生成部421は、登録キーワード集合Wを生成する。
 ステップS232は、実施の形態1のステップS132と同じである。複数の平文データ{D}の各平文データに対して登録キーワード集合Wを生成する。この複数の登録キーワード集合を{W}と表し、複数の平文データ{D}がm個の平文データを含む場合は、複数の登録キーワード集合を{W}を{W1,・・・,Wm}と表せる。ただし、mは1以上の整数である。このとき、D1に対応する登録キーワード集合はW1、・・・、Dmに対応する登録キーワード集合はWmとする。
 ステップS233において、索引用検索結果生成部424は、複数の登録キーワード集合{W}に基づいて、索引用検索結果RESを生成する。
 具体的には、索引用検索結果生成部424は、複数の登録キーワード集合{W}に対して、各登録キーワード集合Wiに含まれる各登録キーワードwに対応する1つ以上のデータ名ID(D)を含むデータを生成する。生成されるデータが索引用検索結果RESである。索引用検索結果RESは、検索結果と称してもよい。
 索引用検索結果RESは以下のように表される。
 RES={(w,res)}
 「w」は、キーワードであり、複数の登録キーワード集合{W}のいずれかの登録キーワード集合Wiに含まれる。
 「res」は、識別子の集合であり、データ名ID(D)に相当する。resは1つ以上の識別子を含む。
 図26は、本実施の形態に係る索引用検索結果RESの構成例を示す図である。
 索引用検索結果RESは、図26に示すように転置索引構造を持つ。すなわち、キーワードからヒットする識別子を逆引きできるような構造を持つ。
 図26において、索引用検索結果RESは、キーワードごとに、キーワードと1つ以上のデータ名を互いに対応付けている。
 図25に戻り、ステップS234から説明を続ける。
 ステップS234において、乱数生成部422は、暗号化索引用乱数IRを生成する。
 具体的に、乱数生成部422は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数ir1,ir2を選び、暗号化索引用乱数IR=(ir1,ir2)として生成する。
 なお、もし高速に秘匿検索処理することを考慮してランダム化が不用であれば、ir1とir2をir1=ir2=1として設定すればよい。
 ステップS235において、暗号化索引生成部425は、登録鍵EK1と公開パラメータPPと暗号化索引用乱数IRを用いて、索引用検索結果RESを暗号化して暗号化索引EIを生成する。
 この暗号化索引EIが、本実施の形態における暗号化データCに相当する。
 暗号化索引EIは、索引用検索結果RESが暗号化されたものであり、暗号化キーワードkeyと暗号化識別子valを含む。
 暗号化キーワードkeyは、登録キーワードwが暗号化されたものである。
 暗号化識別子の集合valは、識別子の集合resが暗号化されたものである。
 例えば、暗号化索引EIは以下のように表される。
 EI={(key,val)}
 key=(key1,key2)
 key1=EK1^(F(w||0)*ir1) modN
 key2=ir1
 val=(val1,val2)
 val1=EK1^(F(w||1)*ir2*res) modN
 val2=ir2
 なお、「||」は文字列の結合を表す。また、暗号化索引EIは一意的な識別子を持つとし、その値をID(EI)と記載する。
 また、val2を計算するために、resは例えばバイナリとしてみて1以上N-1以下の整数として変換してから計算してもよい。また、resに含まれるID(D)の有無をビット表現したものに変化してから計算してもよい。例えば、複数のキーワード集合{W1,・・・,Wn}とある登録キーワードwに対して、ID(D1)とID(Dn)が対応しているとすると、前者は「ID(D1)||ID(Dn)」のビット表現を1以上N-1以下の整数に変換して扱うことや、後者は「10・・・01」のようにnビットで表現でき、そのnビットの値を1以上N-1以下の整数に変換して扱うことで、上記val2の計算が可能となる。
 ステップS236において、要求部430は、暗号化索引EIをデータ管理装置600に送付する。
<登録操作:S240>
 ステップS240において、データ管理装置600は、暗号化データCを受信し、暗号化データCを変換して記憶部690に登録する。本実施の形態では、暗号化データCは暗号化索引EIに相当する。
 図27は、本実施の形態に係る登録操作(S240)の手順を示すフローチャートである。
 登録操作(S240)は、データ管理装置600によって実行される処理である。
 ステップS241において、受付部610は、登録補助鍵EK2と公開パラメータPPと暗号化索引EIとを受け付ける。その後、鍵管理部620は、登録補助鍵EK2と公開パラメータPPを記憶部690に記憶して保管する。
 登録補助鍵EK2と公開パラメータPPが既に保管されている場合、登録補助鍵EK2のみを置き換えて保管する。
 複数の暗号化索引EIが受け付けられてもよい。その場合、暗号化索引EIごとにステップS242とステップS243が実行される。
 ステップS242において、変換部631は、登録補助鍵EK2と公開パラメータPPとを用いて暗号化索引EIを変換し、変換暗号化索引TEIを生成する。
 具体的に、変換部631は、暗号化索引EI={(key,val)}に対して、以下のように変換暗号化索引TEIを計算する。ただし、key=(key1,key2)、val=(val1,val2)である。
 TEI={(Tkey,Tval)}
 Tkey=(Tkey1,Tkey2)
 Tkey1=key1^EK2 modN
 Tkey2=key2
 Tval=(Tval1,Tval2)
 Tval1=val1^EK2 modN
 Tval2=val2
 ステップS243おいて、保管部632は、変換暗号化索引TEIを登録データベース691Aに登録する。
 登録データベース691Aは、データ管理装置600の記憶部690に記憶して保管される。
 図28は、本実施の形態に係る登録データベース691Aの例を示す図である。
 図28において、1行のデータが1つの変換暗号化索引TEIに相当する。
 1行のデータにおいて、データ名ID(EI)と変換暗号化索引TEIとが互いに対応付けられる。
<検索要求:S250>
 ステップS250において、検索要求装置500は、検索クエリSQを生成し、検索クエリSQをデータ管理装置600へ送信する。
 図29は、本実施の形態に係る検索要求(S250)の手順を示すフローチャートである。
 検索要求(S250)は、検索要求装置500によって実行される処理である。
 ステップS251において、受付部510は、検索鍵SK1と公開パラメータPPと検索キーワードswとを受け付ける。
 ステップS251は、実施の形態1のステップS151と同じである。
 ステップS252において、乱数生成部521は、公開パラメータPPを用いて検索クエリ用乱数QRを生成する。
 検索クエリ用乱数QRは、検索クエリSQを暗号化するための乱数である。
 具体的には、乱数生成部521は、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数QR1、QR2を選び、検索クエリ用乱数QR=(qr1,qr2)として生成する。
 なお、もし高速に秘匿検索処理することを考慮してランダム化が不用であれば、QRの値をQR=1として設定すればよい。
 ステップS253において、検索クエリ生成部522は、検索鍵SK1と公開パラメータPPと検索クエリ用乱数QRを用いて検索キーワードswを暗号化し、検索クエリSQを生成する。
 具体的に、検索クエリ生成部522は、検索キーワードswと検索クエリ用乱数QRに対して、以下の検索クエリSQを計算する。
 SQ=(SQ1,SQ2)
 SQ1=(SQ11,SQ12)
 SQ11=SK1^(F(sw||0)*qr1) modN
 SQ12=qr1
 SQ2=(SQ21,SQ22)
 SQ21=SK1^(F(sw||1)*qr2) modN
 SQ22=qr2
 ステップS254において、要求部530は、検索クエリSQをデータ管理装置600に送付する。
 ステップS254は、実施の形態1のステップS154と同じである。
 ステップS255において、要求部530は、通信装置505を用いて、データ管理装置600から検索結果DATAを受信する。
 ステップS255は、実施の形態1のステップS155と同じである。
 ステップS256において、出力部540は、検索結果DATAを出力する。
 ステップS256は、実施の形態1のステップS156と同じである。
<検索操作:S260>
 ステップS260において、データ管理装置600は、検索クエリSQに合致する変換された暗号化データを検索する。本実施の形態では、変換された暗号化データCである変換暗号化データは変換暗号化索引TEIに相当する。
 図30は、本実施の形態に係る検索操作(S260)の手順を示すフローチャートである。
 検索操作(S260)は、データ管理装置600によって実行される処理である。
 ステップS261において、受付部610は、検索補助鍵SK2と公開パラメータPPと検索クエリSQとを受け付ける。その後、鍵管理部620は、検索補助鍵SK2と公開パラメータPPを記憶部690に記憶して保管する。
 検索補助鍵SK2と公開パラメータPPが既に保管されている場合、検索補助鍵SK2のみを置き換えて保管する。
 複数の検索クエリSQが受け付けられてもよい。その場合、検索クエリSQごとにステップS262からステップS264が実行される。
 ステップS262において、変換部641は、検索補助鍵SK2と公開パラメータPPとを用いて検索クエリSQを変換し、変換検索クエリTSQを生成する。
 具体的に、変換部641は、検索クエリSQ={SQ1,SQ2}={(SQ11,SQ12),(SQ21,SQ22)}に対して、以下のように変換検索クエリTSQを計算する。
 TSQ=(TSQ1,TSQ2)
 TSQ1=(TSQ11,TSQ12)
 TSQ11=SQ11^SK2 modN
 TSQ12=SQ12
 TSQ2=(TSQ11,TSQ12)
 TSQ21=SQ21^SK2 modN
 TSQ22=SQ22
 ステップS263において、照合部642は、変換検索クエリTSQを登録データベース691Aの中の各変換暗号化索引TEIと照合し、変換検索クエリTSQに合致するデータ名ID(D)の暗号化データを見つける。
 具体的に、照合部642は、変換検索クエリTSQ=(TSQ1,TSQ2)を各変換暗号化索引TEI={(Tkey,Tval)}の各Tkeyに対して以下のように照合する。
 Tkey=(Tkey1,Tkey2)
 TSQ1=(TSQ11,TSQ12)
 M11=Tkey1^TSQ12 modN
 M12=TSQ11^Tkey2 modN
 M11=?M12
 すなわち、変換検索クエリTSQと変換暗号化索引TEIのTkeyに対して、M11とM12が等しくなるかを計算する。もし等しくなるのであれば、そのTkeyに対応するTvalに注目して次のステップS264に進む。もし等しくない場合は、次のTkeyに対してM11とM12が一致しているかを判定する。全てのTkeyに対してM11とM12が一致しなければ、DATAを空集合としてステップS264を省略する。
 なお、M11とM12は次のように表すことができる。
 M11=Tkey1^TSQ12 modN
    =G^(ek1*EK2*F(w||0)*ir1)^qr1 modN
    =G^(X*F(w||0)*ir1*qr1) modN
 M12=TSQ11^Tkey2 modN
    =G^(sk1*SK2*F(sw||0)*qr1)^ir1 modN
    =G^(X*F(sw||0)*qr1*ir1) modN
 したがって、w=swとなればM11=M12となり、そうでなければM11≠M12となる。
 すなわち、もし検索キーワードswがいずれかの平文データに一致するのであれば、必ずある1つのTvalでM11とM12が一致し、ステップS264に進む。
 ステップS264において、抽出部643は、ステップS263で一致したTkeyに関連付けられたTvalから変換検索クエリTSQに合致するデータ名ID(D)の集合を見つける。
 具体的に、抽出部643は、変換検索クエリTSQ=(TSQ1,TSQ2)を用いて、ステップS263で一致したTkeyに関連付けられたTvalに対して以下のようにDATAを計算する。
 Tval=(Tval1,Tval2)
 TSQ2=(TSQ21,TSQ22)
 M21=TSQ21^Tval2 modN
 M22=Tval1^TSQ22 modN
 DATA=DLog_{M21}(M22)
 なお、DLog_{M21}(M22)はM21を底としてM22の離散対数を表している。
 なお、M2とDATAは次のように表すことができる。ここで登録キーワードwと検索キーワードswは一致しているとして、w=swとみなす。
 M21=TSQ21^Tval2 modN
    =G^(sk1*SK2*F(w||1)*qr2)^ir2 modN
    =G^(X*F(w||1)*qr2*ir2) modN
 M22=Tval1^TSQ22 modN
    =G^(ek1*EK2*F(w||1)*ir2*res)^qr2 modN
    =G^(X*F(w||1)*qr2*ir2*res) modN
 したがって、M22=M21^res modNとなる。resの値が小さければ効率的に離散対数を計算することが可能である。このとき、DATA=resであり、resは平文データの識別子の集合である。すなわち、DATAは検索キーワードswに対する検索結果にほかならない。
 ステップS265において、出力部650は、通信装置605を用いて、検索結果DATAを検索要求装置500へ送信する。
 <再暗号化:S310>
 ステップS310において、再暗号化装置900は、変換暗号化索引TEIを再暗号化する。
 図31は、本実施の形態に係る再暗号化(S310)の手順を示すフローチャートである。
 再暗号化(S310)は、再暗号化装置900によって実行される処理である。
 ステップS311において、受付部910は、変換鍵TKと公開パラメータPPと変換暗号化索引TEIとを受け付け、変換鍵TKと公開パラメータPPとを記憶部990に記憶して保管する。
 複数の変換暗号化索引TEIが受け付けられてもよい。その場合、変換暗号化索引TEIごとにステップS312とステップS313が実行される。
 ステップS312において、再暗号化部920は、変換鍵TKと公開パラメータPPとを用いて変換暗号化索引TEIを再暗号化し、再暗号化後変換暗号化索引TEI’を生成する。
 具体的に、再暗号化部920は、変換暗号化索引TEI={(Tkey,Tval)}に対して、以下のように再暗号化後変換暗号化索引TEI’を計算する。
 各(Tkey,Tval)=((Tkey1,Tkey2),(Tval1,Tval2))に対して、以下を計算する。
 Tkey’=(Tkey1’,Tkey2’)
 Tkey1’=Tkey1^TK modN
 Tkey2’=Tkey2
 Tval’=(Tval1’,Tval2’)
 Tval1’=Tval1^TK modN
 Tval2’=Tval2
 なお、もし再暗号化時に安全性向上のためTkeyとTvalもランダム化したい場合は、次のように計算する。
 まず、1以上(N-1)以下の整数の集合{1,2,・・・,N-1}から、ランダムに整数RR1、RR2を選ぶ。
 次に、各(Tkey’,Tval’)に対して以下を計算する。
 Tkey’=(Tkey1’,Tkey2’)
 Tkey1’=Tkey1^(TK*RR1) modN
 Tkey2’=Tkey2*RR1
 Tval’=(Tval1’,Tval2’)
 Tval1’=Tval1^(TK*RR2) modN
 Tval2’=Tval2*RR2
 ステップS313において、出力部930は、再暗号化後変換暗号化索引TEI’を出力する。
 特に、再暗号化後変換暗号化索引TEI’は、データ管理装置600の記憶部990の登録データベース691Aに登録されている変換暗号化索引TEIを置き換えて保管される。
***本実施の形態の効果の説明***
 本実施の形態に係る秘匿検索システムによれば、実施の形態1と同様な効果に加えて、以下のような効果を奏する。
 暗号文を復号することなく一括で検索キーワードにヒットする識別子を抽出できる。
***実施の形態の補足***
 図32は、本実施の形態に係るマスター鍵生成装置200のハードウェア構成例を示す図である。
 マスター鍵生成装置200は処理回路209を備える。
 処理回路209は、受付部210と生成部220と出力部230とを実現するハードウェアである。
 処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
 処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICは、Application Specific Integrated Circuitの略称である。
 FPGAは、Field Programmable Gate Arrayの略称である。
 マスター鍵生成装置200は、処理回路209を代替する複数の処理回路を備えてもよい。
 処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、マスター鍵生成装置200の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図33は、本実施の形態に係る分割鍵生成装置300のハードウェア構成例を示す図である。
 分割鍵生成装置300は処理回路309を備える。
 処理回路309は、受付部310と分割鍵生成部320と出力部330とを実現するハードウェアである。
 処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
 処理回路309が専用のハードウェアである場合、処理回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 分割鍵生成装置300は、処理回路309を代替する複数の処理回路を備えてもよい。
 処理回路309において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、分割鍵生成装置300の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図34は、本実施の形態に係る登録要求装置400のハードウェア構成例を示す図である。
 登録装置400は処理回路409を備える。
 処理回路409は、受付部410と生成部420と要求部430とを実現するハードウェアである。
 処理回路409は、専用のハードウェアであってもよいし、メモリ402に格納されるプログラムを実行するプロセッサ401であってもよい。
 処理回路409が専用のハードウェアである場合、処理回路409は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 登録装置400は、処理回路409を代替する複数の処理回路を備えてもよい。
 処理回路409において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、登録装置400の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図35は、本実施の形態に係る検索要求装置500のハードウェア構成例を示す図である。
 検索要求装置500は処理回路509を備える。
 処理回路509は、受付部510と生成部520と要求部530と出力部540とを実現するハードウェアである。
 処理回路509は、専用のハードウェアであってもよいし、メモリ502に格納されるプログラムを実行するプロセッサ501であってもよい。
 処理回路509が専用のハードウェアである場合、処理回路509は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 検索操作装置500は、処理回路509を代替する複数の処理回路を備えてもよい。
 処理回路509において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、検索操作装置500の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図36は、本実施の形態に係るデータ管理装置600のハードウェア構成例を示す図である。
 データ管理装置600は処理回路609を備える。
 処理回路609は、受付部610と鍵管理部620と登録部630と検索部640と出力部650とを実現するハードウェアである。
 処理回路609は、専用のハードウェアであってもよいし、メモリ602に格納されるプログラムを実行するプロセッサ601であってもよい。
 処理回路609が専用のハードウェアである場合、処理回路609は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 データ管理装置600は、処理回路609を代替する複数の処理回路を備えてもよい。
 処理回路609において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、データ管理装置600の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図37は、本実施の形態に係る変換鍵生成装置700のハードウェア構成例を示す図である。
 変換鍵生成装置700は処理回路709を備える。
 処理回路709は、受付部710と生成部720と出力部730とを実現するハードウェアである。
 処理回路709は、専用のハードウェアであってもよいし、メモリ702に格納されるプログラムを実行するプロセッサ701であってもよい。
 処理回路709が専用のハードウェアである場合、処理回路709は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 変換鍵生成装置700は、処理回路709を代替する複数の処理回路を備えてもよい。
 処理回路709において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、変換鍵生成装置700の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図38は、本実施の形態に係る鍵変換装置800のハードウェア構成例を示す図である。
 鍵変換装置800は処理回路809を備える。
 処理回路809は、受付部810と変換部820と出力部830とを実現するハードウェアである。
 処理回路809は、専用のハードウェアであってもよいし、メモリ802に格納されるプログラムを実行するプロセッサ801であってもよい。
 処理回路809が専用のハードウェアである場合、処理回路809は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 鍵変換装置800は、処理回路809を代替する複数の処理回路を備えてもよい。
 処理回路809において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、鍵変換装置800の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 図39は、本実施の形態に係る再暗号化装置900のハードウェア構成例を示す図である。
 再暗号化装置900は処理回路909を備える。
 処理回路909は、受付部910と再暗号化部920と出力部930とを実現するハードウェアである。
 処理回路909は、専用のハードウェアであってもよいし、メモリ902に格納されるプログラムを実行するプロセッサ901であってもよい。
 処理回路909が専用のハードウェアである場合、処理回路909は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 再暗号化装置900は、処理回路909を代替する複数の処理回路を備えてもよい。
 処理回路909において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、再暗号化装置900の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 実施の形態で説明された各装置は複数の装置で実現されてもよい。また、実施の形態で説明された2つ以上の装置が1つの装置で実現されてもよい。
 実施の形態で説明された各装置の要素である「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
 以上の実施の形態1および2では、秘匿検索装置の各部を独立した機能ブロックとして説明した。しかし、秘匿検索装置の構成は、上述した実施の形態のような構成でなくてもよい。秘匿検索装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、秘匿検索装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
 また、実施の形態1および2のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これら実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
 すなわち、実施の形態1および2では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
 なお、上述した実施の形態は、本質的に好ましい例示であって、本開示の範囲、本開示の適用物の範囲、および本開示の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。例えば、フローチャートあるいはシーケンス図を用いて説明した手順は、適宜に変更してもよい。
 100 秘匿検索システム、101 ネットワーク、200 マスター鍵生成装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 入出力インタフェース、205 通信装置、209 処理回路、210 受付部、220 生成部、230 出力部、290 記憶部、300 分割鍵生成装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 入出力インタフェース、305 通信装置、309 処理回路、310 受付部、320 分割鍵生成部、321 登録鍵生成部、322 登録補助鍵生成部、323 検索鍵生成部、324 検索補助鍵生成部、330 出力部、390 記憶部、400 登録要求装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 入出力インタフェース、405 通信装置、409 処理回路、410 受付部、420 生成部、421 キーワード生成部、422 乱数生成部、423 暗号化タグ生成部、424 索引用検索結果生成部、425 暗号化索引生成部、430 要求部、490 記憶部、500 検索要求装置、501 プロセッサ、502 メモリ、503 補助記憶装置、504 入出力インタフェース、505 通信装置、509 処理回路、510 受付部、520 生成部、521 乱数生成部、522 検索クエリ生成部、530 要求部、540 出力部、590 記憶部、600 データ管理装置、601 プロセッサ、602 メモリ、603 補助記憶装置、604 入出力インタフェース、605 通信装置、609 処理回路、610 受付部、620 鍵管理部、630 登録部、631 変換部、632 保管部、640 検索部、641 変換部、642 照合部、643 抽出部、650 出力部、690 記憶部、691 登録データベース、691A 登録データベース、700 変換鍵生成装置、701 プロセッサ、702 メモリ、703 補助記憶装置、704 入出力インタフェース、705 通信装置、709 処理回路、710 受付部、720 生成部、730 出力部、790 記憶部、800 鍵変換装置、801 プロセッサ、802 メモリ、803 補助記憶装置、804 入出力インタフェース、805 通信装置、809 処理回路、810 受付部、820 変換部、830 出力部、890 記憶部、900 再暗号化装置、901 プロセッサ、902 メモリ、903 補助記憶装置、904 入出力インタフェース、905 通信装置、909 処理回路、910 受付部、920 再暗号化部、930 出力部、990 記憶部。

Claims (17)

  1.  マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、平文データと、前記公開パラメータと、を取得し、前記登録鍵と前記公開パラメータとを用いて前記平文データを暗号化することにより暗号化データを生成する生成部と、
     前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録するデータ管理装置に、前記暗号化データを送信する要求部と
    を備える登録要求装置。
  2.  前記生成部は、
     前記公開パラメータを用いて前記暗号化データの生成に用いる乱数を生成し、前記登録鍵と前記公開パラメータと前記乱数とを用いて前記暗号化データを生成する請求項1に記載の登録要求装置。
  3.  マスター鍵と公開パラメータとを用いて生成された検索秘密鍵であって、検索に用いるキーワードから検索に用いるクエリを生成するための検索鍵と、生成されたクエリの変換に用いる検索補助鍵とからなる検索秘密鍵のうちの前記検索鍵と、検索キーワードと、前記公開パラメータと、を取得し、前記検索鍵と前記公開パラメータとを用いて前記検索キーワードから検索クエリを生成する生成部と、
     前記マスター鍵と前記公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と、暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、前記公開パラメータと、を用いて暗号化された平文データである暗号化データを、前記登録補助鍵と前記公開パラメータとを用いて変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録するデータ管理装置に、前記検索クエリを送信し、前記データ管理装置から、前記検索クエリと一致する暗号化データに対応する識別子を検索結果として取得する要求部と
    を備える検索要求装置。
  4.  前記生成部は、
     前記公開パラメータを用いて前記検索クエリの生成に用いる乱数を生成し、前記検索鍵と前記公開パラメータと前記乱数とを用いて前記検索クエリを生成する請求項3に記載の検索要求装置。
  5.  マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と、暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と前記公開パラメータとを用いて暗号化された平文データである暗号化データと、前記登録補助鍵と、前記公開パラメータと、を取得し、前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録する登録部を備えるデータ管理装置。
  6.  前記データ管理装置は、
     前記マスター鍵と前記公開パラメータとを用いて生成された検索秘密鍵であって、検索に用いるキーワードから検索に用いるクエリを生成するための検索鍵と、生成されたクエリの変換に用いる検索補助鍵とからなる検索秘密鍵のうちの前記検索鍵と、前記公開パラメータとを用いて検索キーワードから生成された検索クエリと、前記検索補助鍵と、前記公開パラメータと、を取得し、前記検索補助鍵と前記公開パラメータとを用いて前記検索クエリを変換し、変換により得られた変換検索クエリと前記変換暗号化データとを照合し、前記変換検索クエリと一致する変換暗号化データに対応する識別子を抽出する検索部を備える請求項5に記載のデータ管理装置。
  7.  マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と、暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、平文データと、前記公開パラメータと、を取得し、前記登録鍵と前記公開パラメータとを用いて前記平文データを暗号化することにより暗号化データを生成する登録要求装置と、
     前記登録補助鍵と前記公開パラメータと前記暗号化データとを取得し、前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録するデータ管理装置と
    を備える秘匿検索システム。
  8.  前記登録要求装置は、
     前記公開パラメータを用いて前記暗号化データの生成に用いる乱数を生成し、前記登録鍵と前記公開パラメータと前記乱数とを用いて前記暗号化データを生成する請求項7に記載の秘匿検索システム。
  9.  前記登録要求装置は、
     前記登録鍵と前記公開パラメータと前記乱数を用いて、前記平文データに含まれる登録キーワードを暗号化し、暗号化により得られた暗号化タグを前記暗号化データとして生成する請求項8に記載の秘匿検索システム。
  10.  前記登録要求装置は、
     前記登録鍵と前記公開パラメータと前記乱数を用いて、複数の平文データの各平文データに含まれる登録キーワードで前記複数の平文データを検索した結果を索引構造で示した索引用検索結果を暗号化し、暗号化により得られた暗号化索引を前記暗号化データとして生成する請求項8に記載の秘匿検索システム。
  11.  前記マスター鍵と前記公開パラメータとを用いて生成された検索秘密鍵であって、検索に用いるキーワードから検索に用いるクエリを生成するための検索鍵と、生成されたクエリの変換に用いる検索補助鍵とからなる検索秘密鍵のうちの前記検索鍵と、検索キーワードと、前記公開パラメータと、を取得し、前記検索鍵と前記公開パラメータとを用いて前記検索キーワードから検索クエリを生成する検索要求装置と、
     前記データ管理装置は、
     前記検索クエリと前記検索補助鍵と前記公開パラメータとを取得し、前記検索補助鍵と前記公開パラメータとを用いて前記検索クエリを変換し、変換により得られた変換検索クエリと前記登録データベースに登録されている前記変換暗号化データとを照合し、前記変換検索クエリと一致する前記変換暗号化データに対応する識別子を抽出し、抽出した識別子を検索結果として前記検索要求装置に出力する請求項7から請求項10のいずれか1項に記載の秘匿検索システム。
  12.  前記検索要求装置は、
     前記公開パラメータを用いて前記検索クエリの生成に用いる乱数を生成し、前記検索鍵と前記公開パラメータと前記乱数とを用いて前記検索クエリを生成する請求項11に記載の秘匿検索システム。
  13.  前記秘匿検索システムは、さらに、
     前記公開パラメータから生成される変換鍵を用いて、前記マスター鍵と前記登録秘密鍵と前記検索秘密鍵とを鍵変換し、鍵変換により得られた鍵変換後マスター鍵と鍵変換後登録秘密鍵と鍵変換後検索秘密鍵を出力する鍵変換装置と、
     前記変換鍵と前記公開パラメータと前記変換暗号化データとを取得し、前記変換鍵と前記公開パラメータとを用いて前記変換暗号化データを再暗号化し、再暗号化により得られた再暗号化後変換暗号化データを出力する再暗号化装置と
    を備え、
     前記データ管理装置は、
     前記再暗号化装置から前記再暗号化後変換暗号化データを取得し、前記登録データベースに登録されている前記変換暗号化データを前記再暗号化後変換暗号化データに置き換える請求項11または請求項12に記載の秘匿検索システム。
  14.  前記秘匿検索システムは、さらに、
     前記マスター鍵と前記公開パラメータとを用いて、前記登録秘密鍵と前記検索秘密鍵とを生成する分割鍵生成装置を備え、
     前記分割鍵生成装置は、
     前記マスター鍵と前記公開パラメータとを用いて、前記登録秘密鍵と前記検索秘密鍵とをランダムに再生成する請求項13に記載の秘匿検索システム。
  15.  前記データ管理装置は、
     前記登録データベースから削除する平文データを識別する識別子を取得し、前記識別子に対応する変換暗号化データを前記登録データベースから削除する請求項7から請求項14のいずれか1項に記載の秘匿検索システム。
  16.  コンピュータが、マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と、暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、平文データと、前記公開パラメータと、を取得し、前記登録鍵と前記公開パラメータとを用いて前記平文データを暗号化することにより暗号化データを生成し、
     コンピュータが、前記登録補助鍵と前記公開パラメータと前記暗号化データとを取得し、前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録する秘匿検索方法。
  17.  マスター鍵と公開パラメータとを用いて生成された登録秘密鍵であって、データの暗号化に用いる登録鍵と、暗号化されたデータの変換に用いる登録補助鍵とからなる登録秘密鍵のうちの前記登録鍵と、平文データと、前記公開パラメータと、を取得し、前記登録鍵と前記公開パラメータとを用いて前記平文データを暗号化することにより暗号化データを生成する登録要求処理と、
     前記登録補助鍵と前記公開パラメータと前記暗号化データとを取得し、前記登録補助鍵と前記公開パラメータとを用いて前記暗号化データを変換し、変換により得られた変換暗号化データを、前記平文データを識別する識別子と対応付けて登録データベースに登録するデータ管理処理と
    をコンピュータに実行させる秘匿検索プログラム。
PCT/JP2021/048616 2021-12-27 2021-12-27 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム WO2023127038A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2021/048616 WO2023127038A1 (ja) 2021-12-27 2021-12-27 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム
JP2022536878A JP7217836B1 (ja) 2021-12-27 2021-12-27 データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048616 WO2023127038A1 (ja) 2021-12-27 2021-12-27 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム

Publications (1)

Publication Number Publication Date
WO2023127038A1 true WO2023127038A1 (ja) 2023-07-06

Family

ID=85131347

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/048616 WO2023127038A1 (ja) 2021-12-27 2021-12-27 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム

Country Status (2)

Country Link
JP (1) JP7217836B1 (ja)
WO (1) WO2023127038A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122696A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2020003821A1 (ja) * 2018-06-29 2020-01-02 ソニー株式会社 情報処理システム、情報処理方法、および情報処理装置
JP2020086116A (ja) * 2018-11-26 2020-06-04 ソニー株式会社 情報処理装置および情報処理方法
JP2021141524A (ja) * 2020-03-09 2021-09-16 三菱電機インフォメーションシステムズ株式会社 復号システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122696A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
WO2020003821A1 (ja) * 2018-06-29 2020-01-02 ソニー株式会社 情報処理システム、情報処理方法、および情報処理装置
JP2020086116A (ja) * 2018-11-26 2020-06-04 ソニー株式会社 情報処理装置および情報処理方法
JP2021141524A (ja) * 2020-03-09 2021-09-16 三菱電機インフォメーションシステムズ株式会社 復号システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKATO HIRANO, YUTAKA KAWAI, YOSHIHIRO KOSEKI, YOHEI WATANABE, MITSUGU IWAMOTO, KAZUO OTA: "3B2-1 Key Updating in Searchable Symmetric Encryption", 2021 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2021), JANUARY 19-22, 2021, ÎEICE, JP, 1 January 2021 (2021-01-01) - 22 January 2021 (2021-01-22), JP, pages 1 - 8, XP009547646 *

Also Published As

Publication number Publication date
JPWO2023127038A1 (ja) 2023-07-06
JP7217836B1 (ja) 2023-02-03

Similar Documents

Publication Publication Date Title
CN110337649B (zh) 用于搜索模式未察觉的动态对称可搜索加密的方法和系统
EP3096245B1 (en) Retrievable cryptograph processing system and retrievable cryptograph processing method
JP5420085B2 (ja) データ処理装置及びデータ保管装置
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US9971904B2 (en) Method and system for range search on encrypted data
JP6910477B2 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
CN112800445B (zh) 一种用于密文数据的前后向安全和可验证的布尔查询方法
WO2017122696A1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
JP5670365B2 (ja) 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム
JP2019057822A (ja) 医療データ検索システム、医療データ検索方法および医療データ検索プログラム
US20210081562A1 (en) Data processing apparatus, data processing method, and computer readable medium
US20230289345A1 (en) Searchable encryption system
JP7217836B1 (ja) データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム
JP6987330B1 (ja) 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム
JP6672451B2 (ja) 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法
WO2021144834A1 (ja) 秘匿検索システム、秘匿検索方法、及び、秘匿検索プログラム
JP6462968B1 (ja) データ管理装置、データ管理方法及びデータ管理プログラム
US10936757B2 (en) Registration destination determination device, searchable encryption system, destination determination method, and computer readable medium
CN117336010A (zh) 基于可信执行环境的轻量级布尔查询可搜索对称加密方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2022536878

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21969922

Country of ref document: EP

Kind code of ref document: A1