WO2014030706A1 - 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム - Google Patents

暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム Download PDF

Info

Publication number
WO2014030706A1
WO2014030706A1 PCT/JP2013/072433 JP2013072433W WO2014030706A1 WO 2014030706 A1 WO2014030706 A1 WO 2014030706A1 JP 2013072433 W JP2013072433 W JP 2013072433W WO 2014030706 A1 WO2014030706 A1 WO 2014030706A1
Authority
WO
WIPO (PCT)
Prior art keywords
client device
encrypted
addition
database server
advance
Prior art date
Application number
PCT/JP2013/072433
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 日本電気株式会社
Publication of WO2014030706A1 publication Critical patent/WO2014030706A1/ja

Links

Images

Classifications

    • 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
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Definitions

  • the present invention relates to an encrypted database system, a client device and a server, an encrypted data addition method, and a program, and in particular, it is possible to add encrypted data without decrypting and verify the addition result with a small amount of calculation. It relates to an encrypted database system.
  • the user encrypts his / her data with the encryption key held in his / her client and then transmits it to the server.
  • the server side it is necessary to be able to “perform addition processing without decrypting the encrypted data”, and on the client side “verify whether the returned addition result is correct” It needs to be possible.
  • Non-Patent Document 1 describes a technique that can perform addition processing without decrypting data encrypted using “trapdoor permutation”.
  • Non-Patent Document 2 describes an encryption method that can be used for electronic voting.
  • Non-Patent Document 3 describes an encryption method that is strong against selective ciphertext attacks.
  • Non-Patent Document 4 describes a method of calculating a power residue described later.
  • Patent Document 1 describes a distributed information processing system that can perform operations including size comparison on secret information.
  • Patent Document 2 describes a message authentication device capable of efficiently performing block cipher authentication.
  • Patent Document 3 describes a searchable encryption system that can search a database including ciphertext.
  • Patent Document 4 describes a data collection system that can collect and analyze data of each customer device while ensuring secrecy to a third party and anonymity to a center.
  • JP 2008-020871 A International Publication WO2007 / 0524477 JP 2012-079192 A JP 2009-290774 A
  • Non-Patent Documents 1 and 2 and Patent Document 1 describe a technique that enables addition of encrypted data, but does not describe verifying the addition result.
  • Non-Patent Document 3 describes a technique for verifying the validity of encryption, but this is a verification of the validity of the ciphertext itself and not the validity of the addition result.
  • the remaining Non-Patent Document 4 and Patent Documents 2 to 4 do not describe a technique that satisfies both of the above properties.
  • An object of the present invention is to perform addition processing without decrypting encrypted data, and to verify whether or not the addition result is correct with a significantly smaller amount of calculation than addition processing.
  • an encrypted database system adds a client device that transmits an addition command and encrypted data stored in advance according to the addition command without decryption.
  • An encrypted database system comprising an encrypted database server for transmitting the result to the client device, wherein the client device generates an encryption key and a random number sequence to be used in a tagged encryption method in advance.
  • a data registration unit that sends it to the encrypted database server for storage, and a target for calculating the sum of plaintexts. And having an addition unit that transmits the encrypted database server data set as addition instruction.
  • the client apparatus adds an encrypted data stored in advance according to a transmitted addition command without decrypting the encrypted data and transmits the result.
  • a set-up unit that generates an encryption key and a random number sequence used in a tagged encryption method and stores them in a storage unit provided in advance, and corresponds to the input plaintext
  • a data registration unit which calculates a tag by a polynomial of a random number sequence, adds a tag to a ciphertext obtained by encrypting a plaintext using a cryptographic key with an encryption key, and transmits the encrypted text to an encrypted database server;
  • an addition unit that transmits a data set to be calculated as a sum of plaintexts to the encrypted database server as an addition command.
  • an encrypted database server adds encrypted data stored in advance according to an addition command received from a client device without decrypting the result, and adds the result to the client.
  • An encrypted database server to be transmitted to a device, which receives an integer generated in advance by a client device and stores it in a storage means provided in advance, and plaintext and a tag encrypted by the client device
  • a data registration unit that stores the set of data in a storage unit provided in advance, a product of ciphertexts belonging to the data set received from the client device, and a sum of tags corresponding to the ciphertexts, and calculating this as an addition result
  • an adding unit that sends a reply to the client device.
  • an encrypted data addition method adds a client device that transmits an addition command and encrypted data stored in advance according to the addition command without decryption.
  • the setup unit of the client device In the encrypted database system comprising the encrypted database server that transmits the result to the client device, the setup unit of the client device previously obtains an encryption key and a random number sequence used for the tagged encryption method.
  • Storage means that is generated and stored in a storage means provided in advance, and that the simultaneously generated integer is transmitted to the encryption database server, and the setup unit of the encryption database server is provided with the integer received from the client device in advance.
  • the data registration unit of the client device adds a tag corresponding to the input plaintext.
  • the data registration unit of the client device calculates by using a polynomial of a number sequence, adds a tag to the ciphertext obtained by encrypting the plaintext by the tagged encryption method using the encryption key, and transmits it to the encryption database server.
  • the data registration unit of the server stores the plaintext and tag set received from the client device in a storage means provided in advance, and the addition unit of the client device uses the data set for which the sum of the plaintext is calculated as an addition command Sent to the encrypted database server, and the addition unit of the encrypted database server calculates the product of the ciphertexts belonging to the data set received from the client device and the sum of the tags corresponding to each ciphertext, and uses this as the addition result A reply is made to the client device.
  • an encrypted data addition program adds a client device that transmits an addition command and encrypted data stored in advance according to the addition command without decryption.
  • an encrypted database system comprising an encrypted database server that transmits the result to the client device, an encryption key and a random number sequence used in the tagged encryption method are preliminarily assigned to the processor provided in the client device.
  • another encrypted data addition program includes a client device that transmits an addition command, and without decrypting encrypted data that is stored in advance in accordance with the addition command.
  • a processor provided in the encrypted database server is pre-stored with an integer received from the client device. The procedure for storing the plaintext and tag set received from the client device in the storage means provided in advance, and the ciphertext belonging to the data set for which the sum of the plaintext received from the client device is calculated. Calculate the product and the sum of the tags corresponding to each ciphertext, and use this as the addition result Characterized in that to execute a procedure for replying to the client device.
  • the present invention adds a tag to a ciphertext obtained by encrypting a plaintext using a cipher key using a cipher key and stores it in the encrypted database server, and calculates the encrypted database server.
  • the encryption database server is configured to calculate the product of the ciphertexts belonging to the data set to be processed and the sum of the tags corresponding to each ciphertext and return this to the client device as the addition result, the encrypted database server The sum can be calculated without decryption, and the client device can easily verify whether this sum is correct.
  • a forward encryption database system, a client and a server, an encryption data addition method, and a program having the above characteristics can be provided.
  • the encrypted database system 1 adds the encrypted data stored in advance according to the addition command without decrypting the client device 20 that transmits the addition command, and adds the result to the
  • This is an encrypted database system comprising an encrypted database server 10 that transmits to a client device.
  • the client device 20 generates an encryption key and a random number sequence used in the tagged encryption method in advance and stores them in the storage unit 22 provided in advance, and a tag corresponding to the input plaintext is a random number sequence
  • a data registration unit 202 that adds a tag to a ciphertext obtained by encrypting the plaintext using a cipher with a tag using an encryption key, and transmits the data to the encryption database server for storage.
  • an adder 203 that transmits a data set to be calculated as a sum command to the encryption database server.
  • One encrypted database server 10 receives an integer generated in advance by the client device 20 and stores it in a storage unit 12 provided in advance, and a set of plaintext and tags encrypted by the client device. Is stored in a storage means provided in advance, and a product of ciphertexts belonging to the data set received from the client device and a sum of tags corresponding to the ciphertexts are calculated and added to the client as a result of addition. And an adding unit 103 that sends a reply to the apparatus.
  • the adding unit 203 of the client device 20 decrypts the received addition result using an encryption key, calculates a tag again from the plaintext obtained by the decryption using a random number sequence polynomial, and combines the plaintext and the tag. It has a function of verifying whether or not the addition result is valid based on whether or not the result encrypted by the tagged encryption method using the encryption key again matches the addition result.
  • the encrypted database system 1 performs the addition process without decrypting the encrypted data, and the calculation whether the addition result is correct is significantly less than the addition process. It can be verified by quantity. Hereinafter, this will be described in more detail.
  • Equation 1 The ciphertext Enc (K, a, ⁇ ) is defined as shown in Equation 1 below.
  • K is a common key
  • a plaintext (a numerical value to be added)
  • is data called a tag
  • A is an arbitrary constant
  • N is an RSA modulus
  • g is an element of (Z / N ⁇ sZ)
  • s is a natural number of 2 or more.
  • Equation 1 When there are two sets of plaintexts (a, ⁇ ) and (a ′, ⁇ ′) and corresponding tags, Enc (K, a, ⁇ ) defined by Equation 1 has the property shown by Equation 2. There is. Here, “ ⁇ ” indicates multiplication.
  • a + a ′ ciphertext can be calculated from a ciphertext and a ′ ciphertext, and a and a ′ can be added as encrypted. .
  • plaintext a is used for two elements “(1 + AN) ⁇ a” and “g ⁇ a”. This part can be used to verify the validity of the ciphertext ("A to the Bth power" is expressed as "A ⁇ B" in lines other than the mathematical expressions in this specification). If this ciphertext is illegal, the two elements have different values, such as “(1 + AN) ⁇ a” and “g ⁇ b”. Therefore, if the coincidence between the two elements is determined, it can be verified that the ciphertext has not been created in an unauthorized manner.
  • the ciphertext C received from the server is decrypted once with a valid encryption key K possessed by the user to obtain plaintext a, the following number It can be determined that the ciphertext C is valid if the relationship shown in FIG.
  • Equation 4 each of n (n ⁇ 2) plaintexts and corresponding tag pairs (a [1], ⁇ [1]),..., (A [n], ⁇ [n])
  • n ciphertexts shown in Equation 4 encrypted by the defined method.
  • the server calculated the ciphertext C as an addition result shown in Equation 5.
  • the server illegally calculates the ciphertext C as the addition result, there is a high possibility that this C will not pass the above verification. Accordingly, after the user decrypts the ciphertext C once with the valid encryption key K possessed by the user and obtains the plaintext a, the ciphertext C is valid if the relationship shown in Equation 6 is established, and is invalid if the relationship is not established. It can be determined that there is.
  • is the order of g, h is randomly selected from (Z / N ⁇ sZ), and x is randomly selected from the (Z / ⁇ Z) set, and y [i ] And ⁇ [i] are defined.
  • the array ⁇ is parametrized with only one type of variable i, that is, the case where it is expressed as ⁇ [i] has been described.
  • the array ⁇ has d variables i [1],. Even when parameterized by i [d], it can be easily expanded. That is, in this case, the array ⁇ can be expressed as shown in Equation 11.
  • e vectors j [1],..., J [e] are defined as shown in Equation 12.
  • i (i [1],..., I [d]).
  • the set X is defined as shown in Equation 13.
  • [A..B] is “a set of integers between A and B”.
  • Equation 16 It is assumed that the sum of ciphertexts shown in Equation 16 can be obtained from the ciphertext C shown in Equation 14 by calculating the product as shown in Equation 15.
  • x [1],..., X [d] is selected at random from (Z / ⁇ Z), and y [i [1],..., I [d]] and ⁇ [i] as shown in the following Equation 18. [1], ..., i [d]] are defined.
  • Equation 19 If w [l] and z are defined as in the following equation 19, the relationship of equation 20 is established. Therefore, since the relationship of Equation 21 is established, it is only necessary to calculate h ⁇ z instead of calculating the product shown in Equation 17, so that the calculation related to the verification of the addition result can be streamlined.
  • FIG. 1 is an explanatory diagram showing a configuration of an encrypted database system 1 according to an embodiment of the present invention.
  • the encrypted database system 1 is configured by connecting an encrypted database server 10 and a client device 20 to each other.
  • FIG. 1 shows one encrypted database server 10 and one client device 20, but basically there are many units for one encrypted database server 10.
  • the client device 20 is connected.
  • the encrypted database server 10 has a configuration as a general computer device. That is, the encrypted database server 10 includes a processor 11 that is a main body that executes a computer program, a storage unit 12 that stores data, and a communication unit 13 that performs data communication with other computers.
  • a processor 11 that is a main body that executes a computer program
  • a storage unit 12 that stores data
  • a communication unit 13 that performs data communication with other computers.
  • the client device 20 also has a configuration as a general computer device. That is, the client device 20 receives the input from the user and presents the calculation result to the user in addition to the processor 21, the storage unit 22, and the communication unit 23 similar to the encrypted database server 10. Output means 24 is provided.
  • the processor 11 of the encrypted database server 10 functions as each of the setup unit 101, the data registration unit 102, the addition unit 103, and the high-speed addition unit 104 by the operation of the encrypted data management program.
  • the storage unit 12 of the encrypted database server 10 stores data such as encrypted data 111 and encryption parameters 112.
  • the processor 21 of the client device 20 also functions as each of the setup unit 201, the data registration unit 202, the addition unit 203, and the high-speed addition unit 204 by the operation of the encrypted data management program.
  • the encryption parameter 211 is stored in the storage unit 22 of the client device 20.
  • the setup units 101 and 201, the data registration units 102 and 202, and the addition units 103 and 203 perform the following processing in conjunction with each other. Further, the high-speed adding unit 204 of the client device 20 works in conjunction with the adding unit 103 of the encrypted database server 10.
  • the setup units 101 and 201 generate information to be shared between the encrypted database server 10 and the client device 20 that is a premise of the operation of the present embodiment, and store the information as the encryption parameters 112 and 211.
  • the data registration units 102 and 202 encrypt the data in the client device 20 and transmit the encrypted data to the encrypted database server 10, and the encrypted database server 10 stores the encrypted data as the encrypted data 111.
  • the adders 103 and 203 generate a command statement for adding data in a specific range in the encrypted data 111 in the client device 20 and transmit it to the encrypted database server 10, and the encryption database server 10 adds it accordingly.
  • the high-speed addition unit 204 executes the same addition process at a higher speed than the addition units 103 and 203, but the types of sums that can be calculated are limited (details will be described later).
  • the key generation algorithm Kg outputs integers U, V, ⁇ and a common key K.
  • a set of integers is expressed as Z
  • a cyclic group of order N is expressed as Z / NZ.
  • g is an element of (Z / Ns)
  • is the order of g.
  • the tag ⁇ (Z / ⁇ Z) is data for managing the storage location of the plaintext m (the numerical value to be added).
  • the encryption algorithm Enc receives the common key K, the plaintext m ⁇ (Z / UZ), and the tag ⁇ (Z / ⁇ Z) as inputs, and outputs the ciphertext C ⁇ (Z / VZ).
  • the decryption algorithm Dec receives the common key K, the ciphertext C, and the tag ⁇ as inputs, and outputs an error message indicating that the plaintext m or C is invalid.
  • the tagged encryption method used in this embodiment is expressed as follows when s is defined as a natural number of 2 or more and A is defined as an arbitrary constant.
  • the key generation algorithm Kg selects the elements g and h of the integers N and Z / (N ⁇ 2) Z and the order is the same value ⁇ , and U, V, ⁇ defined by the following number 22 , K are output.
  • ⁇ and ⁇ ′ are security parameters, from the viewpoint of safety, ⁇ is defined as 1024 or more, ⁇ ′ is defined as 160 or more, and N Is a product of randomly selected prime numbers p and q of ⁇ / 2 bits, and ⁇ is a divisor of the N ⁇ s Carmichael number and more than ⁇ ′ bits.
  • d is an integer and d ⁇ 2.
  • S [1], ..., S [d] and T [1], ..., T [d] are all integers, and S [1] ⁇ T [1], ..., S [d] ⁇ T [ d] is satisfied.
  • the encrypted database server 10 and the client device 20 share the values of d and S [1],..., S [d] in advance, and are stored in advance as encryption parameters 112 and 211 in the respective storage means 12 and 22. Has been.
  • This sharing should be done “in secret” without going through the Internet. Specifically, for example, there are methods such as storing in a storage medium and mailing or bringing it in, or transmitting via a dedicated management line separate from the Internet.
  • the encrypted database server 10 is configured to satisfy i [1], ..., i [d satisfying S [1] ⁇ i [1] ⁇ T [1], ..., S [d] ⁇ i [d] ⁇ T [d]. ],
  • the d-dimensional array Cipher [i [1],..., I [d]] is managed as the encrypted data 111.
  • each element of Cipher [i [1],..., I [d]] is 0 or a null value.
  • FIG. 2 is a flowchart showing the operation of the setup units 101 and 201 shown in FIG.
  • the setup unit 201 outputs U, V, ⁇ , and K expressed by Equation 22 using the key generation algorithm Kg described above (step S301).
  • the setup unit 201 reads d stored in advance as the encryption parameter 211 and randomly selects x [1],..., X [d] ⁇ (Z / ⁇ Z) and h ⁇ (Z / VZ).
  • Step S302 K, x [1],..., X [d], and h are stored in the encryption parameter 211 (Step S303), and V is transmitted to the encrypted database server 10 (Step S304).
  • the setup unit 101 receives this V and stores it in the encryption parameter 112 (step S305).
  • FIG. 3 is a flowchart showing the operation of the data registration units 102 and 202 shown in FIG.
  • Data that is input from the client device 20 via the input / output unit 24 and is transmitted to the encrypted database server 10 and is to be registered is input (step S401).
  • This data is a [i [1] .. i [d]].
  • [A..B] is “a set of integers from A to B”. I [1],..., I [d] satisfy S [1] ⁇ i [1] ⁇ T [1],..., S [d] ⁇ i [d] ⁇ T [d].
  • the data registration unit 202 of the client device 20 reads K, x [1],..., X [d], and h stored in the above-described step S303 from the encryption parameter 211 (step S402). Then, y represented by the following equation 25 is calculated (step S403), and this is applied to the encryption algorithm Enc to calculate a ciphertext C represented by the following equation 26 (step S404). 1],..., I [d] and the data represented by the following Expression 27 is transmitted to the encrypted database server 10 (step S405).
  • the data registration unit 102 receives the data represented by Expression 26 and stores the data as encrypted data 111, that is, as a d-dimensional array Cipher [i [1],..., I [d]] ( Step S406).
  • FIG. 4 is a flowchart showing the operation of the adding units 103 and 203 shown in FIG. Now, for i [1],..., I [d] belonging to the set X shown in Equation 28, the client apparatus 20 sends a [i [1],..., I [d]] to the encrypted database server 10. An addition process for obtaining the total value is to be executed. In that case, the adding unit 203 transmits the set X to the encrypted database server 10 and sends a command for performing the adding process (step S501).
  • the adder 103 receives this, calculates the ciphertext C as the addition result shown in the following equation 29 (step S502), and sends this to the client device 20. (Step S503).
  • the adding unit 203 receives it, and first reads K and h stored in the above-described step S303 from the encryption parameter 211 (step S504). A value is calculated (step S505).
  • FIG. 5 is a flowchart showing the operations of the adding unit 103 and the high-speed adding unit 204 shown in FIG.
  • the e vectors shown in Expression 31 are defined as j [1],..., J [e], and the set X is defined as Expression 32.
  • the client device 20 can perform the calculation in step S505 using the high-speed addition unit 204.
  • the high speed addition unit 204 calculates the value of z using the relationship shown in Equation 34 (step S601). Except for this point, the operation is the same as the operation of the calculation shown in FIG. 4. Therefore, the other steps are denoted by the same reference numerals and description thereof is omitted.
  • the encrypted data addition method adds the encrypted data stored in advance according to the addition command without decrypting the client device 20 that transmits the addition command, and adds the result to the client device 20.
  • an encrypted database system 1 including an encrypted database server 10 that transmits to a client device, a setup unit of the client device generates an encryption key and a random number sequence to be used in a tagged encryption method in advance.
  • the stored integer is stored in the storage unit prepared in advance, and the simultaneously generated integer is transmitted to the encrypted database server, and the setup unit of the encrypted database server stores the integer received from the client device in the storage unit prepared in advance.
  • a tag corresponding to the plaintext is calculated by a polynomial of a random number sequence (FIG. 3, steps S402 to 403), and the data registration unit of the client device converts the plaintext into a ciphertext encrypted by a tagged encryption method using an encryption key.
  • a tag is added and transmitted to the encrypted database server (FIG. 3, steps S404 to S405), and the data registration unit of the encrypted database server stores the plaintext and the tag combination received from the client device in a storage means provided in advance. The data is stored (FIG.
  • step S406 and the adding unit of the client device transmits the data set that is the target of calculating the plaintext sum as an addition command to the encrypted database server (FIG. 4, step S501).
  • the adder of the server applies the product of the ciphertext belonging to the data set received from the client device to each ciphertext. It calculates the sum of the tags to reply to the client device as a result of addition to this (Fig. 4, steps S502 ⁇ 503).
  • the adding unit of the client device decrypts the received addition result using the encryption key (FIG. 4, steps S504 to 505), and again calculates the tag from the plaintext obtained by this decryption using the polynomial of the random number sequence. Then, it is verified whether the addition result is valid or not by checking whether the result of encrypting the plaintext and the tag by the tagged encryption method using the encryption key again matches the addition result (FIG. 4). Steps S505 to S507).
  • each of the above operation steps is programmed so as to be executable by a computer, and these are executed by the processor 11 of the encrypted database server and the processor 21 of the client device that directly execute the respective steps.
  • the program may be recorded on a non-temporary recording medium, such as a DVD, a CD, or a flash memory. In this case, the program is read from the recording medium by a computer and executed.
  • the sum of data encrypted by the user on the client device side can be calculated on the encrypted database server side without decryption.
  • the user can verify whether the calculated and returned sum is valid or not on the client device side.
  • the amount of calculation required for the verification can be made smaller than the amount of calculation required for calculating the sum of data before encryption on the client device side.
  • the client apparatus which transmits an addition command, and the encryption which adds the encrypted data stored beforehand according to the said addition command, without decoding, and transmits the result to the said client apparatus
  • An encrypted database system comprising a database server
  • the client device is A setup unit for generating an encryption key and a random number sequence to be used in a tagged encryption method in advance and storing them in a storage means provided in advance;
  • a tag corresponding to the input plaintext is calculated by a polynomial of the random number sequence, the tag is added to the ciphertext obtained by encrypting the plaintext by a tagged encryption method using the encryption key, and the encryption is performed.
  • a data registration unit to be transmitted and stored in the database server;
  • An encryption database system comprising: an addition unit that transmits a data set to be calculated as a sum of the plaintexts as the addition instruction to the encryption database server.
  • the encrypted database server is A setup unit that receives an integer generated in advance by the client device and stores it in a storage means provided in advance; A data registration unit for storing a set of the plaintext and the tag encrypted by the client device in a storage unit provided in advance; An adder that calculates a product of ciphertexts belonging to the data set received from the client device and a sum of tags corresponding to the ciphertexts and returns the result as an addition result to the client device;
  • the encrypted database system according to Supplementary Note 1.
  • the said addition part of the said client apparatus is, The received addition result is decrypted using the encryption key, the tag is calculated again from the plaintext obtained by the decryption using the polynomial of the random number sequence, and the plaintext and the tag are used again using the encryption key.
  • the encryption according to appendix 2 characterized by having a function of verifying whether the addition result is valid by checking whether the result encrypted by the tagged encryption method matches the addition result Database system.
  • the setup unit of the client device stores a plurality of integers generated in advance in the storage unit in advance, A data registration unit of the client device calculates the ciphertext from a power residue that uses the integer as a base and the plaintext as a base, and another power residue that uses the other integer as a base and the tag as a base.
  • the encrypted database system according to appendix 1 characterized by:
  • the client device is When the input data set is a set composed of a linear sum of a plurality of vectors, the tag is calculated by a polynomial of the random number sequence for each of the plurality of vectors, and this is included in the addition instruction
  • a client device connected to an encrypted database server that adds the encrypted data stored in advance according to the transmitted addition command without decrypting and transmits the result,
  • a tag corresponding to the input plaintext is calculated by a polynomial of the random number sequence, the tag is added to the ciphertext obtained by encrypting the plaintext by a tagged encryption method using the encryption key, and the encryption is performed.
  • a data registration unit to be transmitted and stored in the database server;
  • a client device comprising: an adding unit that transmits a data set to be calculated as a sum of the plaintexts to the encrypted database server as the addition command.
  • the adding unit is The addition result received from the encrypted database server is decrypted using the encryption key, the tag is again calculated from the plaintext obtained by the decryption by the polynomial of the random number sequence, and the plaintext and the tag are again The function of verifying whether or not the addition result is valid by checking whether or not the result of encryption by the tagged encryption method using the encryption key matches the addition result, 6.
  • the client device according to 6.
  • An encrypted database server that adds encrypted data stored in advance according to an addition command received from a client device without decrypting and transmits the result to the client device,
  • a setup unit that receives an integer generated in advance by the client device and stores it in a storage means provided in advance;
  • a data registration unit for storing a set of the plaintext and the tag encrypted by the client device in a storage unit provided in advance;
  • An adder that calculates a product of ciphertexts belonging to the data set received from the client device and a sum of tags corresponding to the ciphertexts and returns the result as an addition result to the client device;
  • An encrypted database server An encrypted database server.
  • the setup unit of the client device From the client device that transmits the addition command and the encrypted database server that adds the encrypted data stored in advance according to the addition command without decrypting and transmits the result to the client device Is an encrypted database system,
  • the setup unit of the client device generates an encryption key and a random number sequence used in the tagged encryption method in advance and stores them in a storage unit provided in advance, and simultaneously generates an integer generated in the encryption database server.
  • the setup unit of the encrypted database server stores the integer received from the client device in a storage unit provided in advance,
  • the data registration unit of the client device calculates a tag corresponding to the input plaintext by a polynomial of the random number sequence,
  • the data registration unit of the client device adds the tag to a ciphertext obtained by encrypting the plaintext using a cipher key using the encryption key, and transmits the ciphertext to the encrypted database server
  • the data registration unit of the encrypted database server stores the plaintext and tag set received from the client device in a storage unit provided in advance,
  • the addition unit of the client device transmits a data set that is a target for calculating the sum of the plaintexts to the encrypted database server as the addition command,
  • the adding unit of the encrypted database server calculates a product of ciphertexts belonging to the data set received from the client device and a sum of tags corresponding to the ciphertexts, and adds the result to the client device as an addition result.
  • the adding unit of the client device decrypts the received addition result by using the encryption key, calculates the tag again from the plaintext obtained by the decryption by the polynomial of the random number sequence, Whether the addition result is valid or not is verified based on whether the result of encrypting the tag by the tagged encryption method using the encryption key again matches the addition result, The method of adding encrypted data according to appendix 9.
  • the present invention can be widely used in a database in which stored data is encrypted.
  • it is a database used in cloud computing, and is suitable for use in processing while ensuring security.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】暗号化されたデータを復号化する事なく加算処理を行い、その加算結果を少ない計算量で検証することを可能とする暗号化データベースシステム等を提供する。 【解決手段】クライアント装置20と暗号化データベースサーバ10とからなる暗号化データベースシステムで、クライアント装置20は、事前に暗号鍵と乱数列を生成して記憶させるセットアップ部201と、入力された平文に対応するタグを乱数列の多項式によって算出し、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加してこれを暗号化データベースサーバに送信して記憶させるデータ登録部202と、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信する加算部203とを有する。

Description

暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
 本発明は暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラムに関し、特に暗号化されたデータを復号化する事なく加算し、その加算結果を少ない計算量で検証することを可能とする暗号化データベースシステム等に関する。
 近年のいわゆるクラウドコンピューティング技術の発展により、ユーザが自身のデータをネットワークを介して接続されたデータベースサーバ(以後単にサーバという)に送信して管理させるという機会が、今後ますます増えるであろうと予想されている。そして、そのサーバに預けたデータを、当該サーバ側で何らかの処理をさせて、その結果をユーザ側のクライアント装置(以後単にクライアントという)で受け取るという機会も、当然多くなると考えられている。
 特にデータベースにおいては、データの四則演算、中でも加算は極めて重要である。膨大な数のデータから合計値や平均値といった統計値を算出する処理を、1台のみのクライアント装置とは比較にならないほど強大な計算能力を持ったサーバ側で行い、そしてその計算結果をどこからでも取り出して利用できるということに、サーバによってユーザのデータを管理することの意義がある。
 ところが、クラウドコンピューティングにおいては、同時にデータのセキュリティの問題も叫ばれている。「ユーザが暗号化してサーバに送信したデータを、サーバ側で加算して、その結果をユーザに返す」という処理においては、ユーザにとってはサーバが100%信頼できるものであるとは限らないので、「データがサーバ側に知られるかもしれない」ことと、「サーバが正しく加算処理を行わず、不正に改変された加算結果を返すかもしれない」ことの2点が、セキュリティにおけるリスクとなりうる。
 そのために、ユーザは自らのクライアントにおいて保有している暗号鍵によって、自身のデータを暗号化してから、サーバに送信する。サーバ側では「暗号化された当該データを復号化する事なく加算処理を行う」ことが可能である必要があり、クライアント側では「返送されてきた加算結果が、正しいか否かを検証する」ことが可能である必要がある。
 これに関連する技術として、以下の各々がある。非特許文献1には「トラップドア置換(trapdoor permutation)」を利用して暗号化されたデータを復号化せずに加算処理を行える技術が記載されている。非特許文献2には、電子投票などにも利用できるという暗号化方式が記載されている。非特許文献3には、選択暗号文攻撃に対して強いという暗号化方式が記載されている。非特許文献4には、後述のべき乗剰余を計算する手法が記載されている。
 また、特許文献1には、秘密情報に対して大小比較を含む演算を行うことができるという分散情報処理システムが記載されている。特許文献2には、ブロック暗号の認証を効率的に行うことができるというメッセージ認証装置が記載されている。特許文献3には、暗号文を含むデータベースを検索することができるという検索可能暗号システムが記載されている。特許文献4には、第三者への秘匿とセンターへの匿名性を確保しつつ、各需要家装置のデータを収集および分析することができるというデータ収集システムが記載されている。
特開2008-020871号公報 国際公開WO2007/0524477号 特開2012-079192号公報 特開2009-290774号公報
PascalPaillier, Public-Key Cryptosystems Based on Composite Degree ResiduosityClasses, EUROCRYPT 1999, pp223-238. Ivan Damgaard, Mads Jurik: A Generalisation, a Simplification and SomeApplications of Paillier's Probabilistic Public-Key System. Public KeyCryptography 2001: 119-136 RonaldCramer and Victor Shoup. "A practical public key cryptosystem provablysecure against adaptive chosen ciphertext attack." in proceedings ofCrypto 1998, LNCS 1462, p. 13 AlfredJ. Menezes, Paul C. van Oorschot and Scott A. Vanstone. Handbook of AppliedCryptography. CRC Press. ISBN: 0-8493-8523-7. October 1996. pp.614.
 ところが、サーバ側で「暗号化された当該データを復号化する事なく加算処理を行う」ことが可能であり、クライアント側で「返送されてきた加算結果が、正しいか否かを検証する」ことが可能であるという性質を両方とも満たす暗号化方式は、今のところ知られていない。たとえば広く使われているAES(Advanced Encryption Standard)暗号やDES(Data Encryption Standard)暗号などのような方式では、暗号化されたデータを復号化することなく加算処理を行うことはできない。
 また、非特許文献1~2や特許文献1には、暗号化されたままのデータを加算することが可能であるという技術が記載されているが、加算結果を検証することは記載されていない。非特許文献3には、暗号化の正当性を検証するという技術が記載されているが、これは暗号文そのものの正当性の検証であって、加算結果の正当性を検証するものではない。残る非特許文献4、および特許文献2~4にも、上記の性質を両方とも満たす技術は記載されていない。
 そして、クライアント側での加算結果の検証に必要な計算量は「加算処理にかかる計算量よりも大幅に少なく済む」ものであることも必要である。もし加算結果の検証に加算処理と同等もしくはそれ以上の計算量が必要なものであるなら、クライアント内部で加算処理すればそれで済むこととなり、加算処理をわざわざサーバに依頼すること自体が(もちろん暗号化も検証も)全く無意味なことになってしまうからである。この点を解決しうる技術も、上記の非特許文献1~4、および特許文献1~4のいずれにも記載されていない。
 本発明の目的は、暗号化されたデータを復号化する事なく加算処理を行うこと、およびその加算結果が正しいか否かを加算処理よりも大幅に少ない計算量で検証することを可能とする暗号化データベースシステム、クライアントおよびサーバ、暗号化データ加算方法およびプログラムを提供することにある。
 上記目的を達成するため、本発明に係る暗号化データベースシステムは、加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムであって、クライアント装置が、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、入力された平文に対応するタグを乱数列の多項式によって算出し、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加してこれを暗号化データベースサーバに送信して記憶させるデータ登録部と、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信する加算部とを有することを特徴とする。
 上記目的を達成するため、本発明に係るクライアント装置は、送信された加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を送信する暗号化データベースサーバと接続されているクライアント装置であって、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、入力された平文に対応するタグを乱数列の多項式によって算出し、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加してこれを暗号化データベースサーバに送信して記憶させるデータ登録部と、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信する加算部とを有することを特徴とする。
 上記目的を達成するため、本発明に係る暗号化データベースサーバは、クライアント装置から受信した加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバであって、事前にクライアント装置で生成された整数を受信して予め備えられた記憶手段に記憶させるセットアップ部と、クライアント装置で暗号化された平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部と、クライアント装置から受信したデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信する加算部とを有することを特徴とする。
 上記目的を達成するため、本発明に係る暗号化データ加算方法は、加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、クライアント装置のセットアップ部が、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を暗号化データベースサーバに送信し、暗号化データベースサーバのセットアップ部が、クライアント装置から受信した整数を予め備えられた記憶手段に記憶させ、クライアント装置のデータ登録部が、入力された平文に対応するタグを乱数列の多項式によって算出し、クライアント装置のデータ登録部が、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加して暗号化データベースサーバに送信し、暗号化データベースサーバのデータ登録部が、クライアント装置から受信した平文およびタグの組を予め備えられた記憶手段に記憶させ、クライアント装置の加算部が、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信し、暗号化データベースサーバの加算部が、クライアント装置から受信したデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信することを特徴とする。
 上記目的を達成するため、本発明に係る暗号化データ加算プログラムは、加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、クライアント装置が備えるプロセッサに、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を暗号化データベースサーバに送信する手順、入力された平文に対応するタグを乱数列の多項式によって算出する手順、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加して暗号化データベースサーバに送信する手順、および平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信する手順を実行させることを特徴とする。
 上記目的を達成するため、本発明に係る他の暗号化データ加算プログラムは、加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、暗号化データベースサーバが備えるプロセッサに、クライアント装置から受信した整数を予め備えられた記憶手段に記憶させる手順、クライアント装置から受信した平文およびタグの組を予め備えられた記憶手段に記憶させる手順、およびクライアント装置から受信した平文の和を算出する対象となるデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信する手順を実行させることを特徴とする。
 本発明は、上記したように、クライアント装置では平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加して暗号化データベースサーバに記憶させ、暗号化データベースサーバでは算出する対象となるデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信するように構成したので、暗号化データベースサーバではデータを復号することなく和を算出することができ、クライアント装置では容易にこの和が正しいか否かを検証する事ができる。
 これによって、暗号化されたデータを復号化する事なく加算処理を行うこと、およびその加算結果が正しいか否かを加算処理よりも大幅に少ない計算量で検証することが可能であるという、優れた特徴を持つ順暗号化データベースシステム、クライアントおよびサーバ、暗号化データ加算方法およびプログラムを提供することができる。
本発明の実施形態に係る暗号化データベースシステム1の構成について示す説明図である。 図1に示したセットアップ部の動作について示すフローチャートである。 図1に示したデータ登録部の動作について示すフローチャートである。 図1に示した加算部の動作について示すフローチャートである。 図1に示した加算部および高速加算部の動作について示すフローチャートである。
(実施形態)
 以下、本発明の実施形態の構成について添付図1に基づいて説明する。
 最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
 本実施形態に係る暗号化データベースシステム1は、加算命令を送信するクライアント装置20と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバ10とからなる暗号化データベースシステムである。クライアント装置20は、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段22に記憶させるセットアップ部201と、入力された平文に対応するタグを乱数列の多項式によって算出し、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加してこれを暗号化データベースサーバに送信して記憶させるデータ登録部202と、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信する加算部203とを有する。
 一方の暗号化データベースサーバ10は、事前にクライアント装置20で生成された整数を受信して予め備えられた記憶手段12に記憶させるセットアップ部101と、クライアント装置で暗号化された平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部102と、クライアント装置から受信したデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信する加算部103とを有する。
 そしてクライアント装置20の加算部203は、受信した加算結果を暗号鍵を利用して復号化し、この復号化によって得られた平文から再び乱数列の多項式によってタグを算出し、この平文とタグとを再び暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する機能を有する。
 以上の構成を備える事により、暗号化データベースシステム1は、暗号化されたデータを復号化する事なく加算処理を行うこと、およびその加算結果が正しいか否かを加算処理よりも大幅に少ない計算量で検証することが可能なものとなる。
 以下、これをより詳細に説明する。
(本実施形態の原理)
 まず、本実施形態の原理から説明する。暗号文Enc(K,a,τ)を以下の数1に示すように定義する。ここで、Kは共通鍵、aは平文(加算対象の数値)、τはタグと呼ばれるデータであり、aの保管場所を管理するものである。Aは任意の定数、NはRSAモジュラス、gは(Z/N^sZ)の元、sは2以上の自然数である。なお、タグ付き暗号方式について詳しくは後述する。
Figure JPOXMLDOC01-appb-M000001
 (a,τ)および(a’,τ’)という平文とこれに対応するタグの組が2セットある場合、数1で定義されたEnc(K,a,τ)には数2で示す性質がある。ここで「・」は乗算を示す。
Figure JPOXMLDOC01-appb-M000002
 この性質を利用すれば、aの暗号文とa’の暗号文とからa+a’の暗号文を算出することができ、これによってaおよびa’を暗号化したままの状態で加算することができる。
 この数1に示した暗号方式では「(1+AN)^a」「g^a」の2要素に平文aが使用されている。この部分を利用して暗号文の正当性を検証することができる(本明細書の数式以外の行では「AのB乗」を「A^B」と表記するものとする)。もしこの暗号文が不正である場合、たとえば「(1+AN)^a」「g^b」などのように、この2要素の部分が異なる値となる。従って、この2要素の部分の一致性を判定すれば、不正な方法で暗号文が作られていない事を検証することができる。
 より具体的には、サーバから受信した暗号文Cを、ユーザが持つ正当な暗号鍵Kによって一度復号化して平文aを得た後、改めて数1で示した暗号化処理をして以下の数3に示す関係が成立すればこの暗号文Cは正当、成立しなければ不正であると判定できる。
Figure JPOXMLDOC01-appb-M000003
 さて、n(n≧2)個の平文とこれに対応するタグの組(a[1],τ[1]),…,(a[n],τ[n])の各々を数1に定義した方式で暗号化した数4に示すn個の暗号文がある。そしてこれらのn個の暗号文から、サーバが数5に示す加算結果の暗号文Cを算出した。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 もしサーバが加算結果の暗号文Cを不正に算出していれば、このCが上述の検証を通過しない可能性が高い。従ってユーザは、自らが持つ正当な暗号鍵Kによって暗号文Cを一度復号化して平文aを得た後、数6に示す関係が成立すればこの暗号文Cは正当、成立しなければ不正であると判定できる。
Figure JPOXMLDOC01-appb-M000006
 ただし、この検証を行うには、ユーザ側でτ[1]…τ[n]を計算する必要がある。この計算は、データ数nに依存した計算量を必要とするので、効率的ではない。そこで、λをgの位数とし、hを(Z/N^sZ)からランダムに選び、さらにxを(Z/λZ)集合からランダムに選んで、以下の数7に示すようにy[i]およびτ[i]を定義する。
Figure JPOXMLDOC01-appb-M000007
 そして和の公式に従ってzを以下の数8に示すように定義すれば、以下の数9が成立するので、数10が成立する。従って、τ[1]…τ[n]の計算を、zおよびhの計算に置き換えることができる。前述の非特許文献4に記載されているleft-to-right binary exponentiationアルゴリズムを利用すれば、べき乗剰余x^(n+1)をlog(n)オーダーの計算量で計算できるので、τ[1]…τ[n]を直接計算するよりも効率的である。
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
 以上ここまで、配列τが1種類のみの変数iでパラメトライズされる場合、即ちτ[i]と表記される場合について説明したが、これは配列τがd個の変数i[1],…,i[d]でパラメトライズされる場合にも容易に拡張できる。即ち、この場合においては配列τは数11に示すように表記できる。そして、e個のベクトルj[1],…,j[e]を、数12に示すように定義する。さらにi=(i[1],…,i[d])とする。集合Xは、数13に示すように定義される。ここで[A..B]は「A以上B以下の整数の集合」である。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
Figure JPOXMLDOC01-appb-M000013
 数14に示す暗号文Cから、数15に示す積Πを計算することで数16に示す和の暗号文を得る事ができたものとする。
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000016
 この、数16で示した暗号文を前述の方法で検証するためには、数17に示す積を計算する必要がある。この計算は、データ数に依存した計算量を必要とするので、効率的ではない。
Figure JPOXMLDOC01-appb-M000017
 そこで、x[1],…,x[d]を(Z/λZ)からランダムに選び、以下の数18に示すようにy[i[1],…,i[d]]およびτ[i[1],…,i[d]]を定義する。
Figure JPOXMLDOC01-appb-M000018
 そしてw[l]およびzを以下の数19のように定義すれば、数20の関係が成立する。従って、数21の関係が成立するので、数17に示す積を計算するかわりにh^zを算出するのみで済むので、加算結果の検証に係る演算を能率化できる。
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
Figure JPOXMLDOC01-appb-M000021
(実施形態の機器構成)
 図1は、本発明の実施形態に係る暗号化データベースシステム1の構成について示す説明図である。暗号化データベースシステム1は、暗号化データベースサーバ10と、クライアント装置20とが相互に接続されて構成される。本願発明の概念を平易に説明するため、図1には暗号化データベースサーバ10およびクライアント装置20を各1台ずつ示したが、基本的には1台の暗号化データベースサーバ10に対して多数台のクライアント装置20が接続されるものである。
 暗号化データベースサーバ10は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化データベースサーバ10は、コンピュータプログラムを実行する主体となるプロセッサ11と、データを記憶する記憶手段12と、他のコンピュータとの間でデータ通信を行う通信手段13とを備える。
 クライアント装置20も、一般的なコンピュータ装置としての構成を備える。即ち、クライアント装置20は、暗号化データベースサーバ10と各々同様の、プロセッサ21と、記憶手段22と、通信手段23とに加えて、ユーザからの入力を受け付け、また演算結果をユーザに提示する入出力手段24を備える。
 暗号化データベースサーバ10のプロセッサ11は、暗号化データ管理プログラムが動作する事により、セットアップ部101、データ登録部102、加算部103、および高速加算部104の各々として機能する。また、暗号化データベースサーバ10の記憶手段12には、暗号化データ111、および暗号パラメータ112といった各データが記憶される。
 クライアント装置20のプロセッサ21も、暗号化データ管理プログラムが動作する事により、セットアップ部201、データ登録部202、加算部203、および高速加算部204の各々として機能する。また、クライアント装置20の記憶手段22には、暗号パラメータ211が記憶される。
 暗号化データベースサーバ10およびクライアント装置20で、セットアップ部101および201、データ登録部102および202、加算部103および203は相互に連動して、後述の処理を行う。またクライアント装置20の高速加算部204は、暗号化データベースサーバ10の加算部103と連動する。
 セットアップ部101および201は、本実施形態の動作の前提となる、暗号化データベースサーバ10およびクライアント装置20の間で共有されているべき情報を生成して、暗号パラメータ112および211として記憶させる。データ登録部102および202は、クライアント装置20ではデータの暗号化を行って暗号化データベースサーバ10に送信し、暗号化データベースサーバ10ではその暗号化されたデータを暗号化データ111として記憶する。
 加算部103および203は、クライアント装置20では暗号化データ111の中で特定の範囲のデータを加算する命令文を生成して暗号化データベースサーバ10に送信し、暗号化データベースサーバ10ではそれに従って加算処理を行う。高速加算部204は、これと同様の加算処理を、加算部103および203より高速に実行するが、計算できる和の種類が制限されている(詳細は後述)。
(一般的なタグ付き暗号方式)
 一般的なタグ付き暗号方式では、「鍵生成アルゴリズムKg」「暗号化アルゴリズムEnc」「復号アルゴリズムDec」という3種類のアルゴリズムを使用する。鍵生成アルゴリズムKgは、整数U,V,λと共通鍵Kを出力する。ここで整数の集合をZと表記し、位数Nの巡回群をZ/NZと表記する。gは(Z/Ns)の元、λはgの位数である。タグτ∈(Z/λZ)は、前述の通り、平文m(加算対象の数値)の保管場所を管理するデータである。
 暗号化アルゴリズムEncは、共通鍵Kと平文m∈(Z/UZ)とタグτ∈(Z/λZ)を入力として受け取り、暗号文C∈(Z/VZ)を出力する。復号アルゴリズムDecは、共通鍵Kと暗号文Cとタグτを入力として受け取り、平文mもしくはCが不正であることを示すエラーメッセージを出力する。
(本実施形態のタグ付き暗号方式)
 これに対して、本実施形態で利用されるタグ付き暗号方式は、sを2以上の自然数、Aを任意の定数と各々定義すると、以下のように示される。
 まず鍵生成アルゴリズムKgは、整数N、Z/(N^2)Zの元gおよびhで位数が同一の値λであるものを選び、以下の数22で定義されるU、V、λ、Kを出力する。
Figure JPOXMLDOC01-appb-M000022
 暗号化アルゴリズムEncは、K=(N,U,V,λ,g)、(Z/UZ)の元m、および整数τを入力として受け取り、以下の数23に示す暗号文Cを出力する。
Figure JPOXMLDOC01-appb-M000023
 復号アルゴリズムDecは、K=(N,U,V,λ,g)とZ/(N^2)Zの元Cと整数τを入力として受け取り、以下の数24に示す演算を行う。
Figure JPOXMLDOC01-appb-M000024
 C=Enc(K,m,τ)が成立すれば、この暗号文は正当なものであるので、平文mを出力する。そうでなければ暗号文が不正であることを示すエラーメッセージを出力する。
 以上で示した本実施形態のタグ付き暗号方式で、κおよびκ’をセキュリティパラメータとした場合、安全性の観点から言えば、κを1024以上、κ’を160以上で各々定義し、かつNをκ/2ビットのランダムに選ばれた素数pおよびqの積とし、λをN^sのカーマイケル数の約数であり、かつκ’ビット以上であるものとすることが望ましい。
(本実施形態の前提)
 まず、dは整数であり、かつd≧2である。S[1],…,S[d]およびT[1],…,T[d]はいずれも整数であり、かつS[1]≦T[1],…,S[d]≦T[d]を満たす。
 暗号化データベースサーバ10およびクライアント装置20は、事前にdおよびS[1],…,S[d]の値を共有しており、各々の記憶手段12および22に暗号パラメータ112および211として予め記憶されている。この共有は、インターネットを介さないで「秘密裏に」行うことが望ましい。具体的には、たとえば記憶媒体に保存して郵送もしくは持参する、あるいはインターネットとは別の管理専用回線で送信するなどのような方法がある。
 暗号化データベースサーバ10は、S[1]≦i[1]≦T[1],…,S[d]≦i[d]≦T[d]を満たすi[1],…,i[d]に対して、暗号化データ111としてd次元配列Cipher[i[1],…,i[d]]を管理している。初期状態ではCipher[i[1],…,i[d]]の各要素はいずれも0もしくはnull値である。
(フローチャート)
 図2は、図1に示したセットアップ部101および201の動作について示すフローチャートである。まずクライアント装置20で、セットアップ部201が、前述の鍵生成アルゴリズムKgによって、数22で示したU、V、λ、Kを出力する(ステップS301)。
 セットアップ部201は次に、暗号パラメータ211として予め記憶されているdを読み込み、x[1],…,x[d]∈(Z/λZ)およびh∈(Z/VZ)をランダムに選んで(ステップS302)、K、x[1],…,x[d]、およびhを暗号パラメータ211の中に記憶させ(ステップS303)、Vを暗号化データベースサーバ10に送信する(ステップS304)。暗号化データベースサーバ10では、このVをセットアップ部101が受信して、暗号パラメータ112の中に記憶させる(ステップS305)。
 図3は、図1に示したデータ登録部102および202の動作について示すフローチャートである。クライアント装置20から入出力手段24を介して入力された、暗号化データベースサーバ10に送信されて登録対象となるデータが入力される(ステップS401)。このデータをa[i[1]..i[d]]とする。ここで前述のように、[A..B]は「A以上B以下の整数の集合」である。またi[1],…,i[d]は、S[1]≦i[1]≦T[1],…,S[d]≦i[d]≦T[d]を満たす。
 この時、クライアント装置20でデータ登録部202が、暗号パラメータ211から前述のステップS303で記憶されたK、x[1],…,x[d]、およびhを読み込む(ステップS402)。そして、以下の数25で示されるyを計算し(ステップS403)、これを暗号化アルゴリズムEncに適用して以下の数26で示される暗号文Cを計算し(ステップS404)、これとi[1],…,i[d]とを組み合わせた以下の数27で示されるデータを暗号化データベースサーバ10に送信する(ステップS405)。
Figure JPOXMLDOC01-appb-M000025
Figure JPOXMLDOC01-appb-M000026
Figure JPOXMLDOC01-appb-M000027
 暗号化データベースサーバ10では、数26で示したデータをデータ登録部102が受信して、暗号化データ111、即ちd次元配列Cipher[i[1],…,i[d]]として記憶させる(ステップS406)。
 図4は、図1に示した加算部103および203の動作について示すフローチャートである。今、数28に示す集合Xに属するi[1],…,i[d]に対して、クライアント装置20が暗号化データベースサーバ10にa[i[1],…,i[d]]の合計値を求める加算処理を実行させようとしている。その場合、加算部203はその集合Xについて暗号化データベースサーバ10に送信し、加算処理を行わせるコマンドを送付する(ステップS501)。
Figure JPOXMLDOC01-appb-M000028
 これを受けた暗号化データベースサーバ10では、加算部103がこれを受信して、以下の数29に示される加算結果の暗号文Cを計算し(ステップS502)、これをクライアント装置20に送付する(ステップS503)。
Figure JPOXMLDOC01-appb-M000029
 これを受けたクライアント装置20では、加算部203がこれを受信して、まず暗号パラメータ211から前述のステップS303で記憶されたKおよびhを読み込み(ステップS504)、以下の数30に示すzの値を計算する(ステップS505)。
Figure JPOXMLDOC01-appb-M000030
 そして、このzを前述の復号アルゴリズムDec(K,C,h^z)に適用し、加算結果の暗号文Cが正当であるか否かを判断する(ステップS506)。Cが正当なものであれば、a=Dec(K,C,h^z)として得られるaが、求める加算結果であるので、これを入出力手段24を介してユーザに提示して(ステップS507)処理を終了する。Cが正当なものでなければ、エラーメッセージを入出力手段24を介してユーザに提示して(ステップS508)処理を終了する。
 図5は、図1に示した加算部103および高速加算部204の動作について示すフローチャートである。数31に示すe個のベクトルをj[1],…,j[e]と定義し、集合Xを数32のように定義する。
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000032
 この時、集合Xが数33に示す関係を満たしている場合に、クライアント装置20では高速加算部204を利用して上記のステップS505の演算を行うことができる。具体的には、高速加算部204は数34に示す関係を利用して、zの値を計算する(ステップS601)。この点以外は、図4に示した演算の動作と同一であるので、これ以外のステップについては同一の参照番号を付けて説明を省略する。
Figure JPOXMLDOC01-appb-M000033
Figure JPOXMLDOC01-appb-M000034
(実施形態の全体的な動作)
 次に、上記の実施形態の全体的な動作について説明する。
 本実施形態に係る暗号化データ加算方法は、加算命令を送信するクライアント装置20と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバ10とからなる暗号化データベースシステム1にあって、クライアント装置のセットアップ部が、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を暗号化データベースサーバに送信し、暗号化データベースサーバのセットアップ部が、クライアント装置から受信した整数を予め備えられた記憶手段に記憶させ(図2・ステップS301~304)、クライアント装置のデータ登録部が、入力された平文に対応するタグを乱数列の多項式によって算出し(図3・ステップS402~403)、クライアント装置のデータ登録部が、平文を暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文にタグを付加して暗号化データベースサーバに送信し(図3・ステップS404~405)、暗号化データベースサーバのデータ登録部が、クライアント装置から受信した平文およびタグの組を予め備えられた記憶手段に記憶させ(図3・ステップS406)、クライアント装置の加算部が、平文の和を算出させる対象となるデータ集合を加算命令として暗号化データベースサーバに送信し(図4・ステップS501)、暗号化データベースサーバの加算部が、クライアント装置から受信したデータ集合に属する暗号文の積と各暗号文に対応するタグの和とを算出してこれを加算結果としてクライアント装置に返信する(図4・ステップS502~503)。
 そしてクライアント装置の加算部が、受信した加算結果を暗号鍵を利用して復号化し(図4・ステップS504~505)、この復号化によって得られた平文から再び乱数列の多項式によってタグを算出し、この平文とタグとを再び暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する(図4・ステップS505~507)。
 ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する暗号化データベースサーバのプロセッサ11、およびクライアント装置のプロセッサ21に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
 この動作により、本実施形態は以下のような効果を奏する。
 本実施形態によれば、ユーザがクライアント装置の側で暗号化したデータの和を、復号することなく暗号化データベースサーバの側で算出することが可能となる。かつ、算出されて返送されてきた和が、正当なものであるか否かをユーザがクライアント装置の側で検証する事ができる。その検証に必要な計算量は、クライアント装置の側で暗号化する前のデータの和を算出するために必要な計算量よりも少なくすることができる。
 これによって、ユーザはデータのセキュリティを確保しつつ、クラウドコンピューティングによるデータ管理を利用し、強大な計算能力とデータをどこからでも利用できるというメリットを享受する事ができる。
 これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
 上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) 加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムであって、
 前記クライアント装置が、
 事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、
 入力された平文に対応するタグを前記乱数列の多項式によって算出し、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加してこれを前記暗号化データベースサーバに送信して記憶させるデータ登録部と、
 前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する加算部と
を有することを特徴とする暗号化データベースシステム。
(付記2) 前記暗号化データベースサーバが、
 事前に前記クライアント装置で生成された整数を受信して予め備えられた記憶手段に記憶させるセットアップ部と、
 前記クライアント装置で暗号化された前記平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部と、
 前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する加算部と
を有することを特徴とする、付記1に記載の暗号化データベースシステム。
(付記3) 前記クライアント装置の前記加算部が、
 受信した前記加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する機能を有することを特徴とする、付記2に記載の暗号化データベースシステム。
(付記4)
 前記クライアント装置のセットアップ部が、事前に生成した複数の整数を前記記憶手段に予め記憶させ、
 前記クライアント装置のデータ登録部が、前記整数を底として前記平文を冪とする冪乗剰余と、他の前記整数を底として前記タグを冪とする冪乗剰余とから前記暗号文を算出することを特徴とする、付記1に記載の暗号化データベースシステム。
(付記5)
 前記クライアント装置が、
 入力された前記データ集合が複数のベクトルの線形和からなる集合である場合に、前記複数のベクトルの各々に対して前記乱数列の多項式によって前記タグを算出してこれを前記加算命令に含めて前記暗号化データベースサーバに送信する高速加算部を有することを特徴とする、付記1に記載の暗号化データベースシステム。
(付記6)
 送信された加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を送信する暗号化データベースサーバと接続されているクライアント装置であって、
 事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、
 入力された平文に対応するタグを前記乱数列の多項式によって算出し、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加してこれを前記暗号化データベースサーバに送信して記憶させるデータ登録部と、
 前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する加算部と
を有することを特徴とするクライアント装置。
(付記7)
 前記加算部が、
 前記暗号化データベースサーバから受信した加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する機能を有することを特徴とする、付記6に記載のクライアント装置。
(付記8)
 クライアント装置から受信した加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバであって、
 事前に前記クライアント装置で生成された整数を受信して予め備えられた記憶手段に記憶させるセットアップ部と、
 前記クライアント装置で暗号化された前記平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部と、
 前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する加算部と
を有することを特徴とする暗号化データベースサーバ。
(付記9)
 加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
 前記クライアント装置のセットアップ部が、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を前記暗号化データベースサーバに送信し、
 前記暗号化データベースサーバのセットアップ部が、前記クライアント装置から受信した前記整数を予め備えられた記憶手段に記憶させ、
 前記クライアント装置のデータ登録部が、入力された平文に対応するタグを前記乱数列の多項式によって算出し、
 前記クライアント装置の前記データ登録部が、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加して前記暗号化データベースサーバに送信し、
 前記暗号化データベースサーバのデータ登録部が、前記クライアント装置から受信した前記平文およびタグの組を予め備えられた記憶手段に記憶させ、
 前記クライアント装置の加算部が、前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信し、
 前記暗号化データベースサーバの加算部が、前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する
ことを特徴とする暗号化データ加算方法。
(付記10)
 前記クライアント装置の前記加算部が、受信した前記加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する
ことを特徴とする、付記9に記載の暗号化データ加算方法。
(付記11)
 加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
 前記クライアント装置が備えるプロセッサに、
 事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を前記暗号化データベースサーバに送信する手順、
 入力された平文に対応するタグを前記乱数列の多項式によって算出する手順、
 前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加して前記暗号化データベースサーバに送信する手順、
 および前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する手順
を実行させることを特徴とする暗号化データ加算プログラム。
(付記12)
 加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
 前記暗号化データベースサーバが備えるプロセッサに、
 前記クライアント装置から受信した前記整数を予め備えられた記憶手段に記憶させる手順、
 前記クライアント装置から受信した前記平文およびタグの組を予め備えられた記憶手段に記憶させる手順、
 および前記クライアント装置から受信した前記平文の和を算出する対象となるデータ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する手順
を実行させることを特徴とする暗号化データ加算プログラム。
 この出願は2012年8月23日に出願された日本出願特願2012-184578を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、収容されるデータが暗号化されているデータベースにおいて、幅広く利用する事ができる。特にクラウドコンピューティングにおいて利用されるデータベースで、セキュリティを確保しつつ処理を行うという用途に適している。
  1 暗号化データベースシステム
  10 暗号化データベースサーバ
  11、21 プロセッサ
  12、22 記憶手段
  13、23 通信手段
  24 入出力手段
  20 クライアント装置
  101、201 セットアップ部
  102、202 データ登録部
  103、203 加算部
  111 暗号化データ
  112、221 暗号パラメータ
  204 高速加算部

Claims (10)

  1.  加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムであって、
     前記クライアント装置が、
     事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、
     入力された平文に対応するタグを前記乱数列の多項式によって算出し、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加してこれを前記暗号化データベースサーバに送信して記憶させるデータ登録部と、
     前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する加算部と
    を有することを特徴とする暗号化データベースシステム。
  2.  前記暗号化データベースサーバが、
     事前に前記クライアント装置で生成された整数を受信して予め備えられた記憶手段に記憶させるセットアップ部と、
     前記クライアント装置で暗号化された前記平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部と、
     前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する加算部と
    を有することを特徴とする、請求項1に記載の暗号化データベースシステム。
  3.  前記クライアント装置の前記加算部が、
     受信した前記加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する機能を有することを特徴とする、請求項2に記載の暗号化データベースシステム。
  4.  送信された加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を送信する暗号化データベースサーバと接続されているクライアント装置であって、
     事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させるセットアップ部と、
     入力された平文に対応するタグを前記乱数列の多項式によって算出し、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加してこれを前記暗号化データベースサーバに送信して記憶させるデータ登録部と、
     前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する加算部と
    を有することを特徴とするクライアント装置。
  5.  前記加算部が、
     前記暗号化データベースサーバから受信した加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する機能を有することを特徴とする、請求項4に記載のクライアント装置。
  6.  クライアント装置から受信した加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバであって、
     事前に前記クライアント装置で生成された整数を受信して予め備えられた記憶手段に記憶させるセットアップ部と、
     前記クライアント装置で暗号化された前記平文およびタグの組を予め備えられた記憶手段に記憶させるデータ登録部と、
     前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する加算部と
    を有することを特徴とする暗号化データベースサーバ。
  7.  加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
     前記クライアント装置のセットアップ部が、事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を前記暗号化データベースサーバに送信し、
     前記暗号化データベースサーバのセットアップ部が、前記クライアント装置から受信した前記整数を予め備えられた記憶手段に記憶させ、
     前記クライアント装置のデータ登録部が、入力された平文に対応するタグを前記乱数列の多項式によって算出し、
     前記クライアント装置の前記データ登録部が、前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加して前記暗号化データベースサーバに送信し、
     前記暗号化データベースサーバのデータ登録部が、前記クライアント装置から受信した前記平文およびタグの組を予め備えられた記憶手段に記憶させ、
     前記クライアント装置の加算部が、前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信し、
     前記暗号化データベースサーバの加算部が、前記クライアント装置から受信した前記データ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する
    ことを特徴とする暗号化データ加算方法。
  8.  前記クライアント装置の前記加算部が、受信した前記加算結果を前記暗号鍵を利用して復号化し、この復号化によって得られた平文から再び前記乱数列の多項式によって前記タグを算出し、この平文とタグとを再び前記暗号鍵を利用してタグ付き暗号方式によって暗号化した結果が前記加算結果と一致するか否かによって当該加算結果が正当であるか否かを検証する
    ことを特徴とする、請求項7に記載の暗号化データ加算方法。
  9.  加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
     前記クライアント装置が備えるプロセッサに、
     事前にタグ付き暗号方式に使用される暗号鍵と乱数列を生成して予め備えられた記憶手段に記憶させると共に、同時に生成された整数を前記暗号化データベースサーバに送信する手順、
     入力された平文に対応するタグを前記乱数列の多項式によって算出する手順、
     前記平文を前記暗号鍵を利用してタグ付き暗号方式によって暗号化した暗号文に前記タグを付加して前記暗号化データベースサーバに送信する手順、
     および前記平文の和を算出させる対象となるデータ集合を前記加算命令として前記暗号化データベースサーバに送信する手順
    を実行させることを特徴とする暗号化データ加算プログラム。
  10.  加算命令を送信するクライアント装置と、当該加算命令に応じて予め記憶されている暗号化済みデータを復号化することなく加算してその結果を当該クライアント装置に対して送信する暗号化データベースサーバとからなる暗号化データベースシステムにあって、
     前記暗号化データベースサーバが備えるプロセッサに、
     前記クライアント装置から受信した前記整数を予め備えられた記憶手段に記憶させる手順、
     前記クライアント装置から受信した前記平文およびタグの組を予め備えられた記憶手段に記憶させる手順、
     および前記クライアント装置から受信した前記平文の和を算出する対象となるデータ集合に属する暗号文の積と前記各暗号文に対応するタグの和とを算出してこれを加算結果として前記クライアント装置に返信する手順
    を実行させることを特徴とする暗号化データ加算プログラム。
PCT/JP2013/072433 2012-08-23 2013-08-22 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム WO2014030706A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012184578 2012-08-23
JP2012-184578 2012-08-23

Publications (1)

Publication Number Publication Date
WO2014030706A1 true WO2014030706A1 (ja) 2014-02-27

Family

ID=50150010

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/072433 WO2014030706A1 (ja) 2012-08-23 2013-08-22 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム

Country Status (1)

Country Link
WO (1) WO2014030706A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106165340A (zh) * 2014-04-28 2016-11-23 加泽郎 加密方法、程序和***
WO2019037422A1 (zh) * 2017-08-22 2019-02-28 深圳市文鼎创数据科技有限公司 密钥及密钥句柄的生成方法、***及智能密钥安全设备
WO2019010430A3 (en) * 2017-07-06 2019-02-28 Robert Bosch Gmbh METHOD AND SYSTEM FOR PUBLICITY BY SOCIAL MEDIA PRESERVING CONFIDENTIALITY
CN110378128A (zh) * 2019-06-17 2019-10-25 深圳壹账通智能科技有限公司 数据加密方法、装置及终端设备
CN111984997A (zh) * 2020-08-19 2020-11-24 北京人大金仓信息技术股份有限公司 数据库加密算法是否被破坏的确定方法、装置及电子设备
US11213773B2 (en) 2017-03-06 2022-01-04 Cummins Filtration Ip, Inc. Genuine filter recognition with filter monitoring system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227563A (ja) * 2005-01-24 2006-08-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算方法及びシステム、並びにプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227563A (ja) * 2005-01-24 2006-08-31 Nippon Telegr & Teleph Corp <Ntt> 秘密計算方法及びシステム、並びにプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUN SAKUMA ET AL.: "Utilization and privacy preservation of personal information with cloud storage", JOHO SHORI, vol. 52, no. 6, 15 May 2011 (2011-05-15), pages 706 - 715 *
YOSHIKI AOKI ET AL.: "Dokodemo Himitsu Keisan Framework Fairy Ring", SYMPOSIUM ON MULTIMEDIA, DISTRIBUTED, COOPERATIVE AND MOBILE SYSTEMS (DICOM02012) RONBUNSHU, 27 June 2012 (2012-06-27), pages 1618 - 1627 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106165340A (zh) * 2014-04-28 2016-11-23 加泽郎 加密方法、程序和***
US11213773B2 (en) 2017-03-06 2022-01-04 Cummins Filtration Ip, Inc. Genuine filter recognition with filter monitoring system
WO2019010430A3 (en) * 2017-07-06 2019-02-28 Robert Bosch Gmbh METHOD AND SYSTEM FOR PUBLICITY BY SOCIAL MEDIA PRESERVING CONFIDENTIALITY
US11082234B2 (en) 2017-07-06 2021-08-03 Robert Bosch Gmbh Method and system for privacy-preserving social media advertising
WO2019037422A1 (zh) * 2017-08-22 2019-02-28 深圳市文鼎创数据科技有限公司 密钥及密钥句柄的生成方法、***及智能密钥安全设备
CN110378128A (zh) * 2019-06-17 2019-10-25 深圳壹账通智能科技有限公司 数据加密方法、装置及终端设备
CN111984997A (zh) * 2020-08-19 2020-11-24 北京人大金仓信息技术股份有限公司 数据库加密算法是否被破坏的确定方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US11882218B2 (en) Matching system, method, apparatus, and program
US9571268B2 (en) Method and system for homomorphicly randomizing an input
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
EP2228942B1 (en) Securing communications sent by a first user to a second user
JP6459658B2 (ja) 暗号処理装置、暗号処理方法、および暗号処理プログラム
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP2016114692A (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP2015184594A (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
GB2603495A (en) Generating shared keys
US10484182B2 (en) Encrypted text verification system, method, and recording medium
Fatahi et al. High-efficient arbitrated quantum signature scheme based on cluster states
CN112491529A (zh) 用于不可信服务器环境中数据文件加密及完整性验证方法及其***
CN114142996B (zh) 一种基于sm9密码算法的可搜索加密方法
WO2016199507A1 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム
CN115336224A (zh) 自适应抗攻击分布式对称加密
CN116346336B (zh) 一种基于多层密钥生成中心的密钥分发方法及相关***
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
CN116170142A (zh) 分布式协同解密方法、设备和存储介质
JP2013148822A (ja) 検索可能暗号システム、検索装置、計算装置、及びプログラム
JP2004246350A (ja) 暗号化装置および復号化装置、並びにこれらを備えた暗号システム、暗号化方法および復号化方法
CN115442102B (zh) 一种基于sm9算法的等式测试方法
CN114070550B (zh) 一种信息处理方法、装置、设备和存储介质

Legal Events

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

Ref document number: 13831203

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13831203

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP