Technical Field
[0001] The present invention relates to a searchable encryption technique for searching
for data while the data remains encrypted.
Background Art
[0002] Searchable encryption is a technique that allows data to be searched for while the
data remains encrypted. Currently, cloud services are beginning to be in widespread
use, and cloud storage which is inexpensive and the use of which can be started readily
is becoming common. When data including confidential information is managed on a cloud,
the data needs to be stored after being encrypted in order to avoid the risk of information
leakage. The searchable encryption allows a search to be performed over encrypted
data without decryption, and is thus a technique that can achieve both security and
functionality.
[0003] In the searchable encryption, a search is realized using two encrypted keywords.
A first one is a ciphertext of a keyword to be associated with data, which is called
an encrypted tag. A second one is a ciphertext of a keyword to be searched for, which
is called a trapdoor.
[0004] In data registration, encrypted data and an encrypted tag are registered in a storage
server. The encrypted tag is stored as an encrypted index in association with the
data associated with the encrypted tag or in association with an identifier of the
data. In the searchable encryption, an encrypted tag that matches a trapdoor transmitted
from a searcher is found in the encrypted index without decryption, thereby realizing
a search without revealing information on data and keywords.
[0005] The searchable encryption can be broadly divided into common-key searchable encryption
and public-key searchable encryption. The common-key searchable encryption and the
public-key searchable encryption have different characteristics as described below.
[0006] The public-key searchable encryption uses respectively different keys for generating
an encrypted tag and for generating a trapdoor, whereas the common-key searchable
encryption uses the same key for generating an encrypted tag and for generating a
trapdoor. The common-key searchable encryption can perform a search process faster
than the public-key searchable encryption.
[0007] Patent Literature 1 describes converting a ciphertext and then transmitting the converted
ciphertext to a user. Patent Literature 1 uses the common-key searchable encryption,
which generates an encrypted index and a trapdoor with the same key.
[0008] Patent Literature 2 describes a technique that allows even ciphertexts encrypted
with different secret keys to be compared with each other. In Patent Literature 2,
a part of each ciphertext to be used for comparison is encrypted so as to be not dependent
on the secret key.
[0009] Non-Patent Literature 1 describes a common-key searchable encryption technique by
a plurality of searchers. In Non-Patent Literature 1, all users encrypt keywords with
the same random number r to perform searches.
Citation List
Patent Literature
Non-Patent Literature
Summary of Invention
Technical Problem
[0012] In the existing common-key searchable encryption, the same key is used for generating
encrypted tags and for generating trapdoors. Therefore, when the common-key searchable
encryption is used by a plurality of users, a problem is that deciphering of encrypted
tags and trapdoors and spoofing by forging keys are possible.
[0013] It is an object of the present invention to make it possible to prevent deciphering
and spoofing.
Solution to Problem
[0014] A data management device according to the present invention includes
a trapdoor acquisition unit to acquire a trapdoor t(s) resulting from converting a
search word s by a map sk_U' assigned to an identifier U' among maps sk that differ
for each identifier; and
a search ciphertext generation unit to convert the trapdoor t(s) acquired by the trapdoor
acquisition unit by a map f_U' assigned to the identifier U' among maps f that differ
for each identifier, so as to generate a search ciphertext c(s).
Advantageous Effects of Invention
[0015] The present invention uses a trapdoor t(s) that is converted using a map sk different
for each identifier. Therefore, deciphering and spoofing can be prevented.
Brief Description of Drawings
[0016]
Fig. 1 is a configuration diagram of a searchable encryption system 10 according to
a first embodiment;
Fig. 2 is a configuration diagram of a key generation device 20 according to the first
embodiment;
Fig. 3 is a configuration diagram of a data management device 30 according to the
first embodiment:
Fig. 4 is a configuration diagram of a registration device 40 according to the first
embodiment;
Fig. 5 is a configuration diagram of a search device 50 according to the first embodiment;
Fig. 6 is a flowchart of a common key generation process according to the first embodiment;
Fig. 7 is a flowchart of an individual key generation process according to the first
embodiment;
Fig. 8 is a flowchart of a data registration process according to the first embodiment;
Fig. 9 is a flowchart of a data search process according to the first embodiment;
Fig. 10 is a flowchart of a data deletion process according to the first embodiment;
Fig. 11 is a configuration diagram of the key generation device 20 according to a
fourth variation;
Fig. 12 is a configuration diagram of the data management device 30 according to the
fourth variation;
Fig. 13 is a configuration diagram of the registration device 40 according to the
fourth variation; and
Fig. 14 is a configuration diagram of the search device 50 according to the fourth
variation.
Description of Embodiments
First Embodiment
*** Description of Configuration ***
[0017] A configuration of a searchable encryption system 10 according to a first embodiment
will be described with reference to Fig. 1.
[0018] The searchable encryption system 10 includes a key generation device 20, a data management
device 30, at least one registration device 40, and at least one search device 50.
[0019] The key generation device 20, the data management device 30, the registration device
40, and the search device 50 are connected via transmission channels 90. A specific
example of the transmission channels 90 is the Internet or a local area network (LAN).
[0020] An identifier is assigned to each registration device 40 and each search device 50.
[0021] A configuration of the key generation device 20 according to the first embodiment
will be described with reference to Fig. 2.
[0022] The key generation device 20 includes hardware of a processor 21, a memory 22, a
storage 23, and a communication interface 24. The processor 21 is connected with the
other hardware components via signal lines and controls the other hardware components.
[0023] The key generation device 20 includes, as functional components, a parameter acquisition
unit 211, a key generation unit 212, and a key transmission unit 213. The functions
of the functional components of the key generation device 20 are realized by software.
[0024] The storage 23 stores programs for realizing the functions of the functional components
of the key generation device 20. These programs are loaded into the memory 22 by the
processor 21 and executed by the processor 21. This realizes the functions of the
functional components of the key generation device 20.
[0025] The storage 23 realizes the function of a key storage unit 231.
[0026] A configuration of the data management device 30 according to the first embodiment
will be described with reference to Fig. 3.
[0027] The data management device 30 includes hardware of a processor 31, a memory 32, a
storage 33, and a communication interface 34. The processor 31 is connected with the
other hardware components via signal lines and controls the other hardware components.
[0028] The data management device 30 includes, as functional components, a key acquisition
unit 311, a data acquisition unit 312, a storage tag generation unit 313, a trapdoor
acquisition unit 314, a search ciphertext generation unit 315, a search unit 316,
and a deletion unit 317. The functions of the functional components of the data management
device 30 are realized by software.
[0029] The storage 33 stores programs for realizing the functions of the functional components
of the data management device 30. These programs are loaded into the memory 32 by
the processor 31 and executed by the processor 31. This realizes the functions of
the functional components of the data management device 30.
[0030] The storage 33 realizes the functions of a key storage unit 331 and a data storage
unit 332.
[0031] A configuration of the registration device 40 according to the first embodiment will
be described with reference to Fig. 4.
[0032] The registration device 40 includes hardware of a processor 41, a memory 42, a storage
43, and a communication interface 44. The processor 41 is connected with the other
hardware components via signal lines and controls the other hardware components.
[0033] The registration device 40 includes, as functional components, a key acquisition
unit 411, a data acquisition unit 412, an encrypted tag generation unit 413, an encryption
unit 414, and a data transmission unit 415. The functions of the functional components
of the registration device 40 are realized by software.
[0034] The storage 43 stores programs for realizing the functions of the functional components
of the registration device 40. These programs are loaded into the memory 42 by the
processor 41 and executed by the processor 41. This realizes the functions of the
functional components of the registration device 40.
[0035] The storage 43 realizes the function of a key storage unit 431.
[0036] A configuration of the search device 50 according to the first embodiment will be
described with reference to Fig. 5.
[0037] The search device 50 includes hardware of a processor 51, a memory 52, a storage
53, and a communication interface 54. The processor 51 is connected with the other
hardware components via signal lines and controls the other hardware components.
[0038] The search device 50 includes, as functional components, a key acquisition unit 511,
a search word acquisition unit 512, a trapdoor generation unit 513, and a search request
unit 514. The functions of the functional components of the search device 50 are realized
by software.
[0039] The storage 53 stores programs for realizing the functions of the functional components
of the search device 50. These programs are loaded into the memory 52 by the processor
51 and executed by the processor 51. This realizes the functions of the functional
components of the search device 50.
[0040] The storage 53 realizes the function of a key storage unit 531.
[0041] Each of the processors 21, 31, 41, and 51 is an integrated circuit (IC) that performs
arithmetic processing. As a specific example, each of the processors 21, 31, 41, and
51 is a central processing unit (CPU), a digital signal processor (DSP), or a graphics
processing unit (GPU).
[0042] Each of the memories 22, 32, 42, and 52 is a storage device to temporarily store
data. As a specific example, each of the memories 22, 32, 42, and 52 is a static random
access memory (SRAM) or a dynamic random access memory (DRAM).
[0043] Each of the storages 23, 33, 43, and 53 is a storage device to store data. As a specific
example, each of the storages 23, 33, 43, and 53 is a hard disk drive (HDD). Alternatively,
each of the storages 23, 33, 43, and 53 may be a portable storage medium, such as
a Secure Digital (SD, registered trademark) memory card, CompactFlash (CF, registered
trademark), a NAND flash, a flexible disk, an optical disc, a compact disc, a Blu-ray
(registered trademark) disc, or a digital versatile disc (DVD).
[0044] Each of the communication interfaces 24, 34, 44, and 54 is an interface for communicating
with external devices. As a specific example, each of the communication interfaces
24, 34, 44, and 54 is an Ethernet (registered trademark) port, a Universal Serial
Bus (USB) port, or a High-Definition Multimedia Interface (HDMI, registered trademark)
port.
[0045] Fig. 2 illustrates only one processor 21. However, the key generation device 20 may
include a plurality of processors as an alternative to the processor 21. Similarly,
the data management device 30 may include a plurality of processors as an alternative
to the processor 31. The registration device 40 may include a plurality of processors
as an alternative to the processor 41. The search device 50 may include a plurality
of processors as an alternative to the processor 51.
[0046] The plurality of processors share the execution of the programs for realizing the
functions of the functional components. Each of the plurality of processors is, like
the processors 21, 31, 41, and 51, an IC that performs arithmetic processing.
*** Description of Operation ***
[0047] Operation of the searchable encryption system 10 according to the first embodiment
will be described with reference to Figs. 6 to 10.
[0048] Operation of the key generation device 20 in the operation of the searchable encryption
system 10 according to the first embodiment corresponds to a key generation method
according to the first embodiment. The operation of the key generation device 20 also
corresponds to processes of a key generation program according to the first embodiment.
[0049] Operation of the data management device 30 in the operation of the searchable encryption
system 10 according to the first embodiment corresponds to a data management method
according to the first embodiment. The operation of the data management device 30
also corresponds to processes of a data management program according to the first
embodiment.
[0050] Operation of the registration device 40 in the operation of the searchable encryption
system 10 according to the first embodiment corresponds to a registration method according
to the first embodiment. The operation of the registration device 40 also corresponds
to processes of a registration program according to the first embodiment.
[0051] Operation of the search device 50 in the operation of the searchable encryption system
10 according to the first embodiment corresponds to a search method according to the
first embodiment. The operation of the search device 50 also corresponds to processes
of a search program according to the first embodiment.
[0052] A common key generation process according to the first embodiment will be described
with reference to Fig. 6.
[0053] The common key generation process is executed by the key generation device 20.
(Step S11: Parameter acquisition process)
[0054] The parameter acquisition unit 211 acquires a parameter λ.
[0055] Specifically, the parameter acquisition unit 211 acquires, via the communication
interface 24, the parameter λ transmitted from an external device. Alternatively,
the parameter acquisition unit 211 acquires the parameter λ input through an input
device connected via the communication interface 24. The parameter acquisition unit
211 writes the parameter λ in the memory 22.
(Step S12: Common key generation process)
[0056] The key generation unit 212 generates a key K2 and a map mk.
[0057] Specifically, the key generation unit 212 retrieves the parameter λ from the memory
22. The key generation unit 212 generates the key K2 that is random by a random number
generator, using as input the parameter λ. The key generation unit 212 generates the
map mk arbitrarily. The key generation unit 212 writes the key K2 and the map mk in
the memory 22.
[0058] The key K2 is a key common to every registration device 40 and every search device
50. That is, the key K2 is a key common to every identifier assigned to every registration
device 40 and every search device 50.
[0059] The map mk is a map common to every registration device 40 and every search device
50. That is, the map mk is a map common to every identifier assigned to every registration
device 40 and every search device 50.
(Step S13: Key storage process)
[0060] The key generation unit 212 retrieves the parameter λ acquired in step S11 as well
as the key K2 and the map mk generated in step S12 from the memory 22. The key generation
unit 212 writes the parameter λ, the key K2, and the map mk in the key storage unit
231. The key K2 and the map mk are secret information, and are thus stored strictly
so as not to be leaked to the outside.
[0061] An individual key generation process according to the first embodiment will be described
with reference to Fig. 7.
[0062] The individual key generation process is executed by the key generation device 20,
the data management device 30, and the registration device 40 or the search device
50. Specifically, the processes of step S21 to step S23 are executed by the key generation
device 20. The process of step S24 is executed by the data management device 30. The
process of step S25 is executed by the registration device 40 or the search device
50.
[0063] The individual key generation process may be executed when a request for generation
of an individual key is transmitted from the registration device 40 or the search
device 50 to the key generation device 20. Alternatively, the individual key generation
process may be executed at any time.
(Step S21: Identifier acquisition process)
[0064] The parameter acquisition unit 211 of the key generation device 20 acquires an identifier
of a device to be a processing target.
[0065] Specifically, the parameter acquisition unit 211 acquires, via the communication
interface 24, the identifier transmitted from an external device. Alternatively, the
parameter acquisition unit 211 acquires the identifier input through an input device
connected via the communication interface 24. The parameter acquisition unit 211 writes
the identifier in the memory 22.
[0066] It is assumed here that "U" is acquired as the identifier.
(Step S22: Individual key generation process)
[0067] The key generation unit 212 generates a key K1, a map sk, and a map f. The key generation
unit 212 generates a key K1_U, a map sk_U, and a map f_U that are associated with
the identifier U acquired in step S21.
[0068] Specifically, the key generation unit 212 retrieves, from the memory 22, the identifier
U acquired in step S21. The key generation unit 212 retrieves the parameter λ and
the map mk stored by the common key generation process from the key storage unit 231.
The key generation unit 212 generates the key K1_U that is random by the random number
generator, using as input the identifier U and the parameter λ. The key generation
unit 212 generates the map sk_U and the map f_U, using as input the map mk. At this
time, the key generation unit 212 generates the map sk_U and the map f_U such that
a composite map resulting from composing the map sk_U and the map f_U is the map mk.
That is, mk = f_U·sk_U. The key generation unit 212 writes the key K1_U, the map sk_U,
and the map f_U in the memory 22.
[0069] An example of a method for generating the map sk_U and the map f_U will be described.
[0070] The key generation unit 212 generates the map mk as mk(x) = x
c for an element x of a group with order n. The key generation unit 212 randomly selects
integers a and b that satisfy ab = c(mod n). The key generation unit 212 generates
the map sk_U = x
a and the map f_U = x
b.
[0071] The key K1 is a key that is different for each registration device 40 and each search
device 50. That is, the key K1 is a key that is different for each identifier assigned
to each registration device 40 and each search device 50.
[0072] The map sk and the map f are maps that are different for each registration device
40 and each search device 50. That is, the map sk and the map f are maps that are
different for each identifier assigned to each registration device 40 and each search
device 50. The composite map of the map sk and the map f that are assigned to the
same identifier is the map mk common to every identifier.
(Step S23: Key transmission process)
[0073] The key transmission unit 213 retrieves the key K2 stored by the common key generation
process from the memory 22, and retrieves the key K1_U, the map sk_U, and the map
f_U generated in step S22 from the memory 22.
[0074] The key transmission unit 213 transmits the map f_U to the data management device
30 via the communication interface 24. The key transmission unit 213 transmits the
key K1_U, the key K2, and the map sk_U to the registration device 40 or the search
device 50 associated with the identifier U via the communication interface 24.
(Step S24: First key acquisition process)
[0075] The key acquisition unit 311 of the data management device 30 receives, via the communication
interface 34, the key f_U transmitted in step S23. The data acquisition unit 311 writes
the received key f_U in the key storage unit 331. The key f_U is secret information,
and is thus stored strictly so as not to be leaked to the outside.
(Step S25: Second key acquisition process)
[0076] The registration device 40 or the search device 50 associated with the identifier
U operates.
[0077] When the registration device 40 is associated with the identifier U, the key acquisition
unit 411 receives, via the communication interface 44, the key K1_U, the key K2, and
the map sk_U transmitted in step S23. The key acquisition unit 411 writes the received
key K1_U, key K2, and map sk_U in the key storage unit 431.
[0078] When the search device 50 is associated with the identifier U, the key acquisition
unit 511 receives, via the communication interface 54, the key K1_U, the key K2, and
the map sk_U transmitted in step S23. The key acquisition unit 511 writes the received
K1_U, key K2, and map sk_U in the key storage unit 531.
[0079] The key K1_U, the key K2, and the map sk_U are secret information, and are thus stored
strictly so as not to be leaked to the outside. Note that when the search device 50
is associated with the identifier U, the transmission of the key K1_U may be omitted.
[0080] A data registration process according to the first embodiment will be described with
reference to Fig. 8.
[0081] The data registration process is executed by the data management device 30 and the
registration device 40. Specifically, the processes of step S31 to step S34 are executed
by the registration device 40. The processes of step S35 to step S37 are executed
by the data management device 30.
[0082] It is assumed here that the data registration process is executed by the registration
device 40 having the identifier U.
(Step S31: Data acquisition process)
[0083] The data acquisition unit 412 of the registration device 40 acquires data D to be
registered, a data name ID(D), which is a name with which the data D can be identified,
and a set W(D) of keywords w for searching for the data D.
[0084] Specifically, the data acquisition unit 412 acquires, via the communication interface
44, the data D, the data name ID(D), and the set W(D) that are transmitted from an
external device. Alternatively, the data acquisition unit 412 acquires the data D,
the data name ID(D), and the set W(D) that are input through an input device connected
via the communication interface 24. The data acquisition unit 412 writes the data
D, the data name ID(D), and the set W(D) in the memory 42.
(Step S32: Encrypted tag generation process)
[0085] The encrypted tag generation unit 413 generates an encrypted tag c for each keyword
w included in the set W(D) acquired in step S31.
[0086] Specifically, the encrypted tag generation unit 413 retrieves the data name ID(D)
and the set W(D) from the memory 42. The encrypted tag generation unit 413 retrieves
the key K2 and the map sk_U from the key storage unit 431. With regard to each keyword
w included in the set W(D), the encrypted tag generation unit 413 encrypts the keyword
w concerned to generate the encrypted tag c. The encrypted tag generation unit 413
generates the encrypted tag c by calculating c = sk_U(E(K2, w)), where E is an encryption
function. The encryption functions that can be employed include an encryption function
of a common-key encryption scheme such as Advanced Encryption Standard (AES), a message
authentication function such as Hash-based Message Authentication Code (HMAC), and
a hash function such as Secure Hash Algorithm-256 (SHA-256). That is, the encrypted
tag generation unit 413 generates the encrypted tag c by encrypting the keyword w
concerned with the key K2, using the encryption function E, and then converting the
encrypted keyword w by the map sk_U.
[0087] The encrypted tag generation unit 413 writes a pair of the data name ID(D) and a
set C(D) of the encrypted tags c in the memory 42 as registration encrypted data R(D).
[0088] Note that when E(K2, w) is not a value that can be input to the map sk_U, the value
is encoded by any method, so as to be converted into a value that can be input to
the map sk_U.
(Step S33: Encryption process)
[0089] The encryption unit 414 encrypts the data D acquired in step S31, so as to generate
encrypted data B(D).
[0090] Specifically, the encryption unit 414 retrieves the data D and the data name ID(D)
from the memory 42. The encryption unit 414 retrieves the key K1_U from the key storage
unit 431. The encryption unit 414 encrypts the data D to generate the encrypted data
B(D). The encryption unit 414 generates the encrypted data B(D) by calculating B(D)
= E(K1_U, D), where E is an encryption function. The encryption functions that can
be employed include an encryption function of a common-key encryption scheme such
as AES, a message authentication function such as HMAC, and a hash function such as
SHA-256, as in step S32. Alternatively, the encryption function may be an encryption
function such as ID-based encryption or attribute-based encryption. That is, the encryption
unit 414 generates the encrypted data B(D) by encrypting the data D with the key K1_U,
using the encryption function E. The encryption unit 414 writes the encrypted data
B(D) in the memory 42.
(Step S34: Data transmission process)
[0091] The data transmission unit 415 retrieves the registration encrypted data R(D) generated
in step S32 and the encrypted data B(D) generated in step S33 from the memory 42.
The data transmission unit 415 transmits the registration encrypted data R(D) and
the encrypted data B(D) to the data management device 30 via the communication interface
44.
(Step S35: Data reception process)
[0092] The data acquisition unit 312 of the data management device 30 receives, via the
communication interface 34, the registration encrypted data R(D) and the encrypted
data B(D) transmitted in step S34. The data acquisition unit 312 writes the registration
encrypted data R(D) and the encrypted data B(D) in the memory 32.
(Step S36: Storage tag generation process)
[0093] The storage tag generation unit 313 generates a storage tag c' for each encrypted
tag c included in the set C(D) in the registration encrypted data R(D) received in
step S35.
[0094] Specifically, the storage tag generation unit 313 retrieves the registration encrypted
data R(D) from the memory 32. The storage tag generation unit 313 retrieves the map
f_U from the key storage unit 331. With regard to each encrypted tag c included in
the set C(D) in the registration encrypted data R(D), the storage tag generation unit
313 converts the encrypted tag c concerned by the map f_U, so as to generate the storage
tag c'. That is, the storage tag generation unit 313 generates the storage tag c'
by calculating c' = f_U(c).
[0095] The storage tag generation unit 313 writes a pair of the data name ID(D) and a set
C'(D) of the storage tags c' in the memory 32 as storage encrypted data I(D).
[0096] The storage tag c' is generated by converting the encrypted keyword w by the map
sk_U and further converting the converted encrypted keyword w by the map f_U. The
composite map of the map sk and the map f that are assigned to the same identifier
is the map mk common to every identifier. Therefore, regardless of which registration
device 40 executes the data registration process, the storage tag c' is generated
by converting the encrypted keyword w by the map mk.
(Step S37: Index addition process)
[0097] The storage tag generation unit 313 adds the storage encrypted data I(D) generated
in step S36 to an encrypted index I. The encrypted index I is stored in the data storage
unit 332. The storage tag generation unit 313 writes the encrypted data B(D) received
in step S35 in the data storage unit 332.
[0098] A data search process according to the first embodiment will be described with reference
to Fig. 9.
[0099] The data search process is executed by the data management device 30 and the search
device 50. Specifically, the processes of step S41 to step S43 and step S48 are executed
by the search device 50. The processes of step S44 to step S47 are executed by the
data management device 30.
[0100] It is assumed here that the data search process is executed by the search device
50 having the identifier U'.
(Step S41: Search word acquisition process)
[0101] The search word acquisition unit 512 of the search device 50 acquires a search word
s, which is a keyword for searching for the data D.
[0102] Specifically, the search word acquisition unit 512 acquires, via the communication
interface 44, the search word s transmitted from an external device. Alternatively,
the search word acquisition unit 512 acquires the search word s input through an input
device connected via the communication interface 24. The search word acquisition unit
512 writes the search word s in the memory 52.
(Step S42: Trapdoor generation process)
[0103] The trapdoor generation unit 513 generates a trapdoor t(s) of the search word s acquired
in step S41.
[0104] Specifically, the trapdoor generation unit 513 retrieves the search word s from the
memory 52. The trapdoor generation unit 513 retrieves the key K2 and the map sk_U'
from the key storage unit 531. The trapdoor generation unit 513 encrypts the search
word s to generate the trapdoor t(s). The trapdoor generation unit 513 generates the
trapdoor t(s) by calculating t(s) = sk_U'(E(K2, s)), where E is the same encryption
function as the encryption function used in step S32. That is, the trapdoor generation
unit 513 generates the trapdoor t(s) by encrypting the search word s with the key
K2, using the encryption function E, and then converting the encrypted search word
s by the map sk_U. The trapdoor generation unit 513 writes the trapdoor t(s) in the
memory 52.
[0105] Note that when E(K2, s) is not a value that can be input to the map sk_U, the value
is encoded by the same method as in step S32 of Fig. 8, so as to be converted into
a value that can be input to the map sk_U.
(Step S43: Search request process)
[0106] The search request unit 514 retrieves the trapdoor t(s) generated in step S42 from
the memory 52. The search request unit 514 transmits the trapdoor t(s) to the data
management device 30 via the communication interface 54.
(Step S44: Search request reception process)
[0107] The trapdoor acquisition unit 314 of the data management device 30 receives, via
the communication interface 34, the trapdoor t(s) transmitted in step S43. The trapdoor
acquisition unit 314 writes the trapdoor t(s) in the memory 32.
(Step S45: Search ciphertext generation process)
[0108] The search ciphertext generation unit 315 generates a search ciphertext c(s) from
the trapdoor t(s) acquired in step S44.
[0109] Specifically, the search ciphertext generation unit 315 retrieves the trapdoor t(s)
from the memory 32. The search ciphertext generation unit 315 retrieves the map f_U'
from the key storage unit 331. The search ciphertext generation unit 315 converts
the trapdoor t(s) by the map f_U', so as to generate the search ciphertext c(s). That
is, the search ciphertext generation unit 315 generates the search ciphertext c(s)
by calculating c(s) = f_U(t(s)). The search ciphertext generation unit 315 writes
the search ciphertext c(s) in the memory 32.
[0110] The search ciphertext c(s) is generated by converting the encrypted search word s
by the map sk_U and further converting the converted encrypted search word s by the
map f_U. The composite map of the map sk and the map f that are assigned to the same
identifier is the map mk common to every identifier. Therefore, regardless of which
search device 50 executes the data search process, the search ciphertext c(s) is generated
by converting the encrypted search word s by the map mk.
(Step S46: Search process)
[0111] The search unit 316 extracts, from the encrypted index I, storage encrypted data
I(D) including as the storage tag c' the search ciphertext c(s) generated in step
S45.
[0112] Specifically, the search unit 316 retrieves the search ciphertext c(s) from the memory
32. The search unit 316 extracts the storage encrypted data I(D) including as the
storage tag c' the search ciphertext c(s), out of pieces of the storage encrypted
data I(D) stored in the data storage unit 332, using techniques such as binary search
and a hash table. The search unit 316 identifies the encrypted data B(D) indicated
by the data name ID(D) included in the extracted storage encrypted data I(D). The
search unit 316 writes a set including each piece of the identified encrypted data
B(D) in the memory 32 as a search result S(s).
[0113] Note that a set including the data name ID(D) included in each piece of the extracted
storage encrypted data I(D) may be treated as the search result S(s).
[0114] As described above, regardless of which registration device 40 executes the data
registration process, the storage tag c' is generated by converting the encrypted
keyword w by the map mk. Regardless of which search device 50 executes the data search
process, the search ciphertext c(s) is generated by converting the encrypted search
word s by the map mk. Therefore, in the data search process executed by any search
device 50, a search can be performed over pieces of data registered by all registration
devices 40.
(Step S47: Result transmission process)
[0115] The search unit 316 retrieves the search result S(s) written in step S46 from the
memory 32. The search unit 316 transmits the search result S(s) to the search device
50 via the communication interface 34.
(Step S48: Result reception process)
[0116] The search request unit 514 of the search device 50 receives, via the communication
interface 54, the search result S(s) transmitted in step S47. The search request unit
514 outputs the search result S(s) to a display device or the like via the communication
interface 54.
[0117] A data deletion process according to the first embodiment will be described with
reference to Fig. 10.
[0118] The data deletion process is executed by the data management device 30 and the registration
device 40. Specifically, the processes of step S51 and step S52 are executed by the
registration device 40. The processes of step S53 and step S54 are executed by the
data management device 30.
(Step S51: Deletion name acquisition process)
[0119] The data acquisition unit 412 acquires the data name ID(D) of a deletion target.
[0120] Specifically, the data acquisition unit 412 acquires, via the communication interface
44, the data name ID(D) transmitted from an external device. Alternatively, the data
acquisition unit 412 acquires the data name ID(D) input through an input device connected
via the communication interface 24. The data acquisition unit 412 writes the data
name ID(D) in the memory 42.
(Step S52: Deletion request process)
[0121] The data transmission unit 415 retrieves the data name ID(D) written in step S51
from the memory 42. The data transmission unit 415 transmits the data name ID(D) to
the data management device 30 via the communication interface 44.
(Step S53: Deletion request reception process)
[0122] The deletion unit 317 of the data management device 30 receives, via the communication
interface 34, the data name ID(D) transmitted in step S52. The deletion unit 317 writes
the data name ID(D) in the memory 32.
(Step S54: Deletion process)
[0123] The deletion unit 317 retrieves the data name ID(D) written in step S53 from the
memory 32. The deletion unit 317 deletes the encrypted data B(D) indicated by the
data name ID(D) from the data storage unit 332. The deletion unit 317 also deletes
the storage encrypted data I(D) including the data name ID(D) from the encrypted index
I.
*** Effects of First Embodiment ***
[0124] As described above, in the searchable encryption system 10 according to the first
embodiment, each registration device 40 and each search device 50 use a different
key K1 and a different map sk. Therefore, deciphering of encrypted tags and trapdoors
and spoofing can be prevented.
[0125] In the searchable encryption system 10 according to the first embodiment, conversion
is performed using the map f in the data registration process and the data search
process. Therefore, by having the data management device 30 delete the map f_U* for
a target identifier U* from the key storage unit 331, the authority of the registration
device 40 or the search device 50 to which the target identifier U* is assigned can
be canceled.
[0126] In the searchable encryption system 10 according to the first embodiment, the search
process in step S46 of Fig. 9 can be executed at high speed, as in the existing common-key
searchable encryption. Although the conversion of the trapdoor t(s) requires processing
time, the volume of calculations for the conversion of the trapdoor t(s) is one calculation
or a fixed number of calculations. Therefore, data can be searched for faster than
the existing public-key searchable encryption.
[0127] In the searchable encryption system 10 according to the first embodiment, a search
can be performed over pieces of data registered by all registration devices 40 in
the data search process executed by any search device 50. That is, the encrypted index
I can be used commonly regardless of the registration device 40 and the search device
50. Therefore, the capacity of the storage 33 to store the encrypted index I can be
reduced.
*** Other Configurations ***
<First Variation>
[0128] In the first embodiment, the key generation device 20 generates the key K2, the map
mk, the key K1, the map sk, and the map f. However, the key K2, the map mk, the key
K1, the map sk, and the map f may be generated by separate devices.
<Second Variation>
[0129] In the first embodiment, the key generation device 20 transmits the map sk_U to the
registration device 40 and the search device 50. Alternatively, the key generation
device 20 may transmit the map mk, in place of the map sk U, to one of the registration
device 40 and the search device 50.
[0130] When the key generation device 20 transmits the map mk to the registration device
40, the encrypted tag generation unit 413 generates the encrypted tag c using the
map mk, in place of the map sk_U, in step S32 of Fig. 8. Then, the process of step
S36 of Fig. 8 is omitted.
[0131] When the key generation device 20 transmits the map mk to the search device 50, the
trapdoor generation unit 513 generates the trapdoor t(s) using the map mk, in place
of the map sk_U, in step S42 of Fig. 9. Then, step S45 of Fig. 9 is omitted.
<Third Variation>
[0132] In the first embodiment, the encrypted data B(D) and the encrypted index I are stored
in the data storage unit 332 realized by the storage 33 of the data management device
30. However, the encrypted data B(D) and the encrypted index I may be stored in a
storage device external to the data management device 30. In other words, the data
storage unit 332 may be provided in a storage device external to the data management
device 30.
<Fourth Variation>
[0133] In the first embodiment, the functional components are realized by software. As a
fourth variation, however, the functional components may be realized by hardware.
With regard to the fourth variation, differences from the first embodiment will be
described.
[0134] A configuration of the key generation device 20 according to the fourth variation
will be described with reference to Fig. 11.
[0135] When the functions are realized by hardware, the key generation device 20 includes
an electronic circuit 25, in place of the processor 21, the memory 22, and the storage
23. The electronic circuit 25 is a dedicated circuit that realizes the functional
components of the common parameter generation device 20 and the functions of the memory
22 and the storage 23.
[0136] A configuration of the data management device 30 according to the fourth variation
will be described with reference to Fig. 12.
[0137] When the functions are realized by hardware, the data management device 30 includes
an electronic circuit 35, in place of the processor 31, the memory 32, and the storage
33. The electronic circuit 35 is a dedicated circuit that realizes the functional
components of the key generation device 30 and the functions of the memory 32 and
the storage 33.
[0138] A configuration of the registration device 40 according to the fourth variation will
be described with reference to Fig. 13.
[0139] When the functions are realized by hardware, the registration device 40 includes
an electronic circuit 45, in place of the processor 41, the memory 42, and the storage
43. The electronic circuit 45 is a dedicated circuit that realizes the functional
components of the conversion key generation device 40 and the functions of the memory
42 and the storage 43.
[0140] A configuration of the search device 50 according to the fourth variation will be
described with reference to Fig. 14.
[0141] When the functions are realized by hardware, the search device 50 includes an electronic
circuit 55, in place of the processor 51, the memory 52, and the storage 53. The electronic
circuit 55 is a dedicated circuit that realizes the functional components of the encryption
device 50 and the functions of the memory 52 and the storage 53.
[0142] Each of the electronic circuits 25, 35, 45, and 55 is assumed to be a single circuit,
a composite circuit, a programmed processor, a parallel-programmed processor, a logic
IC, a gate array (GA), an application specific integrated circuit (ASIC), or a field-programmable
gate array (FPGA).
[0143] The functions of the functional components of the key generation device 20 may be
realized by one electronic circuit 25, or the functions of the functional components
may be distributed among and realized by a plurality of electronic circuits 25. Similarly,
the functions of the functional components of the data management device 30, the registration
device 40, or the search device 50 may be realized by one electronic circuit 35, 45,
or 55, or the functions of the functional components may be distributed among and
realized by a plurality of electronic circuits 35, 45, or 55, respectively.
<Fifth Variation>
[0144] As a fifth variation, some of the functions may be realized by hardware, and the
rest of the functions may be realized by software. That is, some of the functions
of the functional components may be realized by hardware, and the rest of the functions
may be realized by software.
[0145] Each of the processors 21, 31, 41, and 51, the memories 22, 32, 42, and 52, the storages
23, 33, 43, and 53, and the electronic circuits 25, 35, 45, and 55 is referred to
as processing circuitry. That is, the functions of the functional components are realized
by the processing circuitry.
Reference Signs List
[0146] 10: searchable encryption system, 20: key generation device, 21: processor, 22: memory,
23: storage, 24: communication interface, 25: electronic circuit, 211: parameter acquisition
unit, 212: key generation unit, 213: key transmission unit, 231: key storage unit,
30: data management device, 31: processor, 32: memory, 33: storage, 34: communication
interface, 35: electronic circuit, 311: key acquisition unit, 312: data acquisition
unit, 313: storage tag generation unit, 314: trapdoor acquisition unit, 315: search
ciphertext generation unit, 316: search unit, 317: deletion unit, 331: key storage
unit, 332: data storage unit, 40: registration device, 41: processor, 42: memory,
43: storage, 44: communication interface, 45: electronic circuit, 411: key acquisition
unit, 412: data acquisition unit, 413: encrypted tag generation unit, 414: encryption
unit, 415: data transmission unit, 431: key storage unit, 50: search device, 51: processor,
52: memory, 53: storage, 54: communication interface, 55: electronic circuit, 511:
key acquisition unit, 512: search word acquisition unit, 513: trapdoor generation
unit, 514: search request unit, 531: key storage unit, 90: transmission channels