WO2017170780A1 - Cryptogram collation system, node device, cryptogram collation method, and program - Google Patents
Cryptogram collation system, node device, cryptogram collation method, and program Download PDFInfo
- Publication number
- WO2017170780A1 WO2017170780A1 PCT/JP2017/013085 JP2017013085W WO2017170780A1 WO 2017170780 A1 WO2017170780 A1 WO 2017170780A1 JP 2017013085 W JP2017013085 W JP 2017013085W WO 2017170780 A1 WO2017170780 A1 WO 2017170780A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- authentication
- verification
- registration
- ciphertext
- polynomial
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Definitions
- the present invention is based on the priority claim of Japanese Patent Application No. 2016-072770 (filed on Mar. 31, 2016), the entire contents of which are incorporated herein by reference. Shall.
- the present invention relates to encryption technology, and in particular, to a ciphertext verification system, a node device, a ciphertext verification method, and a program.
- cloud As cloud computing (cloud) becomes widespread, cloud services that manage client data using cloud-side computer resources that are connected to a communication network by clients are becoming widespread. For example, since the service manages highly confidential data of the client, it is necessary to ensure that the data handled in the service is secure on the cloud side.
- biometric authentication technology that realizes authentication with higher safety using information (biometric information) based on characteristics of a biometric feature such as fingerprints or veins has attracted attention.
- a client creates a template based on biometric information extracted from a biometric subject to registration, and the created template is transmitted to the server and stored in the server.
- the server performs matching processing using biometric information extracted by the client from the biometric subject to authentication and a template stored in the server (a template created by the client and transmitted to the server).
- a plurality of pieces of biological information extracted from the same living body do not always match completely. However, when a distance is measured using a certain distance function, the distance between the plurality of pieces of biological information extracted from the same living body is different. It is known that the distance is shorter than the distance between a plurality of pieces of biometric information extracted from each.
- the biometric authentication technology uses the above-described properties to collate a template generated based on a registration target with biometric information created based on the authentication target. That is, in biometric authentication technology, The authentication target is accepted when the biological information extracted from the biometric target that is the registration target and the biometric information extracted from the biometric target that is the authentication target are similar (or coincident). The authentication target is not accepted when the biometric information extracted from the biometric target to be registered and the biometric information extracted from the biometric target to be authenticated are not similar (or matched).
- the similarity of biometric information is determined by distance as described above. That is, -It will be accepted if the distance between the biological information extracted from the living body to be registered and the biological information extracted from the living body to be authenticated is equal to or less than a predetermined threshold. -If the distance between the biometric information extracted from the biometric target to be registered and the biometric information extracted from the biometric target to be authenticated is larger than a predetermined threshold value, it is not accepted.
- the characteristics of living bodies such as fingerprints and veins are data that does not change throughout life. Since the damage caused when the biometric information is leaked outside the verification system is enormous, the biometric information is one of information that requires confidentiality. Therefore, even if the template leaks to the outside from a collation system that collates a template generated based on biometric information extracted from a biometric subject to registration and biometric information created based on an authentication target, It is desirable to satisfy the property that biological information does not leak outside.
- biometric authentication technology as with other authentication technologies, it is necessary to prevent a biometric body different from the biometric registered biometric information from impersonating the biometric subject of registration (ie, “spoofing”). For example, it can be said that an authentication technique that succeeds in authentication by transmitting a specific value to the verification system is not sufficiently resistant to impersonation.
- the authentication technology there is a risk that the communication content at the time of authentication is wiretapped (intercepted) as well as the risk of the template leaking.
- Non-Patent Document 2 discloses a biometric authentication method that enables authentication while keeping biometric information extracted from a biometric subject to be registered and biometric information extracted from a biometric subject being authenticated. It is disclosed.
- Non-Patent Document 1 discloses a homomorphic encryption method having homomorphism regarding addition and multiplication.
- the homomorphic cryptosystem is a public key cryptosystem having a special property called homomorphism or homomorphism.
- Public key cryptography is An algorithm (key generation algorithm) for generating a public key (referred to as “encryption key”) and a secret key (referred to as “decryption key”); -An algorithm that encrypts the message using the generated encryption key (encryption algorithm), and -An algorithm for decrypting ciphertext using the generated decryption key (decryption algorithm) including.
- the key generation algorithm (denoted as “Gen”) is an algorithm for calculating the encryption key pk and the decryption key sk based on the security parameter ⁇ .
- the security parameter ⁇ is a measure representing the security of encryption, and is a parameter that determines the length of the encryption key and the decryption key.
- Enc is an algorithm for calculating a ciphertext c in which the message x is encrypted using the encryption key pk based on the encryption key pk and the message x.
- the decryption algorithm (denoted as “Dec”) is an algorithm for calculating a decryption result X obtained by decrypting the ciphertext c using the decryption key sk based on the decryption key sk and the ciphertext c. Dec (sk, c) ⁇ X (Expression 3) It is expressed.
- a (B) ⁇ C (Formula 4) Means that if B is input to algorithm A, C is output.
- the public key cryptosystem has homomorphism when the condition shown in the following formula 5 is satisfied.
- Enc (pk, x1 # x2) Enc (pk, x1) @Enc (pk, x2) (Formula 5)
- # and @ each represent a binary operator.
- X1 and x2 each represent a message.
- Enc (pk, n # x) Enc (pk, x) @n (Expression 6)
- # and @ each represent a binary operator.
- X and n each represent a message.
- Non-Patent Document 1 A homomorphic encryption method having homomorphism for addition and multiplication described in Non-Patent Document 1 will be described.
- This scheme is a cipher based on the difficulty of the ring-LWE problem that treats polynomials as messages.
- a feature of cryptography based on the difficulty of the ring-LWE problem is that the computation can be performed at high speed.
- the key generation algorithm mainly receives four parameters N, q, t, and ⁇ as inputs.
- the element of R t is an (N ⁇ 1) th order polynomial in which each coefficient is an element of the remainder group Z / tZ).
- An N-dimensional integer vector sampled by an N-dimensional discrete Gaussian distribution is a vector having, as components, integer values obtained by rounding real values according to a Gaussian distribution (also called normal distribution) having a standard deviation of ⁇ .
- the probability density function of an N-dimensional discrete Gaussian distribution with a standard deviation of ⁇ is
- Polynomial addition and multiplication are defined by modulo (x N + 1, q).
- the message x (x ⁇ R t ) is an N ⁇ 1 order polynomial in which each coefficient is smaller than t.
- N ⁇ 1 order polynomials u, g, and f are generated according to an N-dimensional discrete Gaussian distribution ⁇ having a standard deviation of ⁇ .
- c 2 0.
- D is the remainder of dividing C by q. If D is greater than or equal to q / 2, D is changed to Dq. This is a remainder operation to [ ⁇ q / 2, q / 2) modulo D of q.
- This public key cryptosystem has homomorphism in addition and information.
- the ciphertexts are respectively Enc (pk, x) ⁇ (c 0 , c 1 ) (Equation 16-1) Enc (pk, y) ⁇ (d 0 , d 1 ) (Equation 16-2) And
- This public key cryptosystem handles polynomials as messages.
- a vector can be regarded as a polynomial by regarding each component as a coefficient of the polynomial. Therefore, the vector can be encrypted using this public key cryptosystem.
- Described below is a method of calculating a ciphertext of an inner product while encrypting two vectors by devising a method of converting vectors into polynomials and further using additive homomorphism and multiplicative homomorphism.
- the polynomials f A and f B are obtained according to the equations 20 and 21, respectively.
- Equation 20 and Equation 21 are called “ascending polynomialization” and “descending polynomialization”, respectively.
- the product of the two polynomials f A and f B is calculated as follows:
- the number of different components among the corresponding components is referred to as a Hamming distance d H (A, B).
- the number of i satisfying a i ⁇ b i is the Hamming distance.
- the Hamming distance of two vectors can be calculated using the inner product.
- the following equation 24 holds for the Hamming distance.
- the Euclidean distance between the two vectors can be calculated using the inner product as shown in Equation 26 below.
- the biometric authentication method described in Non-Patent Document 2 is configured using homomorphic encryption methods (Gen, Enc, Dec) having homomorphism for addition and multiplication described in Non-Patent Document 1 above.
- Biometric information A (a 0 ,..., A L ⁇ 1 ) represented in the form of a vector in which each component is 0 or 1
- the client converts the vector A into an ascending polynomial according to the above equation 20 to be f A, and the ciphertext Enc (pk, f A ) encrypted using the encryption key pk as a template
- Biological information B (b 0 ,..., B L ⁇ 1 ) represented in the form of a vector in which each component is 0 or 1
- the client the vector B, and f B and descending polynomial in accordance with Equation 21 above, the ciphertext Enc (pk, f B) encrypted using the encryption key pk to the server Send.
- This is sent to an entity having a decryption key different from that of the server and the client, so that the entity decrypts the ciphertext.
- a constant term of a polynomial which is a message obtained by decoding with the entity, is a Hamming distance d H (A, B) between two vectors A and B.
- the authentication result can be determined depending on whether the obtained Hamming distance is longer or shorter than a predetermined threshold.
- non-patent document 3 can also perform authentication based on the length of the Euclidean distance by using the method of non-patent document 2 and the above equation 26 (distance between two vectors).
- Non-Patent Document 2 does not have resistance to spoofing attacks. For example, when the communication content is wiretapped and accepted, it is accepted again by retransmitting the data transmitted to the verification system.
- the Enc (pk, f B) eavesdropping the attacker Enc (pk, f B) and the the resending it, so that the attacker is accepted.
- Non-Patent Document 4 In the methods of Non-Patent Document 2 and Non-Patent Document 3, an entity having a decryption key calculates a distance between biological information.
- Non-Patent Document 4 it is pointed out that restoration of registered biometric information by the entity cannot be prevented in a situation where an entity that can obtain the distance between the biometric information can perform an active attack. .
- Non-Patent Document 4 describes a method of calculating an authentication result for all entities including the entity having a decryption key while keeping the distance between biometric information secret.
- Non-Patent Document 2 Since the biometric authentication method described in Non-Patent Document 2 is configured using encryption based on the difficulty of the ring-LWE problem, the computation at the time of authentication is light.
- the biometric authentication method described in Non-Patent Document 2 is not sufficiently resistant to impersonation.
- the object of the present invention was devised in view of the above-mentioned problems, and one of the objects is to perform ciphertext verification that makes it possible to increase the speed of computation and to prevent leakage of biometric information and spoofing attacks.
- a system, a node, a method, and a program therefor are provided.
- the ciphertext matching system includes a registration requesting device, a verification assisting device, an authentication requesting device, and a verification device.
- the verification device calculates a pair of encryption keys and decryption keys of a homomorphic encryption method capable of performing a polynomial operation, and discloses the encryption key.
- the registration requesting apparatus polynomializes registration information that is a numerical vector, and encrypts the registration information that has been polynomialized using the encryption key.
- the verification assisting device When receiving the authentication request from the authentication requesting device, the verification assisting device randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial is A challenge consisting of a ciphertext encrypted using an encryption key is sent to the authentication requesting device.
- the authentication requesting device polynomializes authentication information that is a numerical vector, and based on the authentication information that is polynomialized and the challenge from the verification auxiliary device, the authentication that is polynomialized using the encryption key
- a ciphertext of a product of information and the polynomial used to generate the challenge is calculated, and the ciphertext of the product of the authentication information polynomialized and the polynomial used to generate the challenge is the response As shown in FIG.
- the verification assisting device upon receiving a response from the authentication requesting device, based on the response, a challenge assist consisting of the one coefficient and its order, and the registration information encrypted by the registration requesting device, A ciphertext of the distance between the registration information and the authentication information is calculated using an encryption key, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device.
- the verification device decrypts the encrypted text of the distance between the registration information and the authentication information received from the verification assisting device using the decryption key to calculate the distance, and the calculated distance or the distance And a comparison result with a predetermined threshold value are output as a comparison result.
- An apparatus is a verification assisting apparatus that acquires the encryption key published by a verification apparatus that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation, When an authentication request is received from the authentication requesting device, one coefficient and its order are selected at random, a polynomial with coefficients other than the order coefficient set to 0 is generated, and the polynomial is encrypted using the encryption key.
- a challenge generator configured to send a challenge composed of encrypted ciphertext to the authentication requesting device, and polynomialize authentication information that is a numerical vector, and based on the challenge, using the encryption key, the authentication information that is polynomialized and A ciphertext of a product of the polynomial used to generate the challenge is calculated, and the ciphertext of the product of the polynomialized authentication information and the polynomial used to generate the challenge is Registration information that is received as a response from the authentication requesting device, received as a response, challenge assistance consisting of the one coefficient and its order, and stored in a storage device encrypted by the registration requesting device A ciphertext of the distance between the registration information and the authentication information is calculated using the encryption key, and the ciphertext of the distance between the registration information and the authentication information is sent to a verification device.
- the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance, and the calculated distance or the distance and a predetermined threshold value are calculated.
- the comparison result is output as a matching result.
- An apparatus is an authentication request for obtaining a pair of encryption keys and decryption keys of a homomorphic encryption method capable of polynomial operations and obtaining the encryption key from a verification device that discloses the encryption key
- An authentication information extraction unit that polynomializes authentication information that is a numerical vector, and an authentication request generation unit that generates an authentication request to be transmitted to the verification auxiliary device. Further, upon receiving the authentication request, one coefficient and its order are selected at random, a polynomial in which coefficients other than the order coefficient are set to 0 is generated, and the polynomial is encrypted using the encryption key.
- the apparatus further includes a response generation unit that sends the ciphertext as a response to the verification assisting device.
- the verification assisting device uses the encryption key based on the response, challenge assistance consisting of the one coefficient and its order, and polynomialized registration information encrypted by the registration requesting device.
- the ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device.
- an apparatus When receiving an authentication request from an authentication requesting device, an apparatus according to an aspect of the present invention randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial Is sent to the authentication requesting device and a response is received from the authentication requesting device. And a ciphertext of the distance between the registration information and the authentication information using the encryption key based on the registration information encrypted by the registration request device and stored in the storage device.
- a verification device connected to an auxiliary device, wherein the key generation unit calculates a pair of the encryption key and the decryption key of a homomorphic encryption method capable of performing a polynomial operation, and discloses the encryption key;
- the key generation unit calculates a pair of the encryption key and the decryption key of a homomorphic encryption method capable of performing a polynomial operation, and discloses the encryption key;
- the ciphertext of the distance between the registration information and the authentication information is received from a device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance
- a collation result generation unit that outputs the calculated distance or a comparison result between the distance and a predetermined threshold value as a collation result.
- the method according to one aspect of the present invention is a ciphertext processing method by at least one computer, (A) calculating a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation, and publishing the encryption key; (B) When registering registration information, Registration information that is a numeric vector is polynomialized, The registration information that has been polynomialized is encrypted using the encryption key, (C) In the verification assistance process, When receiving an authentication request, one coefficient and its order are selected at random, Generating a polynomial in which the coefficients other than the coefficient of the order are 0; Sending a challenge consisting of ciphertext encrypted using the encryption key to the request source of the authentication request, the polynomial, (D) In the authentication request source, The authentication information, which is a numeric vector, is polynomialized, Based on the authentication information that has been polynomialized and the challenge from the verification auxiliary process, the encryption of the product of the authentication information that has been polynom
- a program is connected to a verification device that calculates a pair of encryption keys and decryption keys of a homomorphic encryption method capable of polynomial operations and discloses the encryption key, and is connected to an authentication request device.
- the computer that constitutes the verification assisting device, Upon receiving an authentication request from the authentication requesting device, one coefficient and its order are randomly selected, Generating a polynomial in which the coefficients other than the coefficient of the order are 0; A process of sending a challenge consisting of a ciphertext obtained by encrypting the polynomial using the encryption key to the authentication requesting device;
- the authentication information which is a numerical vector, is polynomialized, and based on the challenge, a ciphertext of a product of the authentication information polynomialized and the polynomial used to generate the challenge is calculated using the encryption key, and the polynomial Processing to receive a response from the authentication requesting device that outputs the ciphertext of the product of the authentication information
- the program obtains an encryption key published by a verification device that calculates a pair of an encryption key and a decryption key of a homomorphic encryption method capable of a polynomial operation, Upon receipt of the authentication request, one coefficient and its order are selected at random, a polynomial in which a coefficient other than the coefficient of the order is 0 is generated, and the polynomial is encrypted using the encryption key. To the authentication requesting device, the response received from the authentication requesting device, challenge assistance consisting of the one coefficient and its order, and the polynomialized registration information encrypted by the registration requesting device.
- the ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is connected to a verification auxiliary device that sends the ciphertext to the verification device
- the authentication information that is a numerical vector is polynomialized, and the authentication information that is polynomialized using the encryption key based on the authentication information that is polynomialized and the challenge received from the verification auxiliary device, and generation of the challenge
- the program When receiving the authentication request from the authentication requesting device, the program according to an aspect of the present invention randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial Is sent to the authentication requesting device, and when a response is received from the authentication requesting device, the challenge is made up of the response, the one coefficient, and its order. And a ciphertext of the distance between the registration information and the authentication information using the encryption key based on the registration information encrypted by the registration request device and stored in the storage device.
- the ciphertext of the distance between the registration information and the authentication information is received from the verification assisting device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key, and query verification is performed to calculate the distance Processing, It comprises a program for executing the calculated distance or a comparison result generating process for outputting a comparison result between the distance and a predetermined threshold value as a comparison result.
- a computer-readable storage medium semiconductor memory, magnetic disk medium / optical disk medium, etc .: non-transitory computer-readable recording medium in which the program is recorded.
- the verification device calculates a pair of an encryption key pk and a decryption key sk of a homomorphic encryption method capable of a polynomial operation, and the encryption Publish the key pk.
- the verification assisting device (for example, 140 in FIG. 1) receives an authentication request from the authentication requesting device (means) (for example, 130 in FIG. 1), it randomly selects one coefficient (r) and its degree (h). And generating a polynomial (r ⁇ x h ) in which a coefficient other than the coefficient of the order (h) is 0, and encrypting the polynomial (r ⁇ x h ) using the encryption key pk A challenge consisting of a sentence (Enc (pk, r ⁇ x h )) is sent to the authentication requesting device (means).
- the verification assisting device (means) When the verification assisting device (means) receives a response (Enc (pk, (r ⁇ x h ) ⁇ (f B )) from the authentication requesting device (means), the response and the one coefficient (r) And the challenge assistance (r, h) consisting of the order (h) and the registration information (Enc (pk, f A )) encrypted by the registration requesting device (means) (eg, 110 in FIG. 1). Then, by using the encryption key (pk), an encrypted inner product (Enc (pk, f A ⁇ f B )) of the registration information Enc (pk, f A ) and authentication information is generated.
- the verification assisting device sends the encrypted text at a distance between the encrypted registration information and the authentication information to a verification device (for example, 150 in FIG. 1).
- the response is sent to the verification assisting device (means).
- the verification device (means) receives the ciphertext (Enc (pk, d E (A, B))) between the registration information and the authentication information received from the verification assisting device (means) as the decryption key. Decoding using (sk), calculating the distance between the registration information and the authentication information, and outputting the calculated distance or a comparison result between the distance and a predetermined threshold as a comparison result.
- a storage device (eg, 120 in FIG. 1) is further provided.
- the storage device A registered data storage unit (for example, 123 in FIG. 1);
- An identifier giving unit (means) (for example, 121 in FIG. 1) for giving an identifier to the encrypted registration information received from the registration requesting device (means);
- a registration data generation unit (means) (for example, 122 in FIG.
- the registration information search unit (means) for example, 124 in FIG. 1) for sending the registered information to the verification assisting device (means) may be provided.
- the verification assisting device (means) sends a registration data request included in the authentication request received from the authentication requesting device (means) and including an authentication identifier corresponding to the authentication information to the storage device (means). It is good also as composition to do.
- the verification assisting device (means) receives the encrypted registration information corresponding to the authentication identifier from the storage device (means), receives the response received from the authentication requesting device (means), and the challenge assisting And a ciphertext of the distance between the registration information and the authentication information may be calculated based on the encrypted registration information received from the storage device (means).
- the apparatus further includes a storage device (for example, 220 in FIG. 5).
- the storage device A registered data storage unit (for example, 223 in FIG. 5);
- An identifier giving unit (means) for example, 221 in FIG. 5) for giving an identifier to the encrypted registration information received from the registration requesting device (means);
- a registration data generation unit (means) for example, 222 in FIG. 5) that generates registration data including a pair of the encrypted registration information and the identifier and stores the registration data in the registration data storage unit; It is good also as a structure provided with.
- a registration data request is received from the verification assisting device (means) (for example, 240 in FIG. 5), and one or a plurality of registration data stored in the registration data storage unit (223 in FIG. 5).
- a part or all of the registration data may be transmitted to the verification assisting device (means) (240 in FIG. 5).
- the verification assisting device (means) (240 in FIG. 5) receives one or a plurality of registration data from the storage device (means), and the authentication request for each registration data received from the storage device (means).
- the registration information and the authentication information encrypted based on the response received from the device (means) (for example, 230 in FIG. 5), the challenge assistance, and the encrypted registration information included in the registration data.
- a distance between the registration information and the authentication information distance, and a pair of identifiers included in the registration data as verification data A plurality of verification data may be sent to the verification device (means) (for example, 250 in FIG. 5).
- the verification device (means) receives one or a plurality of the verification data from the verification auxiliary device (means) (240 in FIG. 5), and each verification data is included in the verification data.
- the encrypted distance is decrypted using the decryption key, the distance is calculated, the comparison result between the calculated distance and a predetermined threshold, or the calculated distance and the identifier included in the verification data It is good also as a structure which makes a set and a collation result and outputs this collation result.
- a polynomial generated based on registration information that is a numerical vector is encrypted using an encryption key, and the coefficient of one term is a random number and the coefficient of the other term is Generating a ciphertext of a product of a challenge that is a polynomial that is 0 and a polynomial that is generated based on authentication information that is a numerical vector, a ciphertext of a polynomial that is generated based on registration information, and the challenge, A ciphertext of the distance between the registration information and the authentication information is generated from the ciphertext of the product of the challenge and the polynomial generated based on the authentication information. Then, the ciphertext (ciphertext of the distance between the registration information and the authentication information) is decrypted using a decryption key to calculate the distance.
- the registration requesting device uses an i-th component of registration information (registration vector) (where i is a non-negative integer equal to or less than L ⁇ 1 and L is a positive integer equal to or greater than 2) as a coefficient of an i-th term.
- registration vector registration vector
- a first-order polynomial (fA) is generated, and the authentication requesting device calculates the inverse element of the i-th component (where i is a non-negative integer equal to or less than L-1) of the authentication information (authentication vector), the N-th order (N is N-th order polynomial is generated as a coefficient of a term of a positive integer greater than L), but the registration request device reverses the i-th component of registration information (registration vector) (where i is a non-negative integer less than or equal to L-1).
- N-th order polynomial is generated with the element as a coefficient of a term of N-th order (N is a positive integer greater than L), and the authentication requesting device generates the i-th component of authentication information (authentication vector) (where i is L- A non-negative integer of 1 or less, L is a positive integer of 2 or more) is used to generate an L ⁇ 1th order polynomial fA having an i-th order coefficient.
- FIG. 1 is a diagram illustrating a configuration of a ciphertext matching system 100 according to the first exemplary embodiment.
- the ciphertext verification system 100 is configured by an information processing system such as a computer system.
- the ciphertext matching system 100 according to the first exemplary embodiment roughly includes a registration requesting device 110, a storage device 120, an authentication requesting device 130, a verification assisting device 140, and a verification device 150.
- the registration request device 110 includes a registration information extraction unit 111, a first template generation unit 112, a second template generation unit 113, and a template generation unit 114.
- the storage device 120 includes an identifier assigning unit 121, a registration data generation unit 122, a registration data storage unit 123, and a registration data search unit 124.
- the authentication request device 130 includes an authentication request generation unit 131, an authentication information extraction unit 132, a first response generation unit 133, a second response generation unit 134, and a response generation unit 135.
- the collation assisting device 140 includes a challenge assist generating unit 141, a challenge generating unit 142, a registration data request generating unit 143, an encrypted inner product calculating unit 144, and a query generating unit 145.
- the verification device 150 includes a key generation unit 151, a decryption key storage unit 152, a query verification unit 153, and a matching result generation unit 154.
- the registration request device 110 and the storage device 120, the storage device 120 and the verification auxiliary device 140, the authentication request device 130 and the verification request device 140, and the verification auxiliary device 140 and the verification device 150 communicate with each other via, for example, a communication network. It shall be possible. Alternatively, the registration request device 110, the storage device 120, the verification auxiliary device 140, the authentication request device 130, and the verification device 150 are connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network). It is good. Of course, a plurality of devices among the registration request device 110, the storage device 120, the verification auxiliary device 140, the authentication request device 130, and the verification device 150 may be mounted in one unit.
- a network such as a LAN (Local Area Network) or a WAN (Wide Area Network). It is good.
- a plurality of devices among the registration request device 110, the storage device 120, the verification auxiliary device 140, the authentication request device 130, and the verification device 150 may be mounted in one
- the registration requesting device 110, the storage device 120, the verification assisting device 140, and the authentication requesting device 130 are the public key released by the verification device 150 (the encryption key of the homomorphic encryption method created by the verification device 150 and capable of polynomial operation).
- the encryption key of the decryption key pair can be acquired.
- at least one or all of the registration requesting device 110, the storage device 120, the verification assisting device 140, the authentication requesting device 130, and the verification device 150 at least a part or all of the processing of each unit is performed by a computer (CPU (Central (Processing Unit) or a program executed by a processor).
- HDD Hard Disk Drive
- CD Compact Disk
- DVD Digital Versatile Disk
- the registration requesting device 110 and the authentication requesting device 130 may be collectively represented as “first node”.
- the storage device 120 and the verification auxiliary device 140 may be collectively represented as a “second node”.
- the verification device 150 may be represented as a “third node”. That is, the ciphertext matching system 100 is not limited to the mode illustrated in FIG.
- the processing in the ciphertext verification system 100 is roughly classified as follows: ⁇ Preparation phase, ⁇ Registration phase, and -Includes a verification phase.
- a homomorphic encryption method having homomorphism is used for addition and multiplication.
- an encryption key and a decryption key are mainly generated using the received security parameters.
- a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
- the distance between the newly extracted authentication vector and one registered vector is mainly calculated using the decryption key generated in the preparation phase.
- FIG. 2 is a flowchart showing an example of processing executed by the ciphertext matching system 100 according to the first exemplary embodiment in the preparation phase. A process executed by the ciphertext matching system 100 according to the present embodiment in the preparation phase will be described with reference to FIG.
- the key generation unit 151 in the verification device 150 receives the security parameter, and uses the received security parameter, for example, according to the key generation algorithm (Non-Patent Document 1) described above, the encryption key (public key) pk, and A decryption key (secret key) sk is generated (step A1).
- the generated encryption key and decryption key conform to a public key cryptosystem having homomorphism with respect to addition and multiplication.
- the key generation unit 151 discloses the generated encryption key pk in the ciphertext verification system 100 (step A2).
- the key generation unit 151 stores the generated decryption key sk in the decryption key storage unit 152 (step A3).
- processing executed by the ciphertext matching system 100 according to the present embodiment in the preparation phase is not limited to the mode illustrated in FIG.
- FIG. 3 is a flowchart illustrating an example of processing executed by the ciphertext matching system 100 according to the first exemplary embodiment in the registration phase. With reference to FIG. 3, processing executed by the matching system 100 according to the present embodiment in the registration phase will be described.
- the registration information extraction unit 111 in the registration requesting device 110 receives biometric information (referred to as “registration vector”) from a biometric subject to registration.
- A (a 0 ,..., A L ⁇ 1 ) (Expression 29) Is extracted (step B1).
- the ciphertext Enc (pk, f A ) calculated in step B2 will be referred to as a “first template”.
- the registration identifier id is determined (step B7).
- the storage device 120 sends the registration identifier id to the registration request device 110 (step B8).
- the registration request device 110 receives the registration identifier id from the storage device 120 (step B9).
- the registration request device 110 displays the received registration identifier id on a user interface (UI) such as a display (step B10).
- UI user interface
- the registration request device 110 may store the received registration identifier id in an IC (integrated_circuit) card such as an employee ID card or an identifier card.
- IC integrated_circuit
- the registration data (formula 33) is stored in the registration data storage unit 123 in the storage device 120 (step B12).
- step B11 and step B12 may be executed prior to step B8.
- FIG. 4 is a flowchart showing an example of processing executed by the ciphertext matching system 100 according to the first exemplary embodiment in the authentication phase. With reference to FIG. 4, processing executed by the verification system 100 according to the present embodiment in the authentication phase will be described.
- the authentication requesting device 130 receives an identifier (referred to as “authentication identifier”) possessed by the authentication target (step C1).
- the authentication request generator 131 in the authentication request device 130 generates an authentication request including the received authentication identifier (step C2).
- the authentication requesting device 130 sends an authentication request to the verification assisting device 140 (step C3).
- the collation assisting device 140 receives an authentication request from the authentication requesting device 130 (step C4).
- the challenge auxiliary generation unit 141 in the verification auxiliary device 140 randomly selects an integer r smaller than the integer t and an integer h smaller than N-1.
- the challenge auxiliary generation unit 141 collects the selected values r and h and sets them as challenge auxiliary (r, h) (step C5).
- the challenge generation unit 142 in the verification assisting device 140 uses the encryption key pk to calculate the polynomial r ⁇ x h (equation 34) calculated from the challenge assist (r, h).
- Cipher text Enc (pk, r ⁇ x h ) is calculated (step C6).
- the ciphertext Enc (pk, r ⁇ x h ) calculated in step C6 is called a “challenge”.
- the verification assisting device 140 sends the challenge Enc (pk, r ⁇ x h ) to the authentication requesting device 130 (step C7).
- the registration data request generation unit 143 in the verification auxiliary device 140 generates a registration data request including the authentication identifier included in the authentication request received from the authentication requesting device 130 (step C8).
- the collation assisting device 140 sends a registration data request to the storage device 120 (step C9).
- the storage device 120 receives a registration data request from the verification auxiliary device 140 (step C10).
- the registration data search unit 124 in the storage device 120 specifies registration data including the authentication identifier included in the registration data request from one or a plurality of registration data stored in the registration data storage unit 123 (step C11). ).
- a template included in the specified registered data is referred to as a “matching target template”.
- Storage device 120 sends the verification target template to verification auxiliary device 140 (step C12).
- the collation auxiliary device 140 receives the collation target template from the storage device 120 (step C13).
- the authentication requesting device 130 receives the challenge transmitted by the verification assisting device 140 in step C7 (step C14).
- the authentication information extraction unit 132 in the authentication requesting device 130 obtains biometric information (referred to as “authentication vector”) from the biometric subject to authentication.
- B (b 0 ,..., B L ⁇ 1 ) (Expression 35) Is extracted (step C15).
- An encryption key pk The generated polynomial f B and A challenge Enc (pk, r ⁇ x h ) received from the verification auxiliary device 140; Based on For example, the first response Enc (pk, (r ⁇ x h ) ⁇ (f B )) (Equation 37) is used by utilizing the property (Equation 6) of the encryption method that can calculate the scalar multiplication of the ciphertext. Is generated (step C16).
- the ciphertext of the sum of squares of each component of the authentication vector B calculated in step C17 is referred to as “second response”.
- the authentication requesting device 130 sends the response (formula 39) generated in step C18 to the verification assisting device 140 (step C19).
- the verification assistant device 140 receives the response (formula 39) from the authentication requesting device 130 (step C20).
- the encryption inner product calculation unit 144 in the verification auxiliary device 140 An encryption key pk; ⁇ Generated challenge auxiliary in step C5 (r, h) a polynomial -r -1 ⁇ x N-h generated from,
- the encryption inner product calculation unit 144 An encryption key pk; A first template Enc (pk, f A ) included in the verification target template received in step C13; The calculated ciphertext Enc (pk, f B ), Based on Encrypted inner product Enc (pk, f A ⁇ f B ) using the multiplicative homomorphism of the encryption method Is generated (step C21).
- the query generation unit 145 in the verification assisting device 140 An encryption key pk; Encrypted inner product Enc (pk, f A ⁇ f B ) generated in step C21
- a second template Enc (pk, ⁇ i 0 to n ⁇ 1 a i 2 ) included in the collation target template received in step C13;
- a second response Enc (pk, ⁇ i 0 to L ⁇ 1 b i 2 ) included in the response received in step C20; From the query Enc (pk, f) using the additive homomorphism of the encryption method. Is generated (step C22).
- the collation assisting device 140 sends the query Enc (pk, f) to the verification device 150 (step C23).
- the verification device 150 receives the query Enc (pk, f) from the verification auxiliary device 140 (step C24).
- the query verification unit 153 in the verification device 150 decrypts the query Enc (pk, f) using the decryption key sk.
- the constant term of the polynomial obtained as the decoding result Dec (sk, Enc (pk, f)) is set as the verification result (step C25).
- the verification result is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.
- the verification result generation unit 154 in the verification device 150 uses the verification result as the verification result.
- generation part 154 is good also considering the result of having compared the magnitude of a verification result and a predetermined threshold value as a collation result (step C26).
- the verification device 150 outputs the calculated collation result (step C27).
- steps C9 to C13 may be executed prior to step C5.
- the polynomial f A generated by the first template generation unit 112 in the registration request apparatus 110 in step B2 of FIG. 3 is a polynomial generated from the registration vector A according to Equation 19
- the polynomial f B generated by the first response generation unit 133 in the authentication requesting apparatus 130 in step C16 in FIG. 4 is a polynomial generated from the authentication vector according to the equation 21.
- the method of generating two polynomials in this embodiment is not limited to the above method.
- the polynomial f A generated by the first template generation unit 112 in the registration request apparatus 110 in step B2 is a polynomial generated according to the expression 21 based on the registration vector A, - an authentication request apparatus polynomial f B to generate first response generator 133 in step C16 in 130, based on the authentication vector may be a polynomial generated according to Equation 20.
- the collation system 100 it is possible to safely realize 1: 1 authentication in which a user requesting authentication performs authentication by presenting his / her own living body and an identifier. It is. That is, it has the following two effects.
- the registration vector extracted by the registration requesting device 110 is encrypted on the registration requesting device 110 and sent to the storage device 120.
- the authentication vector extracted by the authentication requesting device 130 is encrypted on the authentication requesting device 130 and sent to the verification assisting device 140.
- the ciphertext can be decrypted by the verification device 150 having a decryption key, but the data received by the verification device 150 is a ciphertext of the Euclidean distance between the registration vector and the authentication vector.
- the value of is not disclosed. Therefore, according to the ciphertext matching system 100 according to the first exemplary embodiment, a value other than the distance between the registered vector and the authentication vector is not leaked to a device other than the device that extracts each vector, and verification is performed. In the device, it is possible to calculate the distance between the registration vector and the authentication vector.
- the process using the random number selected in step C5 in FIG. 4 is performed. Done. Therefore, even if the communication content of the verification process is leaked, -Resend leaked content, -Even if you send the data created using the leaked content, It is impossible to calculate a distance equal to the leaked distance at the time of collation or to calculate a small value.
- the ciphertext matching system 100 according to the first exemplary embodiment is used for authentication for accepting when the distance between the registration vector and the authentication vector is smaller than the threshold, the registration vector is not known. It has the property that an attacker is not "accepted", that is, it is resistant to spoofing attacks.
- the verification device 150 having the decryption key can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector.
- the verification device 150 having a decryption key can be transformed into a method that cannot calculate the Euclidean distance between the registration vector and the authentication vector.
- a method that does not disclose the Euclidean distance between the registration vector and the authentication vector for the verification device 150 having the decryption key means that the verification device 150 having the decryption key calculates the value of the registration vector even under special circumstances. Since it can be prevented, higher safety can be achieved.
- FIG. 5 is a diagram schematically illustrating a configuration of a ciphertext matching system (also referred to as an “information processing system”) 200 according to the second exemplary embodiment.
- the ciphertext matching system 200 according to the second exemplary embodiment roughly includes a registration requesting device 210, a storage device 220, an authentication requesting device 230, a verification assisting device 240, and a verification device 250.
- the registration requesting apparatus 210 includes a registration information extraction unit 211, a first template generation unit 212, a second template generation unit 213, and a template generation unit 214.
- the storage device 220 includes an identifier assigning unit 221, a registration data generation unit 222, and a registration data storage unit 223.
- the authentication request device 230 includes an authentication request generation unit 231, an authentication information extraction unit 232, a first response generation unit 233, a second response generation unit 234, and a response generation unit 235.
- the verification auxiliary device 240 includes a challenge auxiliary generation unit 241, a challenge generation unit 242, a registration data request generation unit 243, an encrypted inner product calculation unit 244, a query generation unit 245, and a verification data generation unit 246. .
- the verification device 250 includes a key generation unit 251, a decryption key storage unit 252, a query verification unit 253, and a matching result generation unit 254.
- the registration request device 210 and the storage device 220, the storage device 220 and the verification auxiliary device 240, the authentication request device 230 and the verification request device 240, and the verification auxiliary device 240 and the verification device 250 communicate with each other via a communication network, for example. Suppose that it is possible.
- the registration requesting device 210 and the authentication requesting device 230 may be collectively represented as “first node”.
- the storage device 220 and the verification auxiliary device 240 may be collectively represented as a “second node”.
- the verification device 250 may be represented as a “third node”. That is, the ciphertext matching system 200 is not limited to the mode illustrated in FIG.
- the operation in the ciphertext matching system 200 according to the second exemplary embodiment of the present invention will be described.
- the processing in the ciphertext verification system 200 is roughly divided into a preparation phase, a registration phase, and a verification phase. First, an overview of processing in each phase will be described.
- a homomorphic cryptosystem having homomorphism is used for addition and multiplication.
- the encryption method used is an N ⁇ 1 degree polynomial whose coefficients are non-negative integers smaller than t as messages.
- an encryption key and a decryption key are mainly generated using the received security parameters.
- a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
- the distance between the newly extracted authentication vector and one or more registered vectors is mainly calculated using the decryption key generated in the preparation phase.
- FIG. 6 is a flowchart showing an example of processing executed by the ciphertext matching system 200 according to the second exemplary embodiment in the preparation phase. A process executed by the ciphertext matching system 200 according to the second exemplary embodiment in the preparation phase will be described with reference to FIG.
- the key generation unit 251 in the verification device 250 receives the security parameter, and generates the encryption key pk and the decryption key sk using the received security parameter, for example, according to the above-described key generation algorithm (step D1). .
- the generated encryption key and decryption key conform to a public key cryptosystem having homomorphism with respect to addition and multiplication.
- the key generation unit 251 discloses the encryption key pk in the ciphertext verification system 200 (step D2).
- the key generation unit 251 stores the decryption key sk in the decryption key storage unit 252 (step D3).
- processing executed by the ciphertext matching system 200 according to the present embodiment in the preparation phase is not limited to the mode illustrated in FIG.
- FIG. 7 is a flowchart illustrating an example of processing executed by the ciphertext matching system 200 according to the second exemplary embodiment in the registration phase. With reference to FIG. 7, a description will be given of processing executed by the verification system 200 according to the present embodiment in the registration phase.
- the registration information extraction unit 211 in the registration request apparatus 210 receives biometric information (referred to as a “registration vector”) from a biometric subject to registration.
- A (a 0 ,..., A L ⁇ 1 ) (Formula 41) Is extracted (step E1).
- the ciphertext Enc (pk, f A ) calculated in step E2 is referred to as “first template”.
- the identifier assigning unit 221 in the storage device 220 determines a registered identifier id that is an identifier unique to the received template (step E7).
- Storage device 220 sends registration identifier id to registration request device 210 (step E8).
- the registration request device 210 receives a registration identifier id from the storage device 220 (step E9).
- the registration requesting device 210 may display the received registration identifier id on a user interface (UI) such as a display (step E10).
- the registration request apparatus 210 may store the received registration identifier in an IC (integrated_circuit) card such as an employee ID card or an identifier card.
- the registration data generation unit 222 in the storage device 220 stores the registration data in the registration data storage unit 223 (step E12).
- step E11 and step E12 may be executed prior to step E8.
- FIG. 8 is a flowchart showing an example of processing executed by the ciphertext matching system 200 according to the second exemplary embodiment in the authentication phase. With reference to FIG. 8, processing executed by the verification system 200 according to the present embodiment in the authentication phase will be described.
- the authentication request generation unit 231 in the authentication request device 230 generates an authentication request (step F1).
- the authentication requesting device 230 sends an authentication request to the verification assisting device 240 (step F2).
- the verification auxiliary device 240 receives the authentication request from the authentication requesting device 230 (step F3).
- the challenge auxiliary generation unit 241 in the verification auxiliary device 240 randomly selects an integer smaller than t and an integer h smaller than N ⁇ 1.
- the selected values are collected and used as challenge assistance (r, h) (step F4).
- the challenge generation unit 242 in the verification assisting device 240 uses the encryption key pk to calculate the polynomial r ⁇ x h (equation 46) calculated from the challenge assist (r, h).
- the ciphertext Enc (pk, r ⁇ x h ) is calculated (step F5).
- the ciphertext Enc (pk, r ⁇ x h ) calculated in step F5 is called a “challenge”.
- the collation assisting device 240 sends the challenge to the authentication requesting device 230 (step F6).
- the registration data request generation unit 243 in the verification auxiliary device 240 generates a registration data request (step F7).
- the collation assisting device 240 sends a registration data request to the storage device 220 (step F8).
- the storage device 220 receives a registration data request from the verification auxiliary device 240 (step F9).
- the storage device 220 sends a part or all (M) of registration data of one or a plurality of registration data stored in the registration data storage unit 223 to the verification assisting device 240 (step F10).
- each registration data is a set of a template and a registration identifier.
- the collation assisting device 240 receives M pieces of registered data from the storage device 220 (step F11).
- the authentication requesting device 230 receives the challenge Enc (pk, r ⁇ x h ) from the verification assisting device 240 (step F12).
- the authentication information extraction unit 232 in the authentication requesting device 230 obtains biometric information (referred to as “authentication vector”) from the biometric subject to authentication.
- B (b 0 ,..., B L ⁇ 1 ) (Formula 48) Is extracted (step F13).
- An encryption key pk The generated polynomial f B and ⁇ The received challenge Enc (pk, r ⁇ x h ), From For example, using the property (equation 6) that can calculate the scalar multiplication of the ciphertext of the encryption method, First response Enc (pk, (r ⁇ x h ) ⁇ (f B )) (Formula 50) Is generated (step F14).
- the authentication requesting device 230 sends the response, which is a summary of the first response and the second response, to the verification assisting device 240 (step F17).
- the verification auxiliary device 240 receives the response from the authentication requesting device 230 (step F18).
- An encryption key pk A first template Enc (pk, f A, j ) included in the j-th registration data among the M registration data received in step F11;
- the calculated ciphertext Enc (pk, f B ) Based on the above, by using the multiplicative homomorphism of the encryption method, the encrypted inner product Enc (pk, f A, j ⁇ f B ) (Formula 54) Is generated (step F19).
- the query generation unit 245 in the verification assisting device 240 for each j (j 1,..., M) An encryption key pk; Encrypted inner product Enc (pk, f A, j ⁇ f B ) generated in step F19
- a second template Enc (pk, ⁇ i 0 to n ⁇ 1 a j, i 2 ) included in the j-th registration data among the M pieces of registration data received in step F11;
- a second response Enc (pk, ⁇ i 0 to L ⁇ 1 b i 2 ) included in the response received in step F18;
- Query Enc (pk, f j ) Is generated (step F20).
- the generated query and the registration identifier included in the jth registration data among the M pieces of registration data are set as the jth verification data (step F21).
- the verification assisting device 240 sends M pieces of verification data to the verification device 250 (step F22).
- the verification device 250 receives M pieces of verification data from the verification auxiliary device 240 (step F23).
- the constant term of the polynomial obtained as the decoding result is set as the verification result (step F24).
- the constant term of the polynomial obtained as a decoding result generated from the j-th verification data among the M verification data is the registered vector A j and the authentication The Euclidean distance d E (A j , B) with the vector B.
- the verification result and the registration identifier included in the jth verification data are collected and used as the jth verification result.
- the result of comparing the size of the th-th verification result with a predetermined threshold value and the registration identifier included in the j-th verification data may be collected and used as the j-th collation result (step F25).
- the verification device 250 outputs the calculated M verification results (step F26).
- steps F12 to F17 may be executed prior to step F7.
- the method of generating the two polynomials in the second exemplary embodiment is not limited to the above method.
- the polynomial f A generated by the first template generation unit 212 in the registration request device 210 in step E2 is a polynomial generated based on the registration vector A according to the above equation 21, and the first response generation unit 233 in the authentication request device 230 is used.
- There polynomial f B to generate at step F16 in FIG. 8, may be a polynomial generated according to the formula 20 based on the authentication vector.
- the registration vector extracted by the registration requesting device 210 is encrypted on the registration requesting device 210 and sent to the storage device 220.
- the authentication vector extracted by the authentication requesting device 230 is encrypted on the authentication requesting device 230 and sent to the verification assisting device 240.
- the ciphertext can be decrypted by the verification device 250 having a decryption key, but the data received by the verification device 250 is a ciphertext of the Euclidean distance between the registration vector and the authentication vector. The value is not disclosed.
- a value other than the distance between the registration vector and the authentication vector is not leaked to a device other than the device that extracts each vector, It is possible to calculate the distance between the authentication vectors.
- the process using the random number selected in step F5 in FIG. 8 is performed. Done.
- the distance equal to the distance at the time of the leaked verification is calculated by resending the leaked content or sending data created using the leaked content Or a small value cannot be calculated.
- the ciphertext matching system 200 when used for authentication that accepts when the distance is smaller than the threshold, an attacker who does not know the registered vector is not accepted.
- the property ie, resistance to spoofing attacks.
- the verification device 250 having the decryption key can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector. It is.
- the verification device 250 having a decryption key can be transformed into a method that cannot calculate the Euclidean distance between the registration vector and the authentication vector.
- the method that does not disclose the Euclidean distance between the registration vector and the authentication vector for the verification device 250 having the decryption key allows the verification device 250 having the decryption key to calculate the value of the registration vector even under special circumstances. Can be prevented. For this reason, higher safety can be achieved.
- the third exemplary embodiment is a case where the encryption scheme shown in Non-Patent Document 1 is used in the ciphertext matching system 100 shown in FIG. 1 referred to in the description of the first exemplary embodiment. .
- characteristic portions according to the third exemplary embodiment will be mainly described, and description of the same portions as those of the first exemplary embodiment will be omitted as appropriate.
- the third exemplary embodiment is configured by using an encryption method having homomorphism regarding addition and information described in Non-Patent Document 1 described above.
- the configuration of this embodiment uses the following characteristics of the encryption method of Non-Patent Document 1.
- the parameters received by the encryption method key generation algorithm of Non-Patent Document 1 include an integer N and a prime number t.
- the encryption algorithm of the encryption method of Non-Patent Document 1 receives, as a message, an N ⁇ 1 order polynomial whose coefficients are smaller than t.
- h is an integer of 0 to N-1.
- r ⁇ x h is a message that can be encrypted using the encryption scheme of Non-Patent Document 1, and the inverse element ⁇ r ⁇ 1 ⁇ x N ⁇ h .
- the configuration of the third exemplary embodiment is the same as the configuration of the ciphertext matching system 100 according to the first embodiment shown in FIG.
- the operation of the ciphertext matching system 100 according to the third exemplary embodiment will be described. Similar to the first exemplary embodiment, the operation of the verification system 100 according to the present embodiment is roughly divided into a preparation phase, a registration phase, and a verification phase. First, an overview of processing in each phase will be described.
- an encryption key and a decryption key are mainly generated using the received security parameters.
- a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
- the distance between the newly extracted authentication vector and one registered vector is calculated using the decryption key generated in the preparation phase.
- the preparation phase of the third exemplary embodiment follows the flowchart of FIG. 2 of the first exemplary embodiment. Processing executed by the ciphertext matching system 100 according to the third embodiment in the preparation phase will be described with reference to FIG.
- N is an integer of 2 ⁇
- q is a prime number congruent with 1 modulo 2N
- t is a positive prime number smaller than q
- ⁇ is a standard deviation of an N-dimensional discrete Gaussian distribution.
- two N ⁇ 1 order polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of ⁇ . That is, a polynomial having N values generated according to the discrete Gaussian distribution as coefficients is generated.
- s is a secret key.
- p 0 ⁇ (p 1 ⁇ s + t ⁇ e) (Formula 58) Is calculated (step A1). ( ⁇ , p 0 , p 1 ) as an encryption key pk, Let ( ⁇ , p 0 , p 1 , s) be the decryption key sk.
- the key generation unit 151 discloses the encryption key pk in the ciphertext verification system 100 (step A2).
- the key generation unit 151 stores the decryption key sk in the decryption key storage unit 152 (step A3).
- the process executed by the ciphertext matching system 100 according to the third embodiment in the preparation phase is not limited to the mode illustrated in FIG.
- the registration phase of the third exemplary embodiment follows the flowchart of FIG. 3 of the first exemplary embodiment.
- a process executed by the ciphertext matching system 100 according to the third embodiment in the registration phase will be described with reference to FIG.
- the registration information extraction unit 111 in the registration requesting device 110 receives biometric information (referred to as “registration vector”) from a biometric subject to registration.
- A (a 0 ,..., A L ⁇ 1 ) (Formula 59) Is extracted (step B1).
- C 1 is a ciphertext of f A with the encryption key pk.
- the ciphertext C 1 (c 1,0 , c 1,1 ) calculated in step B2 is referred to as a “first template”.
- the ciphertext C 2 (c 2,0 , c 2,1 ) calculated in step B3 is referred to as a “second template”.
- the template (C 1 , C 2 ) is used (step B4).
- the registration requesting device 110 sends the template (C 1 , C 2 ) to the storage device 120 (step B5).
- the storage device 120 receives the template (C 1 , C 2 ) from the registration request device 110 (step B6).
- the identifier assigning unit 121 in the storage device 120 determines a registration identifier id that is an identifier unique to the received template (C 1 , C 2 ) (step B7).
- the storage device 120 sends the registration identifier id to the registration request device 110 (step B8).
- the registration request device 110 receives the registration identifier id from the storage device (step B9).
- the registration request device 110 displays the received registration identifier id on a user interface (UI) such as a display (step B10), for example.
- UI user interface
- the registration data device 102 may store the received registration identifier id in an IC (integrated_circuit) card such as an employee ID card or an identifier card.
- IC integrated_circuit
- the registration data generation unit 122 in the storage device 120 collects the template (C 1 , C 2 ) and the registration identifier id to register the registration data ((C 1 , C 2 ), id). (Step B11).
- the registration data generation unit 122 in the storage device 120 stores the registration data ((C 1 , C 2 ), id) in the registration data storage unit 123 (step B12).
- step B11 and step B12 may be executed prior to step B8.
- the authentication phase of the third exemplary embodiment follows the flowchart of FIG. 4 of the first exemplary embodiment.
- a process executed by the ciphertext matching system 100 according to the third embodiment in the authentication phase will be described with reference to FIG.
- the authentication request device 130 receives an identifier id (referred to as “authentication identifier”) possessed by the authentication target (step C1).
- authentication identifier an identifier id (referred to as “authentication identifier”) possessed by the authentication target (step C1).
- the authentication request generator 131 in the authentication request device 130 generates an authentication request including the received authentication identifier id (step C2).
- the authentication requesting device 130 sends an authentication request to the verification assisting device 140 (step C3).
- the collation assisting device 140 receives an authentication request from the authentication requesting device 130 (step C4).
- the challenge auxiliary generation unit 141 in the verification auxiliary device 140 randomly selects an integer r smaller than t and an integer h smaller than N-1.
- the selected values are collected and used as challenge assistance (r, h) (step C5).
- the challenge generation unit 142 in the verification assisting device 140 calculates the polynomial r ⁇ x h (Expression 64) from the challenge assist (r, h). Is calculated.
- Verification auxiliary apparatus 140 sends the challenge C 3 to the authentication request unit 130 (step C7).
- the registration data request generation unit 143 in the verification assistant device 140 generates a registration data request including the authentication identifier id included in the authentication request received from the authentication request device 130 (step C8).
- the collation assisting device 140 sends a registration data request to the storage device 120 (step C9).
- the storage device 120 receives a registration data request from the verification auxiliary device 140 (step C10).
- the registration data search unit 124 in the storage device 120 includes registration data ((C 1 , C 2) including an authentication identifier id included in the registration data request among one or a plurality of registration data stored in the registration data storage unit. ), Id) is specified (step C11).
- the templates (C 1 , C 2 ) included in the specified registered data are referred to as “collation target templates”.
- the storage device 120 sends the verification target template (C 1 , C 2 ) to the verification auxiliary device 140 (step C12).
- the verification auxiliary device 140 receives the verification target template (C 1 , C 2 ) from the storage device 120 (step C13).
- the authentication information extraction unit 132 in the authentication requesting device 130 receives biometric information (referred to as an authentication vector) from the biometric subject to authentication.
- B (b 0 ,..., B L ⁇ 1 ) (Expression 66) Is extracted (step C15).
- the ciphertext C 5 (c 5,0 , c 5,1 ) calculated in step C 17 is referred to as a “second response”.
- responses (C 4 , C 5 ) are set (step C 18).
- the authentication requesting device 130 sends the response (C 4 , C 5 ) to the verification assisting device 140 (step C19).
- the verification assisting device 140 receives the response (C 4 , C 5 ) from the authentication requesting device 130 (step C20).
- the encrypted inner product calculation unit 144 in the verification assisting device 140 uses the challenge assist (r, h) generated in Step C5, -R -1 ⁇ x N-h ⁇ ( Formula 71) Calculate
- C 7 is a ciphertext of f A ⁇ f B with the encryption key pk.
- (Formula 78) Is the ciphertext.
- the calculated ciphertext C 8 (c 8,0 , c 8,1 , c 8,2 ) is called a “query”.
- C 8 is a polynomial ciphertext having a constant term of Euclidean distance d E (A, B) between registration vector A and authentication vector B.
- the verification device 150 receives the query C 8 from the verification auxiliary apparatus 140 (step C24).
- a remainder polynomial obtained by dividing D 3 by t is D 4 .
- the constant term of D 4 and D 5 (step C25).
- the constant term D 5 is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.
- the matching result generation unit 154 in the verification device 150 a verification result D 5 and collation result d.
- the verification result and D 5 which may the result of comparing the magnitude of the predetermined threshold value as a verification result d (step C26).
- the verification device 150 outputs the calculated verification result d (step C27).
- steps C9 to C13 may be executed prior to step C5.
- the polynomial f A generated in step B2 by the first template generation unit 112 in the registration request apparatus 110 is generated according to the above equation 20 based on the registration vector A.
- the polynomial f B generated by the first response generation unit 133 in the authentication requesting apparatus 130 in step C16 is a polynomial generated according to the above equation 21 based on the authentication vector.
- the method for generating the two polynomials in the third embodiment is not limited to the above method.
- the polynomial f A generated in step B2 by the first template generation unit 112 in the registration request apparatus 110 is a polynomial generated according to the expression 21 based on the registration vector A
- the first response generation unit 133 in the authentication request apparatus 130 the polynomial f B to generate at step C16 may be a polynomial generated according based formula 20 in the authentication vector.
- a user who requests authentication can safely implement 1: 1 authentication by performing authentication by presenting his / her own living body and identifier. Is possible. That is, it has the following two effects.
- the registration vector extracted by the registration request device 110 is encrypted on the registration request device 110 and sent to the storage device 120.
- the authentication vector extracted by the authentication requesting device 130 is encrypted on the authentication requesting device 130 and sent to the verification assisting device 140.
- the ciphertext can be decrypted by the verification device 150 having a decryption key, but the data received by the verification device 150 is a ciphertext of the Euclidean distance between the registration vector and the authentication vector. The value is not disclosed.
- a value other than the distance between the registered vector and the authentication vector is not leaked to a device other than the device that extracts each vector, and the registered vector It is possible to calculate the distance between the authentication vectors.
- the process using the random number selected in step C5 is performed.
- the distance equal to the distance at the time of the leaked verification is calculated by resending the leaked content or sending data created using the leaked content Or a small value cannot be calculated.
- the ciphertext matching system 100 when used for authentication that accepts when the distance is smaller than the threshold, an attacker who does not know the registration vector is not accepted.
- the property ie, resistance to spoofing attacks.
- the ciphertext matching system 100 according to the third exemplary embodiment is configured using an encryption method described in Non-Patent Document 1, which is an encryption method capable of high-speed processing. Therefore, high-speed collation processing is possible.
- the verification device 150 having the decryption key can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector. It is.
- the verification device 150 having a decryption key can be transformed into a method that cannot calculate the Euclidean distance between the registration vector and the authentication vector.
- a method that does not disclose the Euclidean distance between the registration vector and the authentication vector for the verification device 150 having the decryption key means that the verification device 150 having the decryption key calculates the value of the registration vector even under special circumstances. Can be prevented. For this reason, higher safety can be achieved.
- the fourth exemplary embodiment is a case where the encryption scheme shown in Non-Patent Document 1 is used in the ciphertext matching system 200 shown in FIG. 5 referred to in the description of the second exemplary embodiment. .
- characteristic parts according to the fourth exemplary embodiment will be mainly described, and description of the same parts as those of the second exemplary embodiment will be omitted as appropriate.
- the fourth exemplary embodiment is configured using an encryption method described in Non-Patent Document 1 and having homomorphism with respect to addition and information.
- the configuration of the fourth exemplary embodiment uses the following characteristics of the encryption method of Non-Patent Document 1.
- the parameters received by the encryption method key generation algorithm of Non-Patent Document 1 include an integer N and a prime number t.
- the encryption algorithm of the encryption method of Non-Patent Document 1 receives, as a message, an N ⁇ 1 order polynomial in which each coefficient is smaller than t.
- h is an integer of 0 to N-1.
- r and h (R ⁇ x h ) ⁇ (r ⁇ 1 ⁇ ( ⁇ x N ⁇ h )) 1 (Formula 81) Holds.
- r ⁇ x h is a message that can be encrypted using the encryption scheme of Non-Patent Document 1, and the inverse element ⁇ r ⁇ 1 ⁇ x N ⁇ h .
- the configuration of the fourth exemplary embodiment is the same as the configuration of the ciphertext matching system 200 according to the second exemplary embodiment shown in FIG. [Description of operation] Next, the operation of the ciphertext matching system 200 according to the fourth exemplary embodiment will be described.
- the operation in the ciphertext matching system 200 according to the fourth exemplary embodiment is roughly divided into a preparation phase, a registration phase, and a verification phase, as in the second exemplary embodiment. .
- a preparation phase a preparation phase
- a registration phase a registration phase
- a verification phase a verification phase
- an encryption key and a decryption key are mainly generated using the received security parameters.
- a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
- the distance between the newly extracted authentication vector and one or more registered vectors is mainly calculated using the decryption key generated in the preparation phase.
- the preparation phase of the fourth exemplary embodiment follows the flowchart of FIG. 6 showing an example of the processing of the preparation phase executed by the ciphertext matching system 200 according to the second exemplary embodiment.
- FIG. 6 a process executed in the preparation phase by the collation system 200 according to the fourth exemplary embodiment will be described.
- N is an integer of 2 ⁇
- q is a prime number congruent to 1 modulo 2N
- t is a positive integer smaller than q
- ⁇ is a standard deviation of a certain discrete Gaussian distribution on an N ⁇ 1 order polynomial.
- N ⁇ 1 order polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of ⁇ .
- an N ⁇ 1 order polynomial p 1 in which each coefficient is smaller than q is randomly generated.
- the key generation unit 251 discloses the encryption key pk in the ciphertext verification system 200 (step D2).
- the key generation unit 251 stores the decryption key sk in the decryption key storage unit 252 (step D3).
- processing executed in the preparation phase by the ciphertext matching system 200 according to the fourth exemplary embodiment is not limited to the mode illustrated in FIG.
- the registration phase of the fourth exemplary embodiment follows the flowchart of FIG. 7 showing an example of the registration phase process executed by the ciphertext matching system 200 according to the second exemplary embodiment.
- FIG. 7 a description will be given of processing executed in the registration phase by the collation system 200 according to the fourth exemplary embodiment.
- biometric information referred to as a registration vector
- N ⁇ 1 degree polynomials u 2 , g 2, and f 2 , t, p 0 , p 1 included in the encryption key pk, and generated values ⁇ i 0 to L ⁇ 1 a i 2 ,
- (c 2,0 , c 2,1 ) be the ciphertext C 2 (step E3).
- the calculated ciphertext C 2 (c 2,0 , c 2,1 ) is called a “second template”.
- the template (C 1 , C 2 ) is used (step E4).
- the registration requesting device 210 sends the template to the storage device 220 (step E5).
- the storage device 220 receives the template (C 1 , C 2 ) from the registration request device 210 (step E6).
- the identifier assigning unit 221 in the storage device 220 determines a registered identifier id that is an identifier unique to the received template (step E7).
- Storage device 220 sends registration identifier id to registration request device 210 (step E8).
- the registration request device 210 receives the registration identifier id from the storage device (step E9).
- the registration requesting device 210 displays the received registration identifier id on a user interface (UI) such as a display (step E10).
- the registration requesting device 210 may store the received registration identifier id in an IC (integrated_circuit) card such as an employee ID card or an identifier card.
- IC integrated_circuit
- the registration data generation unit 222 in the storage device 220 summarizes the template (C 1 , C 2 ) and the registration identifier id, and registers data ((C 1 , C 2 ), id) (Equation 89) (Step E11).
- the registration data generation unit 222 in the storage device 220 stores the registration data ((C 1 , C 2 ), id) in the registration data storage unit 223 (step E12).
- step E11 and step E12 may be executed prior to step E8.
- FIG. 8 An example of the process of the authentication phase of the fourth exemplary embodiment follows the flowchart of FIG. 8 showing an example of the process executed by the ciphertext matching system 200 according to the second exemplary embodiment.
- FIG. 8 a description will be given of processing executed by the verification system 200 according to the fourth exemplary embodiment in the authentication phase.
- the authentication request generation unit 231 in the authentication request device 230 generates an authentication request (step F1).
- the authentication requesting device 230 sends an authentication request to the verification assisting device 240 (step F2).
- the verification auxiliary device 240 receives the authentication request from the authentication requesting device 230 (step F3).
- the challenge auxiliary generation unit 241 in the verification auxiliary device 240 randomly selects an integer r smaller than t and an integer h smaller than N-1.
- the selected values are collected and used as challenge assistance (r, h) (step F4).
- the challenge generation unit 242 in the verification assisting device 240 calculates the polynomial r ⁇ x h (Expression 90) from the challenge assist (r, h). Is calculated.
- C 3 is an r ⁇ x h ciphertext with the encryption key pk.
- the calculated ciphertext C 3 (c 3,0 , c 3,1 ) is called a “challenge”.
- Verification auxiliary apparatus 240 sends the challenge C 3 to the authentication request unit 230 (step F6).
- the registration data request generation unit 243 in the verification auxiliary device 240 generates a registration data request (step F7).
- the collation assisting device 240 sends a registration data request to the storage device 220 (step F8).
- the storage device 220 receives a registration data request from the verification auxiliary device 240 (step F9).
- the storage device 220 sends a part or all (M) of registration data among one or a plurality of registration data stored in the registration data storage unit 223 to the verification assisting device 240 (step F10).
- each registration data is a set of a template and a registration identifier.
- the collation assisting device 240 receives M pieces of registered data from the storage device 220 (step F11).
- Cipher text Enc (pk, f A, j ) (c j, 1,0 , c j, 1,1 ) of the generated polynomial f A, j (Equation 93) Suppose that
- the authentication requesting device 230 receives a challenge from the verification assisting device 240 (step F12).
- the authentication information extraction unit 232 in the authentication requesting device 230 obtains biometric information (referred to as “authentication vector”) from the biometric subject to authentication.
- B (b 0 ,..., B L ⁇ 1 ) (Equation 96) Is extracted (step F13).
- the ciphertext C 5 (c 5,0 , c 5,1 ) calculated in step F15 is referred to as a “second response”.
- responses (C 4 , C 5 ) are set (step F16).
- the authentication requesting device 230 sends the response (C 4 , C 5 ) to the verification assisting device 240 (step F17).
- the verification assisting device 240 receives the response (C 4 , C 5 ) from the authentication requesting device 230 (step F18).
- c 6,1 (- r -1 ⁇ x N-h) ⁇ c 4,1 ⁇ ( Formula 103-2)
- a and ciphertext C 6. That, C 6 is due to the encryption key pk (r ⁇ x h ⁇ f B) ⁇ (-r -1 ⁇ x N-h) f B ⁇ ( Formula 105) Is the ciphertext.
- a first template C j, 1 (c j, 1,0 , c j, 1,1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j );
- C 6 (c 6,0 , c 6,1 )
- c j, 7,0 c j, 1,0 ⁇ c 6,0
- c j, 7,2 c j, 1,1 ⁇ c 6,1
- C j, 7 is a ciphertext of f A, j ⁇ f B with the encryption key pk.
- a second template C j, 2 (c j, 2,0 , c j, 2,1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j );
- a second response C 5 (c 5,0 , c 5,1 ) included in the response (C 4 , C 5 ) received in step F18;
- C j, 8 is a polynomial ciphertext having a constant term of Euclidean distance d E (A j , B) between registration vector A j and authentication vector B. is there.
- the query C j, 8 (c j, 8,0 , c j generated in step F20 using the second template included in the jth registration data among the M pieces of registration data received in step F11 , 8,1 , c j, 8,2 ), Of the M pieces of registration data received in step F11, the registration identifier id j included in the j-th registration data, The j-th verification data (C j, 8 , id j ) is assumed (step F21).
- the verification assisting device 240 sends M pieces of verification data to the verification device 250 (step F22).
- the verification device 250 receives M pieces of verification data from the verification auxiliary device 240 (step F23).
- the query C j, 8 (c j, 8,0 , c j, 8, included in the jth verification data (C j, 8 , id j ) 1 , c j, 8,2 ),
- the secret key (decryption key) sk ( ⁇ , p 0 , p 1 , s)
- D j, 1 c j, 8,0 + c j, 8,1 ⁇ s + c j, 8,2 ⁇ s 2 (Equation 111) Calculate
- D j, 4 a remainder polynomial obtained by dividing D j, 3 by t is D j, 4 .
- the constant term of D j, 4 is set to D j, 5 (step F24).
- D j, 5 is called a “verification result”.
- D 5 generated from the j-th verification data among the M verification data is the Euclidean distance d between the registration vector A j and the authentication vector B.
- the registration identifier id j included in the j-th verification data is collected and used as the j-th matching result (D j, 5 , id j ).
- the registration identifier id j included in the j-th verification data may be collected and used as the j-th collation result (d j , id j ) (step F25).
- the verification device 250 outputs the calculated M verification results (step F26).
- steps F9 to F13 may be executed prior to step F5.
- the polynomial f A generated in step B2 by the first template generation unit 212 in the registration request apparatus 210 is based on the registration vector A. It is assumed that the polynomial f B generated by the first response generation unit 233 in the authentication requesting device 130 in step C16 is a polynomial generated according to the above equation 21 based on the authentication vector.
- the method of generating the two polynomials in the fourth exemplary embodiment is not limited to the above method.
- the polynomial f A generated by the first template generation unit 212 in the registration request device 210 in step B 2 is a polynomial generated according to the above equation 21 based on the registration vector A, and the first response generation unit 233 in the authentication request device 230.
- a user who requests authentication does not present his / her identifier, and verifies all registered information and information used for authentication. It is possible to safely implement 1: N authentication. That is, it has the following two effects.
- the registration vector extracted by the registration requesting device 210 is encrypted on the registration requesting device 210 and sent to the storage device 220.
- the authentication vector extracted by the authentication requesting device 230 is encrypted on the authentication requesting device 230 and sent to the verification assisting device 240.
- the ciphertext can be decrypted by the verification device 250 having a decryption key, but the data received by the verification device 250 is a ciphertext of the Euclidean distance between the registration vector and the authentication vector. The value is not disclosed.
- a value other than the distance between the registration vector and the authentication vector is not leaked to a device other than the device that extracts each vector, It is possible to calculate the distance between the authentication vectors.
- the ciphertext matching system 200 even when authenticating with the same registration vector, processing using the random number selected in step C5 is performed. Therefore, even if the communication content of the verification process is leaked, the distance equal to the distance at the time of the leaked verification is calculated by resending the leaked content or sending data created using the leaked content Or a small value cannot be calculated.
- the ciphertext matching system 200 when used for authentication that accepts when the distance is smaller than the threshold, an attacker who does not know the registered vector is not accepted.
- the property ie, resistance to spoofing attacks.
- the ciphertext matching system 200 according to the fourth exemplary embodiment is configured using an encryption method described in Non-Patent Document 1, which is an encryption method capable of high-speed processing. Therefore, high-speed collation processing is possible.
- the verification device 250 having the decryption key can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector.
- the verification device 250 having a decryption key can be transformed into a method that cannot calculate the Euclidean distance between the registration vector and the authentication vector.
- a method that does not disclose the Euclidean distance between the registration vector and the authentication vector for the verification device 250 having the decryption key means that the verification device 250 having the decryption key calculates the value of the registration vector even under special circumstances. Can be prevented. For this reason, higher safety can be achieved.
- biometric authentication using a multi-value vector as a feature amount can be mentioned.
- the input data in the registration phase and the input data in the verification phase are biometric information (feature vectors) obtained from biometric information obtained from fingerprints or veins.
- biometric information feature vectors
- the encrypted biometric data stored in the storage device and the encrypted biometric data created from the verification requesting device are collected from the same person while the biometric information is kept secret. It can be determined whether the distance between the two pieces of biological information is equal to or less than a threshold value.
- biometric information cannot always stably acquire the same data, and the data acquired from the same person is similar (data with a small distance between each element can be acquired). Can be assumed. For this reason, the present invention is useful for biometric authentication and the like.
- Ciphertext collation system 110 210 Registration request device 111, 211 Registration information extraction unit 112, 212 First template generation unit 113, 213 Second template generation unit 114, 214 Template generation unit 120, 220 Storage devices 121, 221 Identifier assignment unit 122, 222 Registration data generation unit 123, 223 Registration data storage unit 124 Registration data search unit 130, 230 Authentication request device 131, 231 Authentication request generation unit 132, 232 Authentication information extraction unit 133, 233 First response generation unit 134, 234 Second response generation unit 135, 235 Response generation unit 140, 240 Verification assistant device 141, 241 Challenge auxiliary generation unit 142, 242 Challenge generation unit 143, 243 Registration data request generation unit 144, 244 Encryption inner product calculation Units 145 and 245 Query generation units 150 and 250 Verification devices 151 and 251 Key generation units 152 and 252 Decryption key storage units 153 and 253 Query verification units 154 and 254 Verification result generation unit 246 Verification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Collating Specific Patterns (AREA)
Abstract
Description
(関連出願についての記載)
本発明は、日本国特許出願:特願2016-072770号(2016年3月31日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は暗号化技術に関し、特に、暗号文照合システム、ノード装置、暗号文照合方法、およびプログラムに関する。
(Description of related applications)
The present invention is based on the priority claim of Japanese Patent Application No. 2016-072770 (filed on Mar. 31, 2016), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to encryption technology, and in particular, to a ciphertext verification system, a node device, a ciphertext verification method, and a program.
クラウドコンピューティング(クラウド)が普及するにつれ、クライアントが通信ネットワークに通信接続しているクラウド側の計算機資源を用いて当該クライアントのデータを管理するクラウドサービスが広く普及している。該サービスは、例えばクライアントの機密性の高いデータを管理することから、クラウド側では、該サービスにおいて扱われるデータが安全であることを保証する必要がある。 As cloud computing (cloud) becomes widespread, cloud services that manage client data using cloud-side computer resources that are connected to a communication network by clients are becoming widespread. For example, since the service manages highly confidential data of the client, it is necessary to ensure that the data handled in the service is secure on the cloud side.
利用者が通信ネットワークに自由に通信接続可能(オープン)なネットワーク環境において、データを暗号化されたままの状態で管理し、データを復号することなく、検索や、統計処理等を行う技術の研究開発が行われている。 Research on technology that manages data in an encrypted state in a network environment where users can freely connect to a communication network (open), and performs searches, statistical processing, etc. without decrypting the data Development is underway.
近時、パスワード、または、磁気カードを用いた個人認証における脆弱性を利用した犯罪が頻発している。この結果、指紋、または、静脈等の生体が有する特徴に基づいた情報(生体情報)を用いて、より安全性の高い認証を実現する生体認証技術が注目を集めている。 Recently, crimes using vulnerabilities in personal authentication using passwords or magnetic cards have frequently occurred. As a result, biometric authentication technology that realizes authentication with higher safety using information (biometric information) based on characteristics of a biometric feature such as fingerprints or veins has attracted attention.
良く知られた生体認証技術の典型例の一つにおいては、登録対象である生体から抽出した生体情報に基づきクライアントがテンプレートを作成し、作成されたテンプレートがサーバに送信され、サーバで保管される。生体認証技術において、サーバは、認証対象である生体からクライアントが抽出した生体情報と、サーバに保管されているテンプレート(クライアントが作成しサーバに送信したテンプレート)とを用いて照合処理を行う。 In one typical example of well-known biometric authentication technology, a client creates a template based on biometric information extracted from a biometric subject to registration, and the created template is transmitted to the server and stored in the server. . In the biometric authentication technology, the server performs matching processing using biometric information extracted by the client from the biometric subject to authentication and a template stored in the server (a template created by the client and transmitted to the server).
同一の生体から抽出された複数の生体情報は完全に一致するとは限らないが、ある距離関数を用いて距離を測定すると、同一の生体から抽出された複数の生体情報間の距離は、異なる生体からそれぞれ抽出された複数の生体情報間の距離と比べて、短いことが知られている。 A plurality of pieces of biological information extracted from the same living body do not always match completely. However, when a distance is measured using a certain distance function, the distance between the plurality of pieces of biological information extracted from the same living body is different. It is known that the distance is shorter than the distance between a plurality of pieces of biometric information extracted from each.
生体認証技術は、上記の性質を利用することによって、登録対象に基づいて生成されたテンプレートと、認証対象に基づいて作成された生体情報との照合を行う。すなわち、生体認証技術においては、
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報が類似(または、一致)している場合に、認証対象を受理する。
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報が類似(または、一致)していない場合に、認証対象を受理しない。
The biometric authentication technology uses the above-described properties to collate a template generated based on a registration target with biometric information created based on the authentication target. That is, in biometric authentication technology,
The authentication target is accepted when the biological information extracted from the biometric target that is the registration target and the biometric information extracted from the biometric target that is the authentication target are similar (or coincident).
The authentication target is not accepted when the biometric information extracted from the biometric target to be registered and the biometric information extracted from the biometric target to be authenticated are not similar (or matched).
一般的に、生体情報の類似は、上記したように、距離によって判定される。すなわち、
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報との間の距離が、事前に定められた閾値以下であれば受理される。
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報との間の距離が、事前に定められた閾値より大きければ、受理されない。
Generally, the similarity of biometric information is determined by distance as described above. That is,
-It will be accepted if the distance between the biological information extracted from the living body to be registered and the biological information extracted from the living body to be authenticated is equal to or less than a predetermined threshold.
-If the distance between the biometric information extracted from the biometric target to be registered and the biometric information extracted from the biometric target to be authenticated is larger than a predetermined threshold value, it is not accepted.
例えば、指紋、静脈等の生体が有する特徴は、生涯不変のデータとされている。生体情報が照合システムの外部に漏洩された場合の被害が甚大であるので、生体情報は、機密性が要求される情報の一つである。したがって、たとえ、登録対象である生体から抽出した生体情報に基づき生成したテンプレートと認証対象に基づいて作成された生体情報との照合を行う照合システムから、外部に、該テンプレートが漏洩したとしても、生体情報が外部に漏洩しない性質を満たすことが望ましい。 For example, the characteristics of living bodies such as fingerprints and veins are data that does not change throughout life. Since the damage caused when the biometric information is leaked outside the verification system is enormous, the biometric information is one of information that requires confidentiality. Therefore, even if the template leaks to the outside from a collation system that collates a template generated based on biometric information extracted from a biometric subject to registration and biometric information created based on an authentication target, It is desirable to satisfy the property that biological information does not leak outside.
また、生体認証技術では、他の認証技術と同様に、生体情報を登録した生体と異なる生体が登録対象の生体になりすますこと(すなわち、「なりすまし」)を防ぐ必要がある。例えば、特定の値を照合システムに送信することによって、認証に成功してしまうような認証技術は、なりすましへの耐性が十分でないといえる。 Also, in the biometric authentication technology, as with other authentication technologies, it is necessary to prevent a biometric body different from the biometric registered biometric information from impersonating the biometric subject of registration (ie, “spoofing”). For example, it can be said that an authentication technique that succeeds in authentication by transmitting a specific value to the verification system is not sufficiently resistant to impersonation.
さらに、認証技術においては、テンプレートが漏洩してしまうリスクだけでなく、認証時の通信内容が盗聴(傍受)されるリスクもある。認証技術においては、通信内容が盗聴されたとしても、上記したなりすましを防ぐ必要がある。例えば、認証対象が受理された場合に、照合システムへ送信されたデータを、再送することにより、再度受理される方式は、なりすましへの耐性が十分でない。 Furthermore, in the authentication technology, there is a risk that the communication content at the time of authentication is wiretapped (intercepted) as well as the risk of the template leaking. In the authentication technology, it is necessary to prevent the above-mentioned impersonation even if the communication content is wiretapped. For example, when an authentication target is accepted, a method in which data transmitted to the verification system is re-accepted by resending the data is not sufficiently resistant to impersonation.
例えば、非特許文献2には、登録対象である生体から抽出された生体情報や、認証対象である生体から抽出された生体情報を秘匿したまま、認証を行うことを可能とした生体認証方式が開示されている。また、非特許文献1には、加法及び乗法に関する準同型性を持つ準同型暗号方式が開示されている。
For example, Non-Patent Document 2 discloses a biometric authentication method that enables authentication while keeping biometric information extracted from a biometric subject to be registered and biometric information extracted from a biometric subject being authenticated. It is disclosed. Non-Patent
準同型暗号方式について概説する。準同型暗号方式は、準同型あるいは準同型性(homomorphism)と呼ばれる特殊な性質を持つ公開鍵暗号方式である。 Outline of homomorphic encryption method. The homomorphic cryptosystem is a public key cryptosystem having a special property called homomorphism or homomorphism.
公開鍵暗号方式は、
・公開鍵(「暗号化鍵」という)、及び、秘密鍵(「復号鍵」という)を生成するアルゴリズム(鍵生成アルゴリズム)、
・生成した暗号化鍵を用いてメッセージを暗号化するアルゴリズム(暗号化アルゴリズム)、及び、
・生成した復号鍵を用いて暗号文を復号するアルゴリズム(復号アルゴリズム)
を含む。
Public key cryptography is
An algorithm (key generation algorithm) for generating a public key (referred to as “encryption key”) and a secret key (referred to as “decryption key”);
-An algorithm that encrypts the message using the generated encryption key (encryption algorithm), and
-An algorithm for decrypting ciphertext using the generated decryption key (decryption algorithm)
including.
鍵生成アルゴリズム(「Gen」と表記する)は、セキュリティパラメータλに基づき、暗号化鍵pkと、復号鍵skとを算出するアルゴリズムであり、
Gen(λ)→(pk,sk) ・・・(式1)
と表される。セキュリティパラメータλは、暗号の安全性を表す尺度であり、暗号化鍵や復号鍵の長さを決定するパラメータである。
The key generation algorithm (denoted as “Gen”) is an algorithm for calculating the encryption key pk and the decryption key sk based on the security parameter λ.
Gen (λ) → (pk, sk) (Formula 1)
It is expressed. The security parameter λ is a measure representing the security of encryption, and is a parameter that determines the length of the encryption key and the decryption key.
暗号化アルゴリズム(「Enc」と表記する)は、暗号化鍵pkと、メッセージxとに基づき、暗号化鍵pkを用いてメッセージxが暗号化された暗号文cを算出するアルゴリズムであり、
Enc(pk,M)→c ・・・(式2)
と表される。
The encryption algorithm (denoted as “Enc”) is an algorithm for calculating a ciphertext c in which the message x is encrypted using the encryption key pk based on the encryption key pk and the message x.
Enc (pk, M) → c (Formula 2)
It is expressed.
復号アルゴリズム(「Dec」と表記する)は、復号鍵skと暗号文cとに基づき、復号鍵skを用いて暗号文cが復号された復号結果Xを算出するアルゴリズムであり、
Dec(sk,c)→X ・・・(式3)
と表される。
The decryption algorithm (denoted as “Dec”) is an algorithm for calculating a decryption result X obtained by decrypting the ciphertext c using the decryption key sk based on the decryption key sk and the ciphertext c.
Dec (sk, c) → X (Expression 3)
It is expressed.
ただし、
A(B)→C ・・・(式4)
は、アルゴリズムAにBを入力すると、Cが出力される、ことを意味する。
However,
A (B) → C (Formula 4)
Means that if B is input to algorithm A, C is output.
公開鍵暗号方式は、次の式5に示す条件を満たす場合に、準同型性を持つ。 The public key cryptosystem has homomorphism when the condition shown in the following formula 5 is satisfied.
Enc(pk,x1#x2)=Enc(pk,x1)@Enc(pk,x2) ・・・(式5) Enc (pk, x1 # x2) = Enc (pk, x1) @Enc (pk, x2) (Formula 5)
ただし、#、及び、@は、それぞれ2項演算子を表す。また、x1、及び、x2は、それぞれ、メッセージを表す。 However, # and @ each represent a binary operator. X1 and x2 each represent a message.
特に、#が加算である場合、式5に示す条件を満たす公開鍵暗号方式は、加算について準同型性を持つという。この場合のEnc(pk,x1)@Enc(pk,x2)の計算を、「暗号文の加算」と呼ぶ。 Especially, when # is addition, a public key cryptosystem that satisfies the condition shown in Equation 5 is said to have homomorphism for addition. The calculation of Enc (pk, x1) @Enc (pk, x2) in this case is called “addition of ciphertext”.
また、#が乗算である場合に、式5に示す条件を満たす公開鍵暗号方式は、乗算について準同型性を持つという。この場合のEnc(pk,x1)@Enc(pk,x2)の計算を、「暗号文の乗算」と呼ぶ。 Also, when # is multiplication, a public key cryptosystem that satisfies the condition shown in Expression 5 is said to have homomorphism for multiplication. The calculation of Enc (pk, x1) @Enc (pk, x2) in this case is called “ciphertext multiplication”.
さらに、暗号文の加算や暗号文の乗算を応用することにより、次の式6に示す条件を満たす準同型暗号も存在する。 Furthermore, by applying ciphertext addition and ciphertext multiplication, there are homomorphic ciphers that satisfy the condition shown in Equation 6 below.
Enc(pk,n#x)=Enc(pk,x)@n ・・・(式6) Enc (pk, n # x) = Enc (pk, x) @n (Expression 6)
ただし、#、及び、@は、それぞれ2項演算子を表す。また、x、及び、nは、それぞれ、メッセージを表す。 However, # and @ each represent a binary operator. X and n each represent a message.
特に、#が加算である場合、式6に示す条件を満たす公開鍵暗号方式は、スカラー倍について準同型性を持つという。この場合のEnc(pk,x)@nの計算を、「暗号文のスカラー倍」と呼ぶ。 Especially, when # is addition, a public key cryptosystem that satisfies the condition shown in Equation 6 is said to have homomorphism with respect to scalar multiplication. The calculation of Enc (pk, x) @n in this case is called “scalar multiplication of ciphertext”.
非特許文献1に記載された、加法及び乗法について準同型性を持つ準同型暗号方式について説明する。この方式は、メッセージとして多項式を扱う、ring-LWE問題の困難性に基づく暗号である。ring-LWE問題の困難性に基づく暗号の特徴として、演算が高速に行えることが挙げられる。
A homomorphic encryption method having homomorphism for addition and multiplication described in
鍵生成アルゴリズムは入力として、主に4つのパラメータN、q、t、σを受け取る。 The key generation algorithm mainly receives four parameters N, q, t, and σ as inputs.
Nは2冪の整数で、多項式xN+1による剰余環である多項式環R=Z[x]/<xN+1>を定める。 N is an integer of 2 冪 and defines a polynomial ring R = Z [x] / <x N +1> that is a remainder ring by the polynomial x N +1.
qは2Nを法として1と合同(q≡1 mod 2N)な素数であり、暗号文空間を表す多項式環Rq=R/qR=Zq[x]/<xN+1>を定める(Rqの元は、各係数が群Zqの元である(N-1)次多項式)。 q is a prime number congruent with 1 (q≡1 mod 2N) modulo 2N, and defines a polynomial ring R q = R / qR = Z q [x] / <x N +1> representing the ciphertext space (Rq Is an (N-1) th order polynomial) where each coefficient is an element of the group Zq.
tはqより小さい正の整数(素数とは限らない)であり、暗号方式における平文空間を表す多項式環Rt=R/tR=(Z/tZ)[x]/<xN+1>を定める(Rtの元は、各係数が剰余群Z/tZの元である(N-1)次多項式)。 t is a positive integer smaller than q (not necessarily a prime number), and defines a polynomial ring R t = R / tR = (Z / tZ) [x] / <x N +1> representing a plaintext space in the cryptosystem. (The element of R t is an (N−1) th order polynomial in which each coefficient is an element of the remainder group Z / tZ).
σは、N次元離散ガウス分布χ=D(ZN,σ)の標準偏差である。N次元離散ガウス分布によってサンプルされるN次元整数ベクトルは、標準偏差がσであるガウス分布(正規分布とも呼ばれる)に従う実数値を丸めた整数値を各成分に持つベクトルである。
標準偏差がσであるN次元離散ガウス分布の確率密度関数は、
σ is the standard deviation of the N-dimensional discrete Gaussian distribution χ = D (Z N , σ). An N-dimensional integer vector sampled by an N-dimensional discrete Gaussian distribution is a vector having, as components, integer values obtained by rounding real values according to a Gaussian distribution (also called normal distribution) having a standard deviation of σ.
The probability density function of an N-dimensional discrete Gaussian distribution with a standard deviation of σ is
標準偏差がσであるN次元離散ガウス分布χ=D(ZN,σ)から、多項式ε(x)∈Rがサンプルされる。多項式の加算と乗算はmodulo(xN+1,q)で定義される。 A polynomial ε (x) εR is sampled from an N-dimensional discrete Gaussian distribution χ = D (Z N , σ) with a standard deviation σ. Polynomial addition and multiplication are defined by modulo (x N + 1, q).
次に、標準偏差がσであるN次元離散ガウス分布χからサンプリングされた元(N-1次多項式)s∈Rを一つ固定する。 Next, one element (N−1 order polynomial) s∈R sampled from the N-dimensional discrete Gaussian distribution χ with standard deviation σ is fixed.
次に、Rqから一様ランダムにサンプルした環の要素(各係数がqより小さいN-1次多項式)p1∈Rqとする。標準偏差がσであるN次元離散ガウス分布χから得られる元e∈Rをとる。 Next, it is assumed that ring elements (N-1th order polynomials where each coefficient is smaller than q) p 1 ∈R q sampled uniformly and randomly from R q . An element eεR obtained from an N-dimensional discrete Gaussian distribution χ with a standard deviation of σ is taken.
次に、
p0=-(p1×s+t×e) ・・・(式8)
を計算する。
next,
p 0 = − (p 1 × s + t × e) (Equation 8)
Calculate
pk=(p0,p1) ・・・(式9)
を公開鍵(暗号化鍵)とし、
sk=s ・・・(式10)
を秘密鍵(復号鍵)とする。
pk = (p 0 , p 1 ) (Equation 9)
Is the public key (encryption key)
sk = s (Equation 10)
Is a secret key (decryption key).
ただし、多項式p0の計算時のように、多項式の積を計算する場合において、多項式の次数がN以上となった場合には、以下のような置き換えが行われる。 However, in the case of calculating the product of the polynomial as in the case of calculating the polynomial p 0 , when the degree of the polynomial is N or more, the following replacement is performed.
xN=(xN+1)-1=-1 mod(xN+1) ・・・(式11-1)
xN+1=x(xN+1)-x=-x mod(xN+1) ・・・(式11-2)
x N = (x N +1) -1 = −1 mod (x N +1) (Formula 11-1)
x N + 1 = x (x N +1) -x = -x mod (x N +1) ··· ( Equation 11-2)
さらに、多項式の和や積を計算する場合において、各係数がq以上となった場合には、その係数をqで割った余りに置き換えて計算する(mod q)。これにより、計算される多項式は、常に、各係数がqより小さい、N-1次以下の多項式となる。以下の計算においても同様に行う。 Furthermore, when calculating the sum or product of polynomials, if each coefficient is equal to or greater than q, the coefficient is calculated by replacing it with the remainder divided by q (mod q). As a result, the calculated polynomial is always an N-1 or lower order polynomial in which each coefficient is smaller than q. The same applies to the following calculations.
暗号化アルゴリズムは、入力として、上記の鍵生成アルゴリズムに入力された4つのパラメータの組(N,q,t,σ)、上記の鍵生成アルゴリズムで生成した暗号化鍵pk=(p0,p1)およびメッセージxを受けとる。 The encryption algorithm includes, as inputs, a set of four parameters (N, q, t, σ) input to the above key generation algorithm, and an encryption key pk = (p 0 , p generated by the above key generation algorithm) 1 ) and message x are received.
ただし、メッセージx(x∈Rt)は、各係数がtより小さい、N-1次多項式である。 However, the message x (xεR t ) is an N−1 order polynomial in which each coefficient is smaller than t.
次に、3つのN-1次多項式u、gおよびfを、標準偏差がσであるN次元離散ガウス分布χに従って生成する。 Next, three N−1 order polynomials u, g, and f are generated according to an N-dimensional discrete Gaussian distribution χ having a standard deviation of σ.
次に、N-1次多項式u、gおよびf、暗号化鍵(公開鍵)pk、tから、
c0=p0×u+t×g+x ・・・(式12-1)
c1=p1×u+t×f ・・・(式12-2)
を計算する。
Next, from the N−1th order polynomials u, g and f and the encryption key (public key) pk, t,
c 0 = p 0 × u + t × g + x (Formula 12-1)
c 1 = p 1 × u + t × f (Formula 12-2)
Calculate
そして、
c=(c0,c1)∈(Rq)2 ・・・(式13)
を暗号文(ciphertext)として出力する。
And
c = (c 0 , c 1 ) ∈ (R q ) 2 (Equation 13)
Are output as ciphertext.
復号アルゴリズムは入力として、上記の鍵生成アルゴリズムに入力された4つのパラメータの組(N,q,t,σ)、上記の復号鍵skおよび暗号文
c=(c0,c1)∈(Rq)2または(c0,c1,c2)∈(Rq)3
を受け取る。以下、前者の場合は、c2=0であるとみなす。
The decryption algorithm receives as input the four parameter pairs (N, q, t, σ) input to the key generation algorithm, the decryption key sk, and the ciphertext c = (c 0 , c 1 ) ∈ (R q ) 2 or (c 0 , c 1 , c 2 ) ε (R q ) 3
Receive. Hereinafter, in the former case, it is considered that c 2 = 0.
次に、
C=c0+c1×sk+c2×sk2 ・・・(式14)
を計算する。
next,
C = c 0 + c 1 × sk + c 2 × sk 2 (Expression 14)
Calculate
暗号文が含む多項式の数をl+1とすると、
c=(c0,・・・,cl)∈(Rq)l+1について、
C=Σi=0~lciski∈Rq ・・・(式15)
を計算する。
If the number of polynomials included in the ciphertext is l + 1,
For c = (c 0 ,..., c l ) ∈ (R q ) l + 1 ,
C = Σ i = 0 to l c i sk i ∈ R q (Equation 15)
Calculate
Cをqで割った余りをDとする。Dがq/2以上である場合には、DをD-qに変更する。これは、Dのqを法とした[-q/2,q/2)への剰余演算である。 Suppose D is the remainder of dividing C by q. If D is greater than or equal to q / 2, D is changed to Dq. This is a remainder operation to [−q / 2, q / 2) modulo D of q.
次に、Dをtで割った余り(D mod t)を復号結果Xとして出力する。 Next, the remainder (D mod t) obtained by dividing D by t is output as a decryption result X.
この公開鍵暗号方式は,加法及び情報について準同型性を持つ。 This public key cryptosystem has homomorphism in addition and information.
2つのメッセージxおよびyについて、その暗号文をそれぞれ
Enc(pk,x)→(c0,c1) ・・・(式16-1)
Enc(pk,y)→(d0,d1) ・・・(式16-2)
とする。
For the two messages x and y, the ciphertexts are respectively Enc (pk, x) → (c 0 , c 1 ) (Equation 16-1)
Enc (pk, y) → (d 0 , d 1 ) (Equation 16-2)
And
このとき、暗号文の加算は、
Enc(pk,x)+Enc(pk,y)=(c0+d0,c1+d1) ・・・(式17)
によって計算できる。
At this time, the addition of the ciphertext is
Enc (pk, x) + Enc (pk, y) = (c 0 + d 0 , c 1 + d 1 ) (Expression 17)
Can be calculated by
暗号文の加算において、x=yである場合を応用すると、tより小さい任意の整数nについて、暗号文のスカラー倍を計算できる。すなわち、暗号文のスカラー倍は、
n×Enc(pk,x)=(n×c0,n×c1) ・・・(式18)
によって計算できる。
Applying the case of x = y in the addition of ciphertext, a scalar multiple of the ciphertext can be calculated for any integer n smaller than t. That is, the scalar multiple of the ciphertext is
n × Enc (pk, x) = (n × c 0 , n × c 1 ) (Equation 18)
Can be calculated by
暗号文の乗算は、
Enc(pk,x)@Enc(pk,y)=(c0×d0,c0×d1+c1×d0,c1×d1) ・・・(式19)
によって計算できる。
Ciphertext multiplication is
Enc (pk, x) @Enc (pk, y) = (c 0 × d 0 , c 0 × d 1 + c 1 × d 0 , c 1 × d 1 ) (Equation 19)
Can be calculated by
この公開鍵暗号方式はメッセージとして多項式を扱う。ベクトルは、その各成分を、多項式の各係数とみなすことにより、多項式とみなすことができる。したがって、この公開鍵暗号方式を用いてベクトルを暗号化することができる。 This public key cryptosystem handles polynomials as messages. A vector can be regarded as a polynomial by regarding each component as a coefficient of the polynomial. Therefore, the vector can be encrypted using this public key cryptosystem.
ベクトルを多項式にする方法を工夫し、さらに加法準同型性および乗法準同型性を利用することにより、2つのベクトルを暗号化したまま、その内積の暗号文を計算する方法について説明する。 Described below is a method of calculating a ciphertext of an inner product while encrypting two vectors by devising a method of converting vectors into polynomials and further using additive homomorphism and multiplicative homomorphism.
各成分がtより小さい、2つのL(L<N)次のベクトルを、
A=(a0,…,aL-1)、
B=(b0,…,bL-1)
とする。
Two L (L <N) order vectors, each component being smaller than t,
A = (a 0 ,..., A L−1 ),
B = (b 0 ,..., B L−1 )
And
ベクトルAの各成分は昇順に、ベクトルBの各成分は降順にそれぞれ係数として用いることにより、多項式fAおよびfBを、それぞれ式20、式21にしたがって得る。 Using the components of the vector A as the coefficients in the ascending order and the components of the vector B as the coefficients in the descending order, the polynomials f A and f B are obtained according to the equations 20 and 21, respectively.
fA(x)=Σi=0~L-1ai×xi ・・・(式20) f A (x) = Σ i = 0 to L−1 a i × x i (Equation 20)
fB(x)=-Σi=0~L-1bi×xN-i ・・・(式21) f B (x) = − Σ i = 0 to L−1 b i × x N−i (Expression 21)
ベクトルを多項式に変換するための式20および式21の計算方法をそれぞれ、「昇順多項式化」および「降順多項式化」と呼ぶ。二つの多項式fAおよびfBの積は次の通り計算される。 The calculation methods of Equation 20 and Equation 21 for converting a vector into a polynomial are called “ascending polynomialization” and “descending polynomialization”, respectively. The product of the two polynomials f A and f B is calculated as follows:
fA(x)×fB(x)=-Σi=N-L+1~N-1(Σj=0~i(aj×bN-i+j))xi+Σi=0~L-1Σj=i~L-1(aj×bj-i)xi ・・・(式22) f A (x) × f B (x) = − Σ i = NL + 1 to N−1 (Σ j = 0 to i (a j × b N−i + j )) x i + Σ i = 0 to L−1 Σ j = i to L−1 (a j × b j−i ) x i (Equation 22)
式22の多項式の定数項は、Σj(aj×bj)、すなわちベクトルA、Bの内積
<A,B>=Σi=0~n-1ai×bi ・・・(式23)
と等しい。
The constant term of the polynomial in Equation 22 is Σ j (a j × b j ), that is, the inner product of vectors A and B <A, B> = Σ i = 0 to n−1 a i × b i. 23)
Is equal to
各成分が0または1である2つのベクトル
A=(a0,…,aL-1)、
B=(b0,…,bL-1)
について、対応する成分のうち異なるものの個数をハミング距離dH(A,B)という。
Two vectors A = (a 0 ,..., A L−1 ), each component being 0 or 1;
B = (b 0 ,..., B L−1 )
, The number of different components among the corresponding components is referred to as a Hamming distance d H (A, B).
すなわち、各i(i=0,…,L-1)に対し、ai≠biを満たすiの数がハミング距離である。2つのベクトルのハミング距離は内積を用いて計算できる。 That is, for each i (i = 0,..., L−1), the number of i satisfying a i ≠ b i is the Hamming distance. The Hamming distance of two vectors can be calculated using the inner product.
N次元ベクトルCを、全成分が1であるベクトル、すなわちC=(1,…,1)とする。このとき、ハミング距離について、次の式24が成り立つ。 Suppose that the N-dimensional vector C is a vector in which all components are 1, that is, C = (1,..., 1). At this time, the following equation 24 holds for the Hamming distance.
dH(A,B)=<A,C>+<C,B>-2<A,B> ・・・(式24) d H (A, B) = <A, C> + <C, B> −2 <A, B> (Equation 24)
また、2つのベクトル
A=(a0,…,aL-1)、
B=(b0,…,bL-1)
について、A、B間のユークリッド距離は、
dE(A,B)=Σi=0~n-1(ai-bi)2 ・・・(式25)
で定義される。
Two vectors A = (a 0 ,..., A L−1 ),
B = (b 0 ,..., B L−1 )
For Euclidean distance between A and B,
d E (A, B) = Σ i = 0 to n−1 (a i −b i ) 2 (Equation 25)
Defined by
2つのベクトルのユークリッド距離は、次の式26の通り、内積を用いて計算できる。 The Euclidean distance between the two vectors can be calculated using the inner product as shown in Equation 26 below.
dE(A,B)=(Σi=0~n-1ai 2)+(Σi=0~n-1bi 2)-2<A,B> ・・・(式26) d E (A, B) = (Σ i = 0 to n−1 a i 2 ) + (Σ i = 0 to n−1 b i 2 ) −2 <A, B> (Equation 26)
非特許文献2に記載された生体認証方式は、上記の非特許文献1に記載された、加法及び乗法について、準同型性を持つ準同型暗号方式(Gen,Enc,Dec)を用いて構成される。
The biometric authentication method described in Non-Patent Document 2 is configured using homomorphic encryption methods (Gen, Enc, Dec) having homomorphism for addition and multiplication described in
この方式では、生体からN次未満のベクトルが抽出でき、同一の生体から抽出したベクトルのハミング距離は短く、異なる生体から抽出したベクトルのハミング距離は長いことを仮定する。ハミング距離の計算には、上記の式24を用いる。 In this method, it is assumed that vectors less than Nth order can be extracted from a living body, the hamming distance of vectors extracted from the same living body is short, and the hamming distance of vectors extracted from different living bodies is long. The above formula 24 is used for calculation of the Hamming distance.
非特許文献1に記載された生体認証方式は次のように実行される。各成分が0または1であるベクトルの形で表される生体情報
A=(a0,…,aL-1)
を登録する際に、クライアントは、ベクトルAを、上記の式20に従って昇順多項式化してfAとし、暗号化鍵pkを用いて暗号化した暗号文Enc(pk,fA)をテンプレートとして、サーバに記憶させる。
The biometric authentication method described in
, The client converts the vector A into an ascending polynomial according to the above equation 20 to be f A, and the ciphertext Enc (pk, f A ) encrypted using the encryption key pk as a template Remember me.
各成分が0または1であるベクトルの形で表される生体情報
B=(b0,…,bL-1)
について、認証を行う際に、クライアントは、ベクトルBを、上記の式21に従って降順多項式化してfBとし、暗号化鍵pkを用いて暗号化した暗号文Enc(pk,fB)をサーバに送付する。
Biological information B = (b 0 ,..., B L−1 ) represented in the form of a vector in which each component is 0 or 1
For, when performing the authentication, the client, the vector B, and f B and descending polynomial in accordance with Equation 21 above, the ciphertext Enc (pk, f B) encrypted using the encryption key pk to the server Send.
サーバは、全ての係数が1である多項式
fC=Σi=0~n-1xi ・・・(式27)
を暗号化鍵pkを用いて暗号化したEnc(pk、fC)を計算し、上記式24に従って、
Enc(pk,fA)@Enc(pk,fC)+Enc(pk,fC)@Enc(pk,fB)-2Enc(pk,fA)@Enc(pk,fB) ・・・(式28)
を計算する。
The server uses a polynomial f C = Σ i = 0 to n−1 x i (equation 27) in which all coefficients are 1.
Is calculated using the encryption key pk, and Enc (pk, f C ) is calculated.
Enc (pk, f A) @Enc (pk, f C) + Enc (pk, f C) @Enc (pk, f B) -2Enc (pk, f A) @Enc (pk, f B) ··· ( Equation 28)
Calculate
これを、当該サーバおよび当該クライアントとは異なる復号鍵を持つエンティティに送ることにより、該エンティティが、暗号文を復号する。 This is sent to an entity having a decryption key different from that of the server and the client, so that the entity decrypts the ciphertext.
該エンティティで復号して得られたメッセージである多項式の定数項が、2つのベクトルAおよびBのハミング距離dH(A、B)である。 A constant term of a polynomial, which is a message obtained by decoding with the entity, is a Hamming distance d H (A, B) between two vectors A and B.
得られたハミング距離が、事前に定められた閾値と比べて長いか短いかによって、認証結果を決められる。 The authentication result can be determined depending on whether the obtained Hamming distance is longer or shorter than a predetermined threshold.
また、非特許文献3には、非特許文献2の方法と、上記式26(2つのベクトルの距離)を用いることにより、ユークリッド距離の長短による認証を行うこともできることが指摘されている。 Further, it is pointed out that non-patent document 3 can also perform authentication based on the length of the Euclidean distance by using the method of non-patent document 2 and the above equation 26 (distance between two vectors).
また、非特許文献2の方式は、なりすまし攻撃への耐性を持たない。例えば、通信内容が盗聴された場合であって、これが受理された場合に、照合システムへ送信されたデータを再送することにより、再度、受理される。 Also, the method of Non-Patent Document 2 does not have resistance to spoofing attacks. For example, when the communication content is wiretapped and accepted, it is accepted again by retransmitting the data transmitted to the verification system.
具体的には、クライアントが、生体情報B=(b0、…、bL-1)について認証を行う際に、該クライアントは、ベクトルBを、上記式21に従って、降順多項式化してfBとし、暗号文Enc(pk、fB)をサーバに送付し、受理されたとする。 Specifically, when the client authenticates the biometric information B = (b 0 ,..., B L−1 ), the client converts the vector B into a descending order polynomial according to the above equation 21 to f B. , The ciphertext Enc (pk, f B ) is sent to the server and accepted.
このEnc(pk、fB)を盗聴した攻撃者がEnc(pk、fB)をそのまま再送すると、攻撃者が受理されることになる。 The Enc (pk, f B) eavesdropping the attacker Enc (pk, f B) and the the resending it, so that the attacker is accepted.
非特許文献2および非特許文献3の方式では、復号鍵を持つエンティティが、生体情報間の距離を算出する。非特許文献4では、生体情報間の距離を得られるエンティティが能動的な攻撃を行うことができる状況下において、該エンティティによる登録された生体情報の復元を防ぐことができないことが指摘されている。さらに非特許文献4には、復号鍵を持つ該エンティティを含むすべてのエンティティに対して、生体情報間の距離を秘匿したまま、認証結果を計算する方法が記載されている。 In the methods of Non-Patent Document 2 and Non-Patent Document 3, an entity having a decryption key calculates a distance between biological information. In Non-Patent Document 4, it is pointed out that restoration of registered biometric information by the entity cannot be prevented in a situation where an entity that can obtain the distance between the biometric information can perform an active attack. . Furthermore, Non-Patent Document 4 describes a method of calculating an authentication result for all entities including the entity having a decryption key while keeping the distance between biometric information secret.
関連技術の分析を以下に与える。 Related technology analysis is given below.
非特許文献2に記載された生体認証方式は、ring-LWE問題の困難性に基づく暗号を用いて構成されているため、認証時の演算が軽い。 Since the biometric authentication method described in Non-Patent Document 2 is configured using encryption based on the difficulty of the ring-LWE problem, the computation at the time of authentication is light.
しかし、上記で述べたとおり、非特許文献2に記載された生体認証方式は、なりすましへの耐性が十分でない。 However, as described above, the biometric authentication method described in Non-Patent Document 2 is not sufficiently resistant to impersonation.
そこで、演算を高速に行うことができ、かつ、生体情報の漏洩やなりすまし攻撃を防ぐことができる生体認証方式が要望される。 Therefore, there is a demand for a biometric authentication method capable of performing calculations at high speed and preventing leakage of biometric information and spoofing attacks.
本発明の目的は、上述した課題に鑑みて創案されたものであって、その目的の一つは、演算の高速化、及び生体情報の漏洩やなりすまし攻撃を防ぐことを可能とする暗号文照合システム、ノード、方法、およびそのためのプログラムを提供することにある。 The object of the present invention was devised in view of the above-mentioned problems, and one of the objects is to perform ciphertext verification that makes it possible to increase the speed of computation and to prevent leakage of biometric information and spoofing attacks. A system, a node, a method, and a program therefor are provided.
本発明の一様態に係る暗号文照合システムは、登録要求装置と、照合補助装置と、認証要求装置と、検証装置とを含む。前記検証装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開する。前記登録要求装置は、数値ベクトルである登録情報を多項式化し、多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化する。前記照合補助装置は、前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する。前記認証要求装置は、数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助装置からの前記チャレンジと、に基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付する。前記照合補助装置は、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、前記登録要求装置で暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する。前記検証装置は、前記照合補助装置から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。 The ciphertext matching system according to one aspect of the present invention includes a registration requesting device, a verification assisting device, an authentication requesting device, and a verification device. The verification device calculates a pair of encryption keys and decryption keys of a homomorphic encryption method capable of performing a polynomial operation, and discloses the encryption key. The registration requesting apparatus polynomializes registration information that is a numerical vector, and encrypts the registration information that has been polynomialized using the encryption key. When receiving the authentication request from the authentication requesting device, the verification assisting device randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial is A challenge consisting of a ciphertext encrypted using an encryption key is sent to the authentication requesting device. The authentication requesting device polynomializes authentication information that is a numerical vector, and based on the authentication information that is polynomialized and the challenge from the verification auxiliary device, the authentication that is polynomialized using the encryption key A ciphertext of a product of information and the polynomial used to generate the challenge is calculated, and the ciphertext of the product of the authentication information polynomialized and the polynomial used to generate the challenge is the response As shown in FIG. The verification assisting device, upon receiving a response from the authentication requesting device, based on the response, a challenge assist consisting of the one coefficient and its order, and the registration information encrypted by the registration requesting device, A ciphertext of the distance between the registration information and the authentication information is calculated using an encryption key, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device. The verification device decrypts the encrypted text of the distance between the registration information and the authentication information received from the verification assisting device using the decryption key to calculate the distance, and the calculated distance or the distance And a comparison result with a predetermined threshold value are output as a comparison result.
本発明の一様態に係る装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出する検証装置が公開した前記暗号化鍵を取得する照合補助装置であって、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付するチャレンジ生成部と、数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受け、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を検証装置に送付するクエリ生成部と、を備える。前記検証装置では、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を照合結果として出力する。 An apparatus according to an aspect of the present invention is a verification assisting apparatus that acquires the encryption key published by a verification apparatus that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation, When an authentication request is received from the authentication requesting device, one coefficient and its order are selected at random, a polynomial with coefficients other than the order coefficient set to 0 is generated, and the polynomial is encrypted using the encryption key. A challenge generator configured to send a challenge composed of encrypted ciphertext to the authentication requesting device, and polynomialize authentication information that is a numerical vector, and based on the challenge, using the encryption key, the authentication information that is polynomialized and A ciphertext of a product of the polynomial used to generate the challenge is calculated, and the ciphertext of the product of the polynomialized authentication information and the polynomial used to generate the challenge is Registration information that is received as a response from the authentication requesting device, received as a response, challenge assistance consisting of the one coefficient and its order, and stored in a storage device encrypted by the registration requesting device A ciphertext of the distance between the registration information and the authentication information is calculated using the encryption key, and the ciphertext of the distance between the registration information and the authentication information is sent to a verification device. And comprising. In the verification device, the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance, and the calculated distance or the distance and a predetermined threshold value are calculated. The comparison result is output as a matching result.
本発明の一様態に係る装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する検証装置から前記暗号化鍵を取得する認証要求装置であって、数値ベクトルである認証情報を多項式化する認証情報抽出部と、照合補助装置に送信する認証要求を生成する認証要求生成部と、を備えている。さらに、前記認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する前記照合補助装置から前記チャレンジを受け取り、前記認証要求生成部で多項式化した前記認証情報と、前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして、前記照合補助装置に送付するレスポンス生成部をさらに備えている。前記照合補助装置では、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を、検証装置に送付する。 An apparatus according to an aspect of the present invention is an authentication request for obtaining a pair of encryption keys and decryption keys of a homomorphic encryption method capable of polynomial operations and obtaining the encryption key from a verification device that discloses the encryption key An authentication information extraction unit that polynomializes authentication information that is a numerical vector, and an authentication request generation unit that generates an authentication request to be transmitted to the verification auxiliary device. Further, upon receiving the authentication request, one coefficient and its order are selected at random, a polynomial in which coefficients other than the order coefficient are set to 0 is generated, and the polynomial is encrypted using the encryption key. The challenge received from the verification assistant device that sends a challenge composed of ciphertext to the authentication request device, and based on the authentication information polynomialized by the authentication request generator and the challenge, using the encryption key To calculate a ciphertext of the product of the authentication information polynomialized and the polynomial used to generate the challenge, and the product of the polynomialized authentication information and the polynomial used to generate the challenge The apparatus further includes a response generation unit that sends the ciphertext as a response to the verification assisting device. The verification assisting device uses the encryption key based on the response, challenge assistance consisting of the one coefficient and its order, and polynomialized registration information encrypted by the registration requesting device. The ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device.
本発明の一様態に係る装置は、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出する照合補助装置に接続される検証装置であって、多項式演算が可能な準同型暗号方式の前記暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する鍵生成部と、前記照合補助装置から前記登録情報と前記認証情報の距離の前記暗号文を受け取ると、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出するクエリ検証部と、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する照合結果生成部と、を備えている。 When receiving an authentication request from an authentication requesting device, an apparatus according to an aspect of the present invention randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial Is sent to the authentication requesting device and a response is received from the authentication requesting device. And a ciphertext of the distance between the registration information and the authentication information using the encryption key based on the registration information encrypted by the registration request device and stored in the storage device. A verification device connected to an auxiliary device, wherein the key generation unit calculates a pair of the encryption key and the decryption key of a homomorphic encryption method capable of performing a polynomial operation, and discloses the encryption key; When the ciphertext of the distance between the registration information and the authentication information is received from a device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance And a collation result generation unit that outputs the calculated distance or a comparison result between the distance and a predetermined threshold value as a collation result.
本発明の一様態における方法は、少なくとも一つのコンピュータによる暗号文処理方法であって、
(A)多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
(B)登録情報の登録にあたり、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
(C)照合補助処理では、
認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした多項式を生成し、
前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求の要求元に送付し、
(D)前記認証要求元では、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助処理からの前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助処理に送付し、
(E)前記照合補助処理では、
前記認証要求元からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を、検証先に送付し、
(F)前記検証先では、
前記照合補助処理から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。
The method according to one aspect of the present invention is a ciphertext processing method by at least one computer,
(A) calculating a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation, and publishing the encryption key;
(B) When registering registration information,
Registration information that is a numeric vector is polynomialized,
The registration information that has been polynomialized is encrypted using the encryption key,
(C) In the verification assistance process,
When receiving an authentication request, one coefficient and its order are selected at random,
Generating a polynomial in which the coefficients other than the coefficient of the order are 0;
Sending a challenge consisting of ciphertext encrypted using the encryption key to the request source of the authentication request, the polynomial,
(D) In the authentication request source,
The authentication information, which is a numeric vector, is polynomialized,
Based on the authentication information that has been polynomialized and the challenge from the verification auxiliary process, the encryption of the product of the authentication information that has been polynomialized and the polynomial that was used to generate the challenge, using the encryption key Calculate the sentence,
The ciphertext of the product of the polynomial authentication information and the polynomial used to generate the challenge is sent as the response to the verification assisting process,
(E) In the verification assistance process,
When receiving a response from the authentication request source, based on the response, challenge assistance consisting of the one coefficient and its order, and the encrypted registration information, the registration information is Calculate ciphertext of authentication information distance,
Send the ciphertext of the distance between the registration information and the authentication information to the verification destination,
(F) In the verification destination,
The encrypted text of the distance between the registration information and the authentication information received from the verification assisting process is decrypted using the decryption key to calculate the distance,
The calculated distance or a comparison result between the distance and a predetermined threshold is output as a matching result.
本発明の一様態に係るプログラムは、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する検証装置に接続され、認証要求装置に接続された照合補助装置を構成するコンピュータに、
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした多項式を生成し、
前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する処理と、
数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受ける処理と、
前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する処理と、を実行させるプログラムからなる。
A program according to an aspect of the present invention is connected to a verification device that calculates a pair of encryption keys and decryption keys of a homomorphic encryption method capable of polynomial operations and discloses the encryption key, and is connected to an authentication request device. In the computer that constitutes the verification assisting device,
Upon receiving an authentication request from the authentication requesting device, one coefficient and its order are randomly selected,
Generating a polynomial in which the coefficients other than the coefficient of the order are 0;
A process of sending a challenge consisting of a ciphertext obtained by encrypting the polynomial using the encryption key to the authentication requesting device;
The authentication information, which is a numerical vector, is polynomialized, and based on the challenge, a ciphertext of a product of the authentication information polynomialized and the polynomial used to generate the challenge is calculated using the encryption key, and the polynomial Processing to receive a response from the authentication requesting device that outputs the ciphertext of the product of the authentication information and the polynomial used to generate the challenge as a response;
Upon receiving a response from the authentication requesting device, the response, challenge assistance consisting of the one coefficient and its order, and polynomial registration information encrypted by the registration requesting device and stored in the storage device, Based on the encryption key, a ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device. It consists of a program to let you.
本発明の一様態に係るプログラムは、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出する検証装置が公開した暗号化鍵を取得し、
認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを認証要求装置に送付し、前記認証要求装置から受け取ったレスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する照合補助装置に接続された前記認証要求装置を構成するコンピュータに、
前記認証要求を生成して前記照合補助装置に送信する処理と、
前記照合補助装置からチャレンジを受け取る処理と、
数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助装置から受け取ったチャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付する処理と、を実行させるプログラムからなる。
The program according to one aspect of the present invention obtains an encryption key published by a verification device that calculates a pair of an encryption key and a decryption key of a homomorphic encryption method capable of a polynomial operation,
Upon receipt of the authentication request, one coefficient and its order are selected at random, a polynomial in which a coefficient other than the coefficient of the order is 0 is generated, and the polynomial is encrypted using the encryption key. To the authentication requesting device, the response received from the authentication requesting device, challenge assistance consisting of the one coefficient and its order, and the polynomialized registration information encrypted by the registration requesting device. Based on the encryption key, the ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is connected to a verification auxiliary device that sends the ciphertext to the verification device A computer constituting the authentication requesting device,
Processing to generate the authentication request and send it to the verification assistant device;
Receiving a challenge from the verification assisting device;
The authentication information that is a numerical vector is polynomialized, and the authentication information that is polynomialized using the encryption key based on the authentication information that is polynomialized and the challenge received from the verification auxiliary device, and generation of the challenge Calculate the ciphertext of the product with the polynomial used in
A program for executing the process of sending the ciphertext of the product of the authentication information polynomialized and the polynomial used for generating the challenge as the response to the verification assisting device.
本発明の一様態に係るプログラムは、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出する照合補助装置に接続される検証装置を構成するコンピュータに、
多項式演算が可能な準同型暗号方式の前記暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する鍵生成処理と、
前記照合補助装置から前記登録情報と前記認証情報の距離の前記暗号文を受け取ると、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号前記距離を算出するクエリ検証処理と、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する照合結果生成処理と、を実行させるプログラムからなる。本発明の一態様によれば、上記プログラムを記録したコンピュータ読み出し可能な記憶媒体(半導体メモリ、磁気ディスク媒体/光ディスク媒体等:non-transitory computer-readable recording medium)が提供される。
When receiving the authentication request from the authentication requesting device, the program according to an aspect of the present invention randomly selects one coefficient and its order, generates a polynomial in which coefficients other than the order coefficient are 0, and the polynomial Is sent to the authentication requesting device, and when a response is received from the authentication requesting device, the challenge is made up of the response, the one coefficient, and its order. And a ciphertext of the distance between the registration information and the authentication information using the encryption key based on the registration information encrypted by the registration request device and stored in the storage device. In the computer constituting the verification device connected to the auxiliary device,
A key generation process for calculating a pair of the encryption key and the decryption key of the homomorphic encryption method capable of performing a polynomial operation and publishing the encryption key;
When the ciphertext of the distance between the registration information and the authentication information is received from the verification assisting device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key, and query verification is performed to calculate the distance Processing,
It comprises a program for executing the calculated distance or a comparison result generating process for outputting a comparison result between the distance and a predetermined threshold value as a comparison result. According to one aspect of the present invention, there is provided a computer-readable storage medium (semiconductor memory, magnetic disk medium / optical disk medium, etc .: non-transitory computer-readable recording medium) in which the program is recorded.
本発明によれば、照合処理を高速に行い、平文データの漏洩やなりすまし攻撃を防ぐことを可能としている。 According to the present invention, it is possible to perform collation processing at high speed and prevent leakage of plain text data and spoofing attacks.
はじめに本発明の基本概念を説明する。本発明の一態様に係るシステム(暗号文照合システム)において、検証装置(手段)は、多項式演算が可能な準同型暗号方式の暗号化鍵pkと復号鍵skのペアを算出し、前記暗号化鍵pkを公開する。 First, the basic concept of the present invention will be described. In the system (ciphertext collation system) according to one aspect of the present invention, the verification device (means) calculates a pair of an encryption key pk and a decryption key sk of a homomorphic encryption method capable of a polynomial operation, and the encryption Publish the key pk.
登録要求装置(手段)(例えば図1の110)は、数値ベクトルである登録情報(A=(a0,…,aL-1))を多項式化し(例えばfA)、多項式化した前記登録情報を、前記暗号化鍵(pk)を用いて暗号化する(例えばEnc(pk,fA)、多項式の各係数(数値ベクトルの各成分)の2乗和Enc(pk,Σi=0~n-1ai 2))を含んでもよい)。 The registration requesting device (means) (for example, 110 in FIG. 1) polynomializes the registration information (A = (a 0 ,..., A L−1 )) that is a numerical vector (for example, f A ), and performs the above polynomial registration The information is encrypted using the encryption key (pk) (for example, Enc (pk, f A )), and the square sum Enc (pk, Σ i = 0 to 0 ) of each coefficient of the polynomial (each component of the numerical vector) n-1 a i 2 ))).
照合補助装置(手段)(例えば図1の140)は、認証要求装置(手段)(例えば図1の130)から認証要求を受けると、一つの係数(r)とその次数(h)をランダムに選択し、前記次数(h)の係数以外の係数を0とした多項式(r×xh)を生成し、前記多項式(r×xh)を、前記暗号化鍵pkを用いて暗号化した暗号文(Enc(pk,r×xh))からなるチャレンジを前記認証要求装置(手段)に送付する。 When the verification assisting device (means) (for example, 140 in FIG. 1) receives an authentication request from the authentication requesting device (means) (for example, 130 in FIG. 1), it randomly selects one coefficient (r) and its degree (h). And generating a polynomial (r × x h ) in which a coefficient other than the coefficient of the order (h) is 0, and encrypting the polynomial (r × x h ) using the encryption key pk A challenge consisting of a sentence (Enc (pk, r × x h )) is sent to the authentication requesting device (means).
前記照合補助装置(手段)は、前記認証要求装置(手段)からレスポンス(Enc(pk、(r×xh)×(fB))を受け取ると、前記レスポンスと、前記一つの係数(r)とその次数(h)からなるチャレンジ補助(r,h)と、登録要求装置(手段)(例えば図1の110)で暗号化された前記登録情報(Enc(pk,fA))とに基づき、前記暗号化鍵(pk)を用いて、前記登録情報Enc(pk,fA)と認証情報の暗号化内積(Enc(pk,fA×fB))を生成する。前記照合補助装置(手段)は、暗号化鍵(pk)と暗号化内積(Enc(pk,fA×fB))と、暗号化された登録情報(Enc(pk,Σi=0~n-1ai 2))と、前記レスポンスに含まれるEnc(pk,Σi=0~n-1bi 2)に基づき、距離(dE(A,B))の暗号文(Enc(pk,dE(A,B)))を算出する。 When the verification assisting device (means) receives a response (Enc (pk, (r × x h ) × (f B )) from the authentication requesting device (means), the response and the one coefficient (r) And the challenge assistance (r, h) consisting of the order (h) and the registration information (Enc (pk, f A )) encrypted by the registration requesting device (means) (eg, 110 in FIG. 1). Then, by using the encryption key (pk), an encrypted inner product (Enc (pk, f A × f B )) of the registration information Enc (pk, f A ) and authentication information is generated. Means) includes an encryption key (pk), an inner product (Enc (pk, f A × f B )), and encrypted registration information (Enc (pk, Σ i = 0 to n−1 a i 2). )) And Enc (pk, Σ i = 0 to n−1 b i included in the response) Based on 2), the distance ciphertext (d E (A, B) ) (Enc (pk, d E (A, B))) is calculated.
前記照合補助装置(手段)は、暗号化された前記登録情報と前記認証情報の距離の前記暗号文を検証装置(例えば図1の150)に送付する。 The verification assisting device (means) sends the encrypted text at a distance between the encrypted registration information and the authentication information to a verification device (for example, 150 in FIG. 1).
前記認証要求装置(手段)は、数値ベクトルである認証情報(b0,…,bL-1)を多項式化し、多項式化した前記認証情報と、前記照合補助装置(手段)から送信された前記チャレンジ(Enc(pk,r×xh)とに基づき、前記暗号化鍵(pk)を用いて、多項式化した前記認証情報(fB)と前記チャレンジの生成に用いられた前記多項式(r×xh)との積の暗号文(Enc(pk,(r×xh)×(fB)))、および、多項式の各係数(数値ベクトルの各成分)の2乗和の暗号文(Enc(pk,Σi=0~n-1bi 2))を算出する。 The authentication requesting device (means) polynomializes authentication information (b 0 ,..., B L-1 ) that is a numerical vector, and the authentication information that is polynomialized and the authentication information transmitted from the verification assisting device (means) Based on the challenge (Enc (pk, r × x h )), the authentication information (f B ) polynomialized using the encryption key (pk) and the polynomial (r × used for generating the challenge) x h ) product ciphertext (Enc (pk, (r × x h ) × (f B ))) and polynomial sum of squares (each component of a numerical vector) ciphertext (Enc (Pk, Σ i = 0 to n−1 b i 2 )) is calculated.
前記認証要求装置(手段)は、多項式化した前記認証情報(fB)と、前記チャレンジの生成に用いられた前記多項式(r×xh)との積の前記暗号文(Enc(pk,r×xh)×(fB))、および、多項式の各係数(数値ベクトルの各成分)の2乗和の暗号文(Enc(pk,Σi=0~n-1bi 2))を、前記レスポンスとして、前記照合補助装置(手段)に送付する。 The authentication requesting device (means) is configured to use the ciphertext (Enc (pk, r) of the product of the authentication information (f B ) converted into a polynomial and the polynomial (r × x h ) used for generating the challenge. × x h ) × (f B )) and the ciphertext of the sum of squares of each coefficient (each component of the numerical vector) of the polynomial (Enc (pk, Σ i = 0 to n−1 b i 2 )) The response is sent to the verification assisting device (means).
前記検証装置(手段)は、前記照合補助装置(手段)から受け取った、前記登録情報と前記認証情報の距離の暗号文(Enc(pk,dE(A,B)))を、前記復号鍵(sk)を用いて復号し、前記登録情報と前記認証情報の距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。 The verification device (means) receives the ciphertext (Enc (pk, d E (A, B))) between the registration information and the authentication information received from the verification assisting device (means) as the decryption key. Decoding using (sk), calculating the distance between the registration information and the authentication information, and outputting the calculated distance or a comparison result between the distance and a predetermined threshold as a comparison result.
本発明の一形態によれば、記憶装置(例えば図1の120)をさらに備えている。該記憶装置は、
登録データ記憶部(例えば図1の123)と、
前記登録要求装置(手段)から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部(手段)(例えば図1の121)と、
暗号化された前記登録情報と前記識別子との組からなる登録データを生成し前記登録データ記憶部に格納する登録データ生成部(手段)(例えば図1の122)と、
前記照合補助装置(手段)からの登録データ要求を受け、前記登録データ記憶部に記憶されている前記登録データの中から、前記登録データ要求に含まれる識別子と組とされている、暗号化された登録情報を、前記照合補助装置(手段)に送付する登録データ検索部(手段)(例えば図1の124)と、を備えた構成としてもよい。
According to one aspect of the invention, a storage device (eg, 120 in FIG. 1) is further provided. The storage device
A registered data storage unit (for example, 123 in FIG. 1);
An identifier giving unit (means) (for example, 121 in FIG. 1) for giving an identifier to the encrypted registration information received from the registration requesting device (means);
A registration data generation unit (means) (for example, 122 in FIG. 1) that generates registration data including a pair of the encrypted registration information and the identifier and stores the registration data in the registration data storage unit;
Upon receiving a registration data request from the verification assisting device (means), the encrypted data that is paired with an identifier included in the registration data request from the registration data stored in the registration data storage unit The registration information search unit (means) (for example, 124 in FIG. 1) for sending the registered information to the verification assisting device (means) may be provided.
この場合、前記照合補助装置(手段)は、前記認証要求装置(手段)から受け取った認証要求に含まれ、前記認証情報に対応する認証識別子を含む登録データ要求を前記記憶装置(手段)に送付する構成としてもよい。前記照合補助装置(手段)は、前記記憶装置(手段)から、前記認証識別子に対応する暗号化された前記登録情報を受け取り、前記認証要求装置(手段)から受け取った前記レスポンスと、前記チャレンジ補助と、前記記憶装置(手段)から受け取った暗号化された前記登録情報とに基づき、前記登録情報と前記認証情報の距離の暗号文を算出する構成としてもよい。 In this case, the verification assisting device (means) sends a registration data request included in the authentication request received from the authentication requesting device (means) and including an authentication identifier corresponding to the authentication information to the storage device (means). It is good also as composition to do. The verification assisting device (means) receives the encrypted registration information corresponding to the authentication identifier from the storage device (means), receives the response received from the authentication requesting device (means), and the challenge assisting And a ciphertext of the distance between the registration information and the authentication information may be calculated based on the encrypted registration information received from the storage device (means).
本発明の一形態によれば、記憶装置(例えば図5の220)をさらに備えている。該記憶装置は、
登録データ記憶部(例えば図5の223)と、
前記登録要求装置(手段)から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部(手段)(例えば図5の221)と、
暗号化された前記登録情報と前記識別子との組からなる登録データを生成し前記登録データ記憶部に格納する登録データ生成部(手段)(例えば図5の222)と、
を備えた構成としてもよい。
According to an embodiment of the present invention, the apparatus further includes a storage device (for example, 220 in FIG. 5). The storage device
A registered data storage unit (for example, 223 in FIG. 5);
An identifier giving unit (means) (for example, 221 in FIG. 5) for giving an identifier to the encrypted registration information received from the registration requesting device (means);
A registration data generation unit (means) (for example, 222 in FIG. 5) that generates registration data including a pair of the encrypted registration information and the identifier and stores the registration data in the registration data storage unit;
It is good also as a structure provided with.
この場合、前記照合補助装置(手段)(例えば図5の240)からの登録データ要求を受け、前記登録データ記憶部(図5の223)に格納されている一つ又は複数の登録データのうち、一部又はすべての登録データを、前記照合補助装置(手段)(図5の240)に送信する構成としてもよい。前記照合補助装置(手段)(図5の240)は、前記記憶装置(手段)から、一つ又は複数の登録データを受け取り、前記記憶装置(手段)から受け取った各登録データについて、前記認証要求装置(手段)(例えば図5の230)から受け取った前記レスポンスと、前記チャレンジ補助と、前記登録データに含まれる暗号化された登録情報とに基づき、暗号化された前記登録情報と前記認証情報の距離の暗号文を算出し、前記登録データについて、算出した前記登録情報と前記認証情報の距離の暗号文と、前記登録データに含まれる識別子との組を検証データとし、生成した一つ又は複数の前記検証データを前記検証装置(手段)(例えば図5の250)に送付する構成としてもよい。 In this case, a registration data request is received from the verification assisting device (means) (for example, 240 in FIG. 5), and one or a plurality of registration data stored in the registration data storage unit (223 in FIG. 5). A part or all of the registration data may be transmitted to the verification assisting device (means) (240 in FIG. 5). The verification assisting device (means) (240 in FIG. 5) receives one or a plurality of registration data from the storage device (means), and the authentication request for each registration data received from the storage device (means). The registration information and the authentication information encrypted based on the response received from the device (means) (for example, 230 in FIG. 5), the challenge assistance, and the encrypted registration information included in the registration data. A distance between the registration information and the authentication information distance, and a pair of identifiers included in the registration data as verification data, A plurality of verification data may be sent to the verification device (means) (for example, 250 in FIG. 5).
前記検証装置(手段)(図5の250)は、前記照合補助装置(手段)(図5の240)から、一つ又は複数の前記検証データを受け取り、各検証データについて、当該検証データに含まれる距離の暗号文を、前記復号鍵を用いて復号して距離を算出し、算出した前記距離と予め定められた閾値との比較結果、又は、算出した前記距離と前記検証データに含まれる識別子との組を、照合結果とし、該照合結果を出力する構成としてもよい。 The verification device (means) (250 in FIG. 5) receives one or a plurality of the verification data from the verification auxiliary device (means) (240 in FIG. 5), and each verification data is included in the verification data. The encrypted distance is decrypted using the decryption key, the distance is calculated, the comparison result between the calculated distance and a predetermined threshold, or the calculated distance and the identifier included in the verification data It is good also as a structure which makes a set and a collation result and outputs this collation result.
上記したように、本発明の一態様によれば、数値ベクトルである登録情報に基づき生成された多項式を暗号化鍵を用いて暗号化し、一つの項の係数が乱数でその他の項の係数が0である多項式を暗号化したチャレンジと、数値ベクトルである認証情報に基づき生成された多項式との積の暗号文を生成し、登録情報に基づき生成された多項式の暗号文と、前記チャレンジと、チャレンジと認証情報に基づき生成された多項式との積の暗号文と、から、登録情報と認証情報との距離の暗号文を生成する。そして、前記暗号文(前記登録情報と前記認証情報との距離の暗号文)を復号鍵を用いて復号し前記距離を算出する。 As described above, according to one aspect of the present invention, a polynomial generated based on registration information that is a numerical vector is encrypted using an encryption key, and the coefficient of one term is a random number and the coefficient of the other term is Generating a ciphertext of a product of a challenge that is a polynomial that is 0 and a polynomial that is generated based on authentication information that is a numerical vector, a ciphertext of a polynomial that is generated based on registration information, and the challenge, A ciphertext of the distance between the registration information and the authentication information is generated from the ciphertext of the product of the challenge and the polynomial generated based on the authentication information. Then, the ciphertext (ciphertext of the distance between the registration information and the authentication information) is decrypted using a decryption key to calculate the distance.
上記態様では、前記登録要求装置は、登録情報(登録ベクトル)の第i成分(ただしiはL-1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL-1次多項式(fA)を生成し、前記認証要求装置は認証情報(認証ベクトル)の第i成分(ただしiはL-1以下の非負整数)の逆元を、N-i次(NはLより大の正整数)の項の係数とするN次多項式を生成するが、前記登録要求装置が登録情報(登録ベクトル)の第i成分(ただしiはL-1以下の非負整数)の逆元を、N-i次(NはLより大の正整数)の項の係数とするN次多項式を生成し、認証要求装置が認証情報(認証ベクトル)の第i成分(ただしiはL-1以下の非負整数、Lは2以上の正整数)を、i次の項の係数とするL-1次多項式fAを生成してもよい。 In the above aspect, the registration requesting device uses an i-th component of registration information (registration vector) (where i is a non-negative integer equal to or less than L−1 and L is a positive integer equal to or greater than 2) as a coefficient of an i-th term. A first-order polynomial (fA) is generated, and the authentication requesting device calculates the inverse element of the i-th component (where i is a non-negative integer equal to or less than L-1) of the authentication information (authentication vector), the N-th order (N is N-th order polynomial is generated as a coefficient of a term of a positive integer greater than L), but the registration request device reverses the i-th component of registration information (registration vector) (where i is a non-negative integer less than or equal to L-1). An N-th order polynomial is generated with the element as a coefficient of a term of N-th order (N is a positive integer greater than L), and the authentication requesting device generates the i-th component of authentication information (authentication vector) (where i is L- A non-negative integer of 1 or less, L is a positive integer of 2 or more) is used to generate an L−1th order polynomial fA having an i-th order coefficient. There.
本発明の例示的な実施形態について図面を参照して詳細に説明する。 DETAILED DESCRIPTION Exemplary embodiments of the present invention will be described in detail with reference to the drawings.
以下の各例示的な実施形態では、本発明を生体認証として用いた場合について説明する。各実施形態の暗号文照合システムは、生体認証の用途に限定されない。 In each of the following exemplary embodiments, the case where the present invention is used as biometric authentication will be described. The ciphertext matching system of each embodiment is not limited to the use of biometric authentication.
(第1の実施形態)
図1は、第1の例示的な実施形態に係る暗号文照合システム100の構成を例示する図である。暗号文照合システム100は、コンピュータシステム等による情報処理システムから構成される。第1の例示的な実施形態に係る暗号文照合システム100は、大別して、登録要求装置110と、記憶装置120と、認証要求装置130と、照合補助装置140と、検証装置150とを有する。
(First embodiment)
FIG. 1 is a diagram illustrating a configuration of a
登録要求装置110は、登録情報抽出部111と、第一テンプレート生成部112と、第二テンプレート生成部113と、テンプレート生成部114とを有する。
The
記憶装置120は、識別子付与部121と、登録データ生成部122と、登録データ記憶部123と、登録データ検索部124とを有する。
The
認証要求装置130は、認証要求生成部131と、認証情報抽出部132と、第一レスポンス生成部133と、第二レスポンス生成部134と、レスポンス生成部135とを有する。
The
照合補助装置140は、チャレンジ補助生成部141と、チャレンジ生成部142と、登録データ要求生成部143と、暗号化内積計算部144と、クエリ生成部145とを有する。
The
検証装置150は、鍵生成部151と、復号鍵記憶部152と、クエリ検証部153と、照合結果生成部154とを有する。
The
登録要求装置110と記憶装置120、記憶装置120と照合補助装置140、認証要求装置130と照合要求装置140、照合補助装置140と検証装置150は、例えば、通信ネットワークを介して、相互に通信することが可能であるものとする。あるいは、登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150はLAN(Local Area Network)、あるいは、WAN(Wide Area Netwrok)等のネットワークを介して接続する分散構成としてもよい。なお、登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150のうち、複数の装置を一つのユニットに実装してもよいことは勿論である。登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130は、検証装置150が公開した公開鍵(検証装置150が作成した、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアのうちの前記暗号化鍵)を取得可能に構成されている。登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150の少なくとも一つの装置、又は全部の装置において、各部の少なくとも一部又は全部の処理は、コンピュータ(CPU(Central Processing Unit)、プロセッサ)で実行されるプログラムによって実現するようにしてもよい。この場合、当該プログラムを記録したコンピュータ読み出し可能な半導体メモリ、HDD(Hard Disk Drive)、CD(Compact Disk)、DVD(Digital Versatile Disk)等からプログラムをコンピュータの主メモリ等に読み出して実行することで各部の処理が実現される。
The
なお、暗号文照合システム100においては、登録要求装置110と、認証要求装置130とをまとめて、「第1ノード」と表してもよい。暗号文照合システム100においては、記憶装置120と、照合補助装置140とをまとめて、「第2ノード」と表してもよい。また、暗号文照合システム100においては、検証装置150を、「第3ノード」と表してもよい。すなわち、暗号文照合システム100は、図1に例示した様態に限定されない。
In the
[動作の説明]
次に、図面を参照して、本実施形態に係る暗号文照合システム100の動作について説明する。本発明の第1の例示的な実施形態に係る暗号文照合システム100における処理について説明する。
[Description of operation]
Next, the operation of the
暗号文照合システム100における処理は、大別して、
・準備フェーズ、
・登録フェーズ、及び、
・照合フェーズを含む。
The processing in the
・ Preparation phase,
・ Registration phase, and
-Includes a verification phase.
まず、各フェーズにおける処理の概要について説明する。本発明の第1の例示的な実施形態に係る暗号文照合システム100では、加法及び乗法について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、用いる暗号方式はメッセージとして、各係数がtよりも小さい非負整数である、N-1次多項式を扱うものとする(係数∈Zt={0,1,2,・・・,t-1})。
First, an overview of processing in each phase will be described. In the
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, an encryption key and a decryption key are mainly generated using the received security parameters.
登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つの登録ベクトルとの間の距離が算出される。 In the verification phase, the distance between the newly extracted authentication vector and one registered vector is mainly calculated using the decryption key generated in the preparation phase.
次に、暗号文照合システム100が、上述した各フェーズにて実行する処理について詳細に説明する。
Next, the process executed by the
図2は、準備フェーズにおいて、第1の例示的な実施形態に係る暗号文照合システム100が実行する処理の一例を示すフローチャートである。図2を参照しながら、本実施形態に係る暗号文照合システム100が、準備フェーズにて実行する処理について説明する。
FIG. 2 is a flowchart showing an example of processing executed by the
検証装置150における鍵生成部151は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、例えば、上述した鍵生成アルゴリズム(非特許文献1)に従い、暗号化鍵(公開鍵)pk、及び、復号鍵(秘密鍵)skを生成する(ステップA1)。なお、生成される暗号化鍵、及び、復号鍵は、加法及び乗法に関して準同型性を有する公開鍵暗号方式に準拠する。
The
鍵生成部151は、生成した暗号化鍵pkを、暗号文照合システム100において公開する(ステップA2)。
The
鍵生成部151は、生成した復号鍵skを、復号鍵記憶部152に格納する(ステップA3)。
The
なお、本実施形態に係る暗号文照合システム100が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。
Note that the processing executed by the
図3は、登録フェーズにおいて、第1の例示的な実施形態に係る暗号文照合システム100が実行する処理の一例を示すフローチャートである。図3を参照しながら、本実施形態に係る照合システム100が、登録フェーズにて実行する処理について説明する。
FIG. 3 is a flowchart illustrating an example of processing executed by the
登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a0,…,aL-1) ・・・(式29)
を抽出する(ステップB1)。
The registration
A = (a 0 ,..., A L−1 ) (Expression 29)
Is extracted (step B1).
次に、登録要求装置110における第一テンプレート生成部112は、暗号化鍵pkを用いて、次の式30に従って生成される、登録ベクトルAの各i番目(i=0,…,L-1)の成分aiをi次の項の係数に持つL-1次多項式
fA(x)=Σi=0~L-1ai×xi ・・・(式30)
の暗号文
Enc(pk,fA)
を計算する(ステップB2)。
Next, the first
Ciphertext Enc (pk, f A )
Is calculated (step B2).
ステップB2で計算した暗号文Enc(pk,fA)を「第一テンプレート」と呼ぶことにする。 The ciphertext Enc (pk, f A ) calculated in step B2 will be referred to as a “first template”.
次に、登録要求装置110における第二テンプレート生成部113は、暗号化鍵pkを用いて、登録ベクトルAの各成分の二乗和
Σi=0~L-1ai
2 ・・・(式31)
の暗号文
Enc(pk,Σi=0~L-1ai
2)
を計算する(ステップB3)。
Next, the second
Ciphertext Enc (pk, Σ i = 0 to L−1 a i 2 )
Is calculated (step B3).
ステップB3で計算した登録ベクトルAの各成分の二乗和暗号文Enc(pk,Σi=0~L-1ai 2)を「第二テンプレート」と呼ぶことにする。 The square sum cipher text Enc (pk, Σ i = 0 to L−1 a i 2 ) of each component of the registration vector A calculated in step B3 will be referred to as a “second template”.
次に、登録要求装置110におけるテンプレート生成部114は、第一テンプレートと第二テンプレートをまとめ、テンプレート
(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2)) ・・・(式32)
とする(ステップB4)。
Next, the
(Step B4).
登録要求装置110は、テンプレート(Enc(pk,fA)、Enc(pk,Σi=0~n-1ai
2))を記憶装置120に送付する(ステップB5)。
The
次に、記憶装置120は、登録要求装置110から、テンプレート(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2))を受け取る(ステップB6)。
Next, the
記憶装置120における識別子付与部121は、登録要求装置110から受け取ったテンプレート(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2))に固有の識別子である登録識別子idを決定する(ステップB7)。
The
記憶装置120は、登録識別子idを登録要求装置110に送付する(ステップB8)。
The
次に、登録要求装置110は、記憶装置120から登録識別子idを受け取る(ステップB9)。
Next, the
登録要求装置110は、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップB10)。あるいは、登録要求装置110は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。
The
次に、記憶装置120における登録データ生成部122は、テンプレートと登録識別子idをまとめ、登録データ
((Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2)),id) ・・・(式33)
とする(ステップB11)。
Next, the registration
(Step B11).
記憶装置120における登録データ記憶部123に、上記登録データ(式33)を格納する(ステップB12)。
The registration data (formula 33) is stored in the registration
なお、本実施形態に係る暗号文照合システム100が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。例えば、ステップB8に先だってステップB11とステップB12とが実行されてもよい。
Note that the process executed by the
図4は、認証フェーズにおいて、第1の例示的な実施形態に係る暗号文照合システム100が実行する処理の一例を示すフローチャートである。図4を参照しながら、本実施形態に係る照合システム100が、認証フェーズにて実行する処理について説明する。
FIG. 4 is a flowchart showing an example of processing executed by the
認証要求装置130は、認証対象の持つ識別子(「認証識別子」と呼ぶ)を受け取る(ステップC1)。
The
次に、認証要求装置130における認証要求生成部131は、受け取った認証識別子を含む認証要求を生成する(ステップC2)。
Next, the
認証要求装置130は、認証要求を照合補助装置140に送付する(ステップC3)。
The
照合補助装置140は、認証要求装置130から認証要求を受け取る(ステップC4)。
The
次に、照合補助装置140におけるチャレンジ補助生成部141は、整数tより小さい整数rと、N-1より小さい整数hとをランダムに選択する。チャレンジ補助生成部141は、選択した値r、hをまとめ、チャレンジ補助(r,h)とする(ステップC5)。
Next, the challenge
次に、照合補助装置140におけるチャレンジ生成部142は、暗号化鍵pkを用いて、チャレンジ補助(r,h)から算出される多項式
r×xh ・・・(式34)
の暗号文Enc(pk,r×xh)を計算する(ステップC6)。ステップC6で計算した暗号文Enc(pk,r×xh)を「チャレンジ」と呼ぶ。
Next, the
Cipher text Enc (pk, r × x h ) is calculated (step C6). The ciphertext Enc (pk, r × x h ) calculated in step C6 is called a “challenge”.
照合補助装置140は、チャレンジEnc(pk,r×xh)を認証要求装置130に送付する(ステップC7)。
The
次に、照合補助装置140における登録データ要求生成部143は、認証要求装置130から受け取った認証要求に含まれる認証識別子を含む登録データ要求を生成する(ステップC8)。
Next, the registration data
照合補助装置140は、登録データ要求を記憶装置120に送付する(ステップC9)。
The
次に、記憶装置120は、照合補助装置140から登録データ要求を受け取る(ステップC10)。
Next, the
記憶装置120における登録データ検索部124は、登録データ記憶部123に格納されている、一つまたは複数の登録データのうち、登録データ要求に含まれる認証識別子を含む登録データを特定する(ステップC11)。特定された登録データに含まれるテンプレートを「照合対象テンプレート」と呼ぶ。
The registration
記憶装置120は、照合対象テンプレートを照合補助装置140に送付する(ステップC12)。
照合補助装置140は、記憶装置120から照合対象テンプレートを受け取る(ステップC13)。
The collation
認証要求装置130は、照合補助装置140がステップC7で送信したチャレンジを受け取る(ステップC14)。
The
次に、認証要求装置130における認証情報抽出部132は、認証対象の生体から生体情報(「認証ベクトル」という)
B=(b0,…,bL-1) ・・・(式35)
を抽出する(ステップC15)。
Next, the authentication
B = (b 0 ,..., B L−1 ) (Expression 35)
Is extracted (step C15).
次に、認証要求装置130における第一レスポンス生成部133は、上記式21に従って、認証ベクトルBの各i番目(i=0,…,L-1)の成分biの加法に関する逆元-biを、N-i次の項の係数に持つN次多項式
fB(x)=-Σi=0~n-1bi×xN-i ・・・(式36)
を算出する。さらに、
・暗号化鍵pkと、
・生成した多項式fBと、
・照合補助装置140から受け取ったチャレンジEnc(pk,r×xh)と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を利用して、第一レスポンス
Enc(pk,(r×xh)×(fB)) ・・・(式37)
を生成する(ステップC16)。
Next, the first
Is calculated. further,
An encryption key pk;
The generated polynomial f B and
A challenge Enc (pk, r × x h ) received from the verification
Based on
For example, the first response Enc (pk, (r × x h ) × (f B )) (Equation 37) is used by utilizing the property (Equation 6) of the encryption method that can calculate the scalar multiplication of the ciphertext.
Is generated (step C16).
次に、認証要求装置130における第二レスポンス生成部134は、暗号化鍵pkを用いて、認証ベクトルBの各成分の二乗和
Σi=0~L-1bi
2 ・・・(式38)
の暗号文
Enc(pk,Σi=0~L-1bi
2)
を計算する(ステップC17)。ステップC17で計算した認証ベクトルBの各成分の二乗和の暗号文を「第二レスポンス」と呼ぶ。
Next, the second
Ciphertext Enc (pk, Σ i = 0 to L−1 b i 2 )
Is calculated (step C17). The ciphertext of the sum of squares of each component of the authentication vector B calculated in step C17 is referred to as “second response”.
次に、認証要求装置130におけるレスポンス生成部135は、
・第一レスポンスEnc(pk,(r×xh)×(fB))と、
・第二レスポンスEnc(pk,Σi=0~L-1bi
2)と
をまとめ、レスポンス
(Enc(pk,(r×xh)×(fB)),Enc(pk,Σi=0~L-1bi
2)) ・・・(式39)
とする(ステップC18)。
Next, the
First response Enc (pk, (r × x h ) × (f B )),
The second response Enc (pk, Σ i = 0 to L−1 b i 2 ) is collected, and the response (Enc (pk, (r × x h ) × (f B )), Enc (pk, Σ i = 0 to L-1 b i 2 )) (Equation 39)
(Step C18).
認証要求装置130は、ステップC18で生成した上記レスポンス(式39)を照合補助装置140に送付する(ステップC19)。
The
次に、照合補助装置140は、認証要求装置130から、上記レスポンス(式39)を受け取る(ステップC20)。
Next, the
次に、照合補助装置140における暗号化内積計算部144は、
・暗号化鍵pkと、
・ステップC5で生成したチャレンジ補助(r,h)から生成される多項式-r-1×xN-hと、
・ステップC20で受け取ったレスポンス(Enc(pk,(r×xh)×(fB)),Enc(pk,Σi=0~L-1bi
2))に含まれる第一レスポンスEnc(pk,(r×xh)×(fB))と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式5)を用いて、
Enc(pk,fB)=(-r-1×xN-h)×Enc(pk,(r×xh)×(fB)) ・・・(式40)
を計算する。
Next, the encryption inner
An encryption key pk;
· Generated challenge auxiliary in step C5 (r, h) a polynomial -r -1 × x N-h generated from,
The first response Enc (included in the response (Enc (pk, (r × x h ) × (f B )), Enc (pk, Σ i = 0 to L−1 b i 2 )) received in step C20) pk, (r × x h ) × (f B )),
Based on
For example, using the property (formula 5) that can calculate the scalar multiplication of the ciphertext of the encryption method,
Enc (pk, f B ) = (− r −1 × x N−h ) × Enc (pk, (r × x h ) × (f B )) (Equation 40)
Calculate
さらに、暗号化内積計算部144は、
・暗号化鍵pkと、
・ステップC13で受け取った照合対象テンプレートに含まれる第一テンプレートEnc(pk,fA)と、
・計算した暗号文Enc(pk,fB)と、
に基づき、
暗号方式の乗法準同型性を利用して、暗号化内積
Enc(pk,fA×fB)
を生成する(ステップC21)。
Furthermore, the encryption inner
An encryption key pk;
A first template Enc (pk, f A ) included in the verification target template received in step C13;
The calculated ciphertext Enc (pk, f B ),
Based on
Encrypted inner product Enc (pk, f A × f B ) using the multiplicative homomorphism of the encryption method
Is generated (step C21).
なお、前述の通り(式22、式23)、fA×fBの定数項は、登録ベクトルAと認証ベクトルBとの内積
<A,B>=Σi=0~n-1ai×bi
と等しい。
Incidentally, as described above (Equation 22, Equation 23), the constant term of f A × f B is the inner product of the registration vectors A and authentication vector B <A, B> = Σ i = 0 ~ n-1 a i × b i
Is equal to
次に、照合補助装置140におけるクエリ生成部145は、
・暗号化鍵pkと、
・ステップC21で生成した暗号化内積Enc(pk,fA×fB)
と、
・ステップC13で受け取った照合対象テンプレートに含まれる第二テンプレートEnc(pk,Σi=0~n-1ai
2)と、
・ステップC20で受け取ったレスポンスに含まれる第二レスポンスEnc(pk,Σi=0~L-1bi
2)と、
から、暗号方式の加法準同型性を利用して、クエリ
Enc(pk,f)
を生成する(ステップC22)。
Next, the
An encryption key pk;
Encrypted inner product Enc (pk, f A × f B ) generated in step C21
When,
A second template Enc (pk, Σ i = 0 to n−1 a i 2 ) included in the collation target template received in step C13;
A second response Enc (pk, Σ i = 0 to L−1 b i 2 ) included in the response received in step C20;
From the query Enc (pk, f) using the additive homomorphism of the encryption method.
Is generated (step C22).
ただし、クエリEnc(pk,f)において、fの定数項は、上記式26に従う、登録ベクトルAと認証ベクトルBとのユークリッド距離
dE(A,B)=(Σi=0~n-1ai
2)+(Σi=0~n-1bi
2)-2<A,B>
とする。
However, in the query Enc (pk, f), the constant term of f is the Euclidean distance d E (A, B) = (Σ i = 0 to n−1 ) between the registration vector A and the authentication vector B according to the above equation 26. a i 2 ) + (Σ i = 0 to n−1 b i 2 ) −2 <A, B>
And
照合補助装置140は、上記クエリEnc(pk,f)を検証装置150に送付する(ステップC23)。
The
次に、検証装置150は、照合補助装置140から、上記クエリEnc(pk,f)を受け取る(ステップC24)。
Next, the
次に、検証装置150におけるクエリ検証部153は、復号鍵skを用いてクエリEnc(pk,f)を復号する。
Next, the
復号結果Dec(sk,Enc(pk,f))として得られる多項式の定数項を、検証結果とする(ステップC25)。 The constant term of the polynomial obtained as the decoding result Dec (sk, Enc (pk, f)) is set as the verification result (step C25).
前述の通り、検証結果は、登録ベクトルAと認証ベクトルBとのユークリッド距離dE(A,B)である。 As described above, the verification result is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.
次に、検証装置150における照合結果生成部154は、検証結果を照合結果とする。あるいは、照合結果生成部154は、検証結果とあらかじめ定められた閾値との大小を比較した結果を照合結果としてもよい(ステップC26)。
Next, the verification
検証装置150は、算出した照合結果を出力する(ステップC27)。
The
なお、本実施形態に係る暗号文照合システム100が認証フェーズにて実行する処理は、図4に例示された様態に限定されない。例えば、ステップC5に先だってステップC9からステップC13が実行されてもよい。
The process executed by the
本実施形態に係る暗号文照合システム100の上記の説明において、
・登録要求装置110における第一テンプレート生成部112が図3のステップB2において生成する多項式fAは、登録ベクトルAから式19に従って生成される多項式であるとし、
・認証要求装置130における第一レスポンス生成部133が図4のステップC16において生成する多項式fBは、認証ベクトルから式21に従って生成される多項式であるとした。しかし、本実施形態における二つの多項式の生成方法は、上記の方法にのみ限定されるものでないことは明らかである。例えば、
・登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fAを、登録ベクトルAに基づき、式21に従って生成される多項式とし、
・認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fBを、認証ベクトルに基づき、式20に従って生成される多項式としてもよい。
In the above description of the
The polynomial f A generated by the first
The polynomial f B generated by the first
The polynomial f A generated by the first
- an authentication request apparatus polynomial f B to generate
[効果の説明]
次に、第1の例示的な実施形態に係る暗号文照合システム100に関する効果について説明する。
[Description of effects]
Next, effects related to the
第1の例示的な実施形態に係る照合システム100によれば、認証を要求するユーザが、自身の生体と識別子を提示して認証を行う、1:1認証を、安全に実現することが可能である。すなわち、次の2つの効果を有する。
According to the
第1の例示的な実施形態に係る暗号文照合システム100によれば、登録要求装置110が抽出した登録ベクトルは、登録要求装置110上で暗号化され、記憶装置120に送られる。また、認証要求装置130が抽出した認証ベクトルは、認証要求装置130上で暗号化され、照合補助装置140に送られる。
According to the
これらの暗号文を復号できるのは、復号鍵を持つ検証装置150であるが、検証装置150が受け取るデータは、登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値は開示されない。したがって、第1の例示的な実施形態に係る暗号文照合システム100によれば、それぞれのベクトルを抽出する装置以外の装置には、登録ベクトルと認証ベクトルの距離以外の値は漏洩せず、検証装置において、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。
The ciphertext can be decrypted by the
また、第1の例示的な実施形態に係る暗号文照合システム100によれば、同じ登録ベクトルとの認証を行う際であっても、図4のステップC5で選ばれた乱数を用いた処理が行われる。したがって、照合処理の通信内容が漏洩したとしても、
・漏洩した内容を再送したり、
・漏洩した内容を利用して作成したデータを送付したりしても、
漏洩した照合時の距離と等しい距離を算出したり、小さい値を算出したりすることはできない。特に、第1の例示的な実施形態に係る暗号文照合システム100を、登録ベクトルと認証ベクトルの間の距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわち、なりすまし攻撃への耐性を有する。
Further, according to the
-Resend leaked content,
-Even if you send the data created using the leaked content,
It is impossible to calculate a distance equal to the leaked distance at the time of collation or to calculate a small value. In particular, when the
さらに、第1の例示的な実施形態に係る暗号文照合システム100では、復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置150が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置150が登録ベクトルの値を算出することを防ぐことができるため、より高い安全性を達成できる。
Furthermore, in the
[第2の実施形態]
[構成の説明]
図5は、第2の例示的な実施形態に係る暗号文照合システム(「情報処理システム」ともいう)200の構成を模式的に例示する図である。第2の例示的な実施形態に係る暗号文照合システム200は、大別して、登録要求装置210と、記憶装置220と、認証要求装置230と、照合補助装置240と、検証装置250とを有する。
[Second Embodiment]
[Description of configuration]
FIG. 5 is a diagram schematically illustrating a configuration of a ciphertext matching system (also referred to as an “information processing system”) 200 according to the second exemplary embodiment. The
登録要求装置210は、登録情報抽出部211と、第一テンプレート生成部212と、第二テンプレート生成部213と、テンプレート生成部214とを有する。
The
記憶装置220は、識別子付与部221と、登録データ生成部222と、登録データ記憶部223とを有する。
The
認証要求装置230は、認証要求生成部231と、認証情報抽出部232と、第一レスポンス生成部233と、第二レスポンス生成部234と、レスポンス生成部235とを有する。
The
照合補助装置240は、チャレンジ補助生成部241と、チャレンジ生成部242と、登録データ要求生成部243と、暗号化内積計算部244と、クエリ生成部245と、検証データ生成部246と、を有する。
The verification
検証装置250は、鍵生成部251と、復号鍵記憶部252と、クエリ検証部253と、照合結果生成部254と、を有する。
The
登録要求装置210と記憶装置220、記憶装置220と照合補助装置240、認証要求装置230と照合要求装置240、照合補助装置240と検証装置250は、例えば、通信ネットワークを介して、相互に通信することが可能であるとする。
The
なお、暗号文照合システム200においては、登録要求装置210と、認証要求装置230とをまとめて、「第1ノード」と表してもよい。暗号文照合システム200においては、記憶装置220と、照合補助装置240とをまとめて、「第2ノード」と表してもよい。また、暗号文照合システム200においては、検証装置250を、「第3ノード」と表してもよい。すなわち、暗号文照合システム200は、図5に例示した様態に限定されない。
In the
[動作の説明]
次に、第2の例示的な実施形態に係る暗号文照合システム200の動作について説明する。
[Description of operation]
Next, the operation of the
本発明の第2の例示的な実施形態に係る暗号文照合システム200における動作について説明する。暗号文照合システム200における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
The operation in the
本発明の第2の例示的な実施形態に係る暗号文照合システムでは、加法及び乗法について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、用いる暗号方式はメッセージとして、各係数がtより小さい非負整数である、N-1次多項式を扱うものとする。 In the ciphertext matching system according to the second exemplary embodiment of the present invention, a homomorphic cryptosystem having homomorphism is used for addition and multiplication. For convenience of explanation, it is assumed that the encryption method used is an N−1 degree polynomial whose coefficients are non-negative integers smaller than t as messages.
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, an encryption key and a decryption key are mainly generated using the received security parameters.
登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つないし複数の登録ベクトルとの間の距離が算出される。 In the verification phase, the distance between the newly extracted authentication vector and one or more registered vectors is mainly calculated using the decryption key generated in the preparation phase.
次に、暗号文照合システム200が、上述した各フェーズにて実行する処理について詳細に説明する。
Next, the process executed by the
図6は、準備フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図6を参照しながら、第2の例示的な実施形態に係る暗号文照合システム200が、準備フェーズにて実行する処理について説明する。
FIG. 6 is a flowchart showing an example of processing executed by the
検証装置250における鍵生成部251は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、例えば、上述した鍵生成アルゴリズムに従い、暗号化鍵pk、及び、復号鍵skを生成する(ステップD1)。なお、生成される暗号化鍵、及び、復号鍵は、加法及び乗法に関して準同型性を有する公開鍵暗号方式に準拠する。
The
鍵生成部251は、暗号化鍵pkを、暗号文照合システム200において公開する(ステップD2)。
The
鍵生成部251は、復号鍵skを、復号鍵記憶部252に格納する(ステップD3)。
The
なお、本実施形態に係る暗号文照合システム200が準備フェーズにて実行する処理は、図6に例示された様態に限定されない。
Note that the processing executed by the
図7は、登録フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図7を参照しながら、本実施形態に係る照合システム200が、登録フェーズにて実行する処理について説明する。
FIG. 7 is a flowchart illustrating an example of processing executed by the
登録要求装置210における登録情報抽出部211は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a0、…、aL-1) ・・・(式41)
を抽出する(ステップE1)。
The registration
A = (a 0 ,..., A L−1 ) (Formula 41)
Is extracted (step E1).
次に、登録要求装置210における第一テンプレート生成部212は、暗号化鍵pkを用いて、次の式42に従って生成される、登録ベクトルAの各i番目(i=0,…,L-1)の成分aiをi次の項の係数に持つL-1次多項式
fA(x)=Σi=0~L-1ai×xi ・・・(式42)
の暗号文
Enc(pk,fA)を計算する(ステップE2)。
Next, the first
The ciphertext Enc (pk, f A ) is calculated (step E2).
ステップE2で計算した暗号文Enc(pk,fA)を「第一テンプレート」と呼ぶ。 The ciphertext Enc (pk, f A ) calculated in step E2 is referred to as “first template”.
次に、登録要求装置210における第二テンプレート生成部213は、暗号化鍵pkを用いて、登録ベクトルAの各成分の二乗和
Σi=0~L-1ai
2 ・・・(式43)
の暗号文
Enc(pk,Σi=0~L-1ai
2)を計算する(ステップE3)。ステップE3で計算した登録ベクトルAの各成分の二乗和暗号文Enc(pk,Σi=0~L-1ai
2)を「第二テンプレート」と呼ぶ。
Next, the second
Ciphertext Enc (pk, Σ i = 0 to L−1 a i 2 ) is calculated (step E3). The square sum ciphertext Enc (pk, Σ i = 0 to L−1 a i 2 ) of each component of the registration vector A calculated in step E3 is referred to as a “second template”.
次に、登録要求装置210におけるテンプレート生成部214は、第一テンプレートと第二テンプレートをまとめ、テンプレート
(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2)) ・・・(式44)
とする(ステップE4)。
Next, the
(Step E4).
登録要求装置210は、上記テンプレート(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2))を記憶装置220に送付する(ステップE5)。
The
次に、記憶装置220は、登録要求装置210から上記テンプレート(Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2))を受け取る(ステップE6)。
Next, the
記憶装置220における識別子付与部221は、受け取ったテンプレートに固有の識別子である登録識別子idを決定する(ステップE7)。
The
記憶装置220は、登録識別子idを登録要求装置210に送付する(ステップE8)。
次に、登録要求装置210は、記憶装置220から登録識別子idを受け取る(ステップE9)。登録要求装置210は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示するようにしてもよい(ステップE10)。あるいは、登録要求装置210は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子を格納してもよい。
Next, the
次に、記憶装置220における登録データ生成部222は、テンプレートと登録識別子をまとめ、登録データ
((Enc(pk,fA),Enc(pk,Σi=0~n-1ai
2)),id) ・・・(式45)
とする(ステップE11)。
Next, the registration
(Step E11).
記憶装置220における登録データ生成部222は、登録データ記憶部223に、上記登録データを格納する(ステップE12)。
The registration
なお、第2の例示的な実施形態に係る暗号文照合システム200が登録フェーズで実行する処理は、図7に例示された様態に限定されない。例えば、ステップE8に先だってステップE11とステップE12とが実行されてもよい。
Note that the processing executed by the
図8は、認証フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図8を参照しながら、本実施形態に係る照合システム200が、認証フェーズにて実行する処理について説明する。
FIG. 8 is a flowchart showing an example of processing executed by the
認証要求装置230における認証要求生成部231は、認証要求を生成する(ステップF1)。
The authentication
認証要求装置230は、認証要求を照合補助装置240に送付する(ステップF2)。
The
照合補助装置240は、認証要求装置230から認証要求を受け取る(ステップF3)。
The verification
次に、照合補助装置240におけるチャレンジ補助生成部241は、tより小さい整数をrと、N-1よりも小さい整数hと、をランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップF4)。
Next, the challenge
次に、照合補助装置240におけるチャレンジ生成部242は、暗号化鍵pkを用いて、チャレンジ補助(r,h)から算出される多項式
r×xh ・・・(式46)
の暗号文Enc(pk,r×xh)を計算する(ステップF5)。
Next, the
The ciphertext Enc (pk, r × x h ) is calculated (step F5).
ステップF5で計算した暗号文Enc(pk,r×xh)を「チャレンジ」と呼ぶ。 The ciphertext Enc (pk, r × x h ) calculated in step F5 is called a “challenge”.
照合補助装置240は、上記チャレンジを認証要求装置230に送付する(ステップF6)。
The
次に、照合補助装置240における登録データ要求生成部243は、登録データ要求を生成する(ステップF7)。
Next, the registration data
照合補助装置240は、登録データ要求を記憶装置220に送付する(ステップF8)。
The
次に、記憶装置220は、照合補助装置240から登録データ要求を受け取る(ステップF9)。
Next, the
記憶装置220は、登録データ記憶部223に格納されている一つまたは複数の登録データのうち、一部またはすべて(M個とする)の登録データを、照合補助装置240に送付する(ステップF10)。ただし、各登録データは、テンプレートと登録識別子の組である。
The
照合補助装置240は、記憶装置220からM個の登録データを受け取る(ステップF11)。
The
以下では、各j番目(j=1,…,M)の登録データに含まれるテンプレートは、登録ベクトルAjから生成されたものとする。 In the following, it is assumed that a template included in each j-th (j = 1,..., M) registration data is generated from the registration vector A j .
また、各j番目(j=1、…、M)の登録データに含まれる第一テンプレートは、登録ベクトルAjから生成された多項式fA,jの暗号文Enc(pk,fA,j)であるものとする。 The first template included in each j-th (j = 1,..., M) registration data is a ciphertext Enc (pk, f A, j ) of the polynomial f A, j generated from the registration vector A j. Suppose that
また、各j番目(j=1,…,M)の登録データに含まれる第二テンプレートは、登録ベクトルAjの各成分の二乗和
Σi=0~n-1aj,i
2 ・・・(式47)
の暗号文Enc(pk,Σi=0~n-1aj,i
2)
であるものとする。
Each j-th (j = 1, ..., M ) second templates included in the registration data of the registration vector A square sum of the components of j Σ i = 0 ~ n- 1 a j, i 2 ·· (Formula 47)
Ciphertext Enc (pk, Σ i = 0 to n−1 a j, i 2 )
Suppose that
認証要求装置230は、照合補助装置240から、上記チャレンジEnc(pk,r×xh)を受け取る(ステップF12)。
The
次に、認証要求装置230における認証情報抽出部232は、認証対象の生体から生体情報(「認証ベクトル」と呼ぶ)
B=(b0,…,bL-1) ・・・(式48)
を抽出する(ステップF13)。
Next, the authentication
B = (b 0 ,..., B L−1 ) (Formula 48)
Is extracted (step F13).
次に、認証要求装置230における第一レスポンス生成部233は、上記式21に従って、認証ベクトルBの各i番目(i=0,…,L-1)の成分biの加法に関する逆元-biを、N-i次の項の係数に持つN次多項式
fB(x)=-Σi=0~n-1bi×xN-i ・・・(式49)
を算出する。さらに、
・暗号化鍵pkと、
・生成した多項式fBと、
・受け取ったチャレンジEnc(pk,r×xh)と、
から、
例えば、暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を利用して、
第一レスポンス
Enc(pk,(r×xh)×(fB)) ・・・(式50)
を生成する(ステップF14)。
Next, the first
Is calculated. further,
An encryption key pk;
The generated polynomial f B and
・ The received challenge Enc (pk, r × x h ),
From
For example, using the property (equation 6) that can calculate the scalar multiplication of the ciphertext of the encryption method,
First response Enc (pk, (r × x h ) × (f B )) (Formula 50)
Is generated (step F14).
次に、認証要求装置230における第二レスポンス生成部234は、暗号化鍵pkを用いて、認証ベクトルBの各成分の二乗和
Σi=0~L-1bi
2 ・・・(式51)
の暗号文Enc(pk,Σi=0~L-1bi
2)を計算する(ステップF15)。ステップF15で計算した認証ベクトルBの各成分の二乗和の暗号文Enc(pk,Σi=0~L-1bi
2)を「第二レスポンス」と呼ぶ。
Next, the second
Cipher text Enc (pk, Σ i = 0 to L−1 b i 2 ) is calculated (step F15). The ciphertext Enc (pk, Σ i = 0 to L−1 b i 2 ) of the sum of squares of each component of the authentication vector B calculated in step F15 is referred to as “second response”.
次に、認証要求装置230におけるレスポンス生成部235は、第一レスポンスと第二レスポンスをまとめ、レスポンス
(Enc(pk,(r×xh)×(fB)),Enc(pk,Σi=0~L-1bi
2)) ・・・(式52)
とする(ステップF16)。
Next, the
(Step F16).
認証要求装置230は、第一レスポンスと第二レスポンスをまとめた上記レスポンスを照合補助装置240に送付する(ステップF17)。
The
次に、照合補助装置240は、認証要求装置230から、上記レスポンスを受け取る(ステップF18)。
Next, the verification
次に、照合補助装置240における暗号化内積計算部244は、
・暗号化鍵pkと、
・ステップF4で生成したチャレンジ補助(r,h)から生成される項式-r-1×xN-hと、
・ステップF18で受け取ったレスポンスに含まれる第一レスポンスEnc(pk,(r×xh)×(fB))と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を用いて、
Enc(pk,fB)=(-r-1×xN-h)×Enc(pk,(r×xh)×(fB)) ・・・(式53)
を計算する。
さらに、照合補助装置240における暗号化内積計算部244は、各j(j=1,…,M)について、
・暗号化鍵pkと、
・ステップF11で受け取ったM個の登録データのうちj番目の登録データに含まれる第一テンプレートEnc(pk,fA,j)と、
・計算した暗号文Enc(pk,fB)と、
に基づき、暗号方式の乗法準同型性を利用して、暗号化内積
Enc(pk,fA,j×fB) ・・・(式54)
を生成する(ステップF19)。
Next, the encrypted inner
An encryption key pk;
A term formula -r -1 × x N-h generated from-generated challenge auxiliary in step F4 (r, h),
A first response Enc (pk, (r × x h ) × (f B )) included in the response received in step F18;
Based on
For example, using the property (equation 6) that can calculate the scalar multiplication of the ciphertext of the encryption method,
Enc (pk, f B ) = (− r −1 × x N−h ) × Enc (pk, (r × x h ) × (f B )) (Formula 53)
Calculate
Further, the encrypted inner
An encryption key pk;
A first template Enc (pk, f A, j ) included in the j-th registration data among the M registration data received in step F11;
The calculated ciphertext Enc (pk, f B ),
Based on the above, by using the multiplicative homomorphism of the encryption method, the encrypted inner product Enc (pk, f A, j × f B ) (Formula 54)
Is generated (step F19).
なお、前述の通り、各j(j=1,…,M)について、fA,j×fBの定数項は、登録ベクトルAjと認証ベクトルBとの内積
<Aj,B>=Σi=0~n-1aj,i×bi
と等しい。
Incidentally, as described above, each of j (j = 1, ..., M) for, f A, the constant term of the j × f B is the inner product of the registration vector A j and an authentication vector B <A j ,B> = Σ i = 0 to n−1 a j, i × b i
Is equal to
次に、照合補助装置240におけるクエリ生成部245は、各j(j=1,…,M)について、
・暗号化鍵pkと、
・ステップF19で生成した暗号化内積Enc(pk,fA,j×fB)
と、
・ステップF11で受け取ったM個の登録データのうちj番目の登録データに含まれる第二テンプレートEnc(pk,Σi=0~n-1aj,i
2)と、
・ステップF18で受け取ったレスポンスに含まれる第二レスポンスEnc(pk,Σi=0~L-1bi
2)と、
に基づき、暗号方式の加法準同型性を利用して、
クエリ
Enc(pk,fj)
を生成する(ステップF20)。
Next, the
An encryption key pk;
Encrypted inner product Enc (pk, f A, j × f B ) generated in step F19
When,
A second template Enc (pk, Σ i = 0 to n−1 a j, i 2 ) included in the j-th registration data among the M pieces of registration data received in step F11;
A second response Enc (pk, Σ i = 0 to L−1 b i 2 ) included in the response received in step F18;
Based on the additive homomorphism of cryptography,
Query Enc (pk, f j )
Is generated (step F20).
ただし、各j(j=1,…,M)について、fjの定数項は、上記式26に従う、登録ベクトルAjと認証ベクトルBとのユークリッド距離
dE(Aj,B)=(Σi=0~n-1aj,i
2)+(Σi=0~n-1bi
2)-2<Aj,B>
とする。
However, each of j (j = 1, ..., M) for the constant term of f j is according to the equation 26, the Euclidean distance d E of the registered vectors A j and an authentication vector B (A j, B) = (Σ i = 0 to n−1 a j, i 2 ) + (Σ i = 0 to n−1 b i 2 ) −2 <A j ,B>
And
次に、照合補助装置240における検証データ生成部246は、各j(j=1,…,M)について、M個の登録データのうちj番目の登録データに含まれる第二テンプレートからステップF20で生成したクエリと、M個の登録データのうちj番目の登録データに含まれる登録識別子とを、j番目の検証データとする(ステップF21)。
Next, in step F20, the verification
次に、照合補助装置240は、M個の検証データを検証装置250に送付する(ステップF22)。
Next, the
次に、検証装置250は、照合補助装置240からM個の検証データを受け取る(ステップF23)。
Next, the
検証装置250におけるクエリ検証部253は、各j(j=1,…,M)について、復号鍵pkを用いて、M個の検証データのうち、j番目の検証データに含まれるクエリを復号し、復号結果として得られる多項式の定数項を、検証結果とする(ステップF24)。
The
前述の通り、各j(j=1,…,M)について、M個の検証データのうちj番目の検証データから生成された復号結果として得られる多項式の定数項は、登録ベクトルAjと認証ベクトルBとのユークリッド距離dE(Aj,B)である。 As described above, for each j (j = 1,..., M), the constant term of the polynomial obtained as a decoding result generated from the j-th verification data among the M verification data is the registered vector A j and the authentication The Euclidean distance d E (A j , B) with the vector B.
次に、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、j番目の検証データに含まれるクエリからステップF24で生成した検証結果と、j番目の検証データに含まれる登録識別子と、をまとめ、j番目の照合結果とする。
Next, the verification
あるいは、各j(j=1,…,M)について、検証装置250における照合結果生成部254は、M個の検証データのうち、j番目の検証データに含まれるクエリからステップF24で生成したj番目の検証結果と、あらかじめ定められた閾値との大小を比較した結果と、j番目の検証データに含まれる登録識別子と、をまとめ、j番目の照合結果としてもよい(ステップF25)。
Alternatively, for each j (j = 1,..., M), the verification
検証装置250は、算出したM個の照合結果を出力する(ステップF26)。
The
なお、第2の例示的な実施形態に係る暗号文照合システム200が認証フェーズにて実行する処理は、図8に例示された様態に限定されない。例えば、ステップF7に先だってステップF12からステップF17が実行されてもよい。
Note that the processing executed by the
第2の例示的な実施形態に係る暗号文照合システム200の上記の説明において、登録要求装置210における第一テンプレート生成部212が図7のステップE2において生成する多項式fAは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとした。また、認証要求装置230における第一レスポンス生成部233が図8のステップF16において生成する多項式fBは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。
In the above description of the
第2の例示的な実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置210における第一テンプレート生成部212がステップE2において生成する多項式fAを、登録ベクトルAに基づき上記式21に従って生成される多項式とし、認証要求装置230における第一レスポンス生成部233が図8のステップF16において生成する多項式fBを、認証ベクトルに基づき上記式20に従って生成される多項式としてもよい。
The method of generating the two polynomials in the second exemplary embodiment is not limited to the above method. For example, the polynomial f A generated by the first
[効果の説明]
次に、第2の例示的な実施形態に係る暗号文照合システム200に関する効果について説明する。第2の実施形態に係る照合システム200によれば、認証を要求するユーザが、自身の識別子を提示せず、登録された全ての情報と、認証に用いられる情報の照合を行う、1:N認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。
[Description of effects]
Next, effects related to the
第2の例示的な実施形態に係る暗号文照合システム200によれば、登録要求装置210が抽出した登録ベクトルは、登録要求装置210上で暗号化され、記憶装置220に送られる。
According to the
また、認証要求装置230が抽出した認証ベクトルは、認証要求装置230上で暗号化され、照合補助装置240に送られる。これらの暗号文を復号できるのは、復号鍵を持つ検証装置250であるが、検証装置250の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。
Also, the authentication vector extracted by the
したがって、第2の例示的な実施形態に係る暗号文照合システム200によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。
Therefore, according to the
また、第2の例示的な実施形態に係る暗号文照合システム200によれば、同じ登録ベクトルとの認証を行う際であっても、図8のステップF5で選ばれた乱数を用いた処理が行われる。
Further, according to the
したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。 Therefore, even if the communication content of the verification process is leaked, the distance equal to the distance at the time of the leaked verification is calculated by resending the leaked content or sending data created using the leaked content Or a small value cannot be calculated.
特に、第2の例示的な実施形態に係る暗号文照合システム200を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。
In particular, when the
さらに、第2の例示的な実施形態に係る暗号文照合システム200では、復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形することも可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置250が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても、復号鍵を持つ検証装置250が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。
Further, in the
[第3の実施形態]
次に、第3の例示的な実施形態について説明する。第3の例示的な実施形態は、前記第1の例示的な実施形態の説明で参照した図1に示す暗号文照合システム100において、非特許文献1に示された暗号方式を用いる場合である。以下では、第3の例示的な実施形態に係る特徴的な部分を中心に説明し、前記第1の例示的な実施形態と同じ部分については説明を適宜省略する。
[Third Embodiment]
Next, a third exemplary embodiment will be described. The third exemplary embodiment is a case where the encryption scheme shown in
第3の例示的な実施形態は、前述の、非特許文献1に記載された、加法及び情報に関して準同型性を持つ暗号方式を用いて構成される。本実施形態の構成には、非特許文献1の暗号方式の持つ次の特徴を利用する。
The third exemplary embodiment is configured by using an encryption method having homomorphism regarding addition and information described in
非特許文献1の暗号方式の鍵生成アルゴリズムの受け取るパラメータは、整数Nおよび素数tを含む。非特許文献1の暗号方式の暗号化アルゴリズムは、各係数がtより小さい、N-1次多項式をメッセージとして受け取る。
The parameters received by the encryption method key generation algorithm of
各係数がtより小さいN-1次多項式fに対し、f×f-1=1を満たすf-1は必ずしも存在しない。すなわち、非特許文献1の暗号方式が暗号化するメッセージには、乗法に関する逆元は必ずしも存在しない。
For an N−1th order polynomial f with each coefficient smaller than t, there is not necessarily f −1 satisfying f × f −1 = 1. That is, an inverse element related to multiplication is not necessarily present in a message encrypted by the encryption method of
一方、tは素数であるため、任意の1以上t未満の整数rに対し、tを法としてr×r-1=1を満たす、1以上t未満の整数r-1が存在する。 On the other hand, since t is a prime number, there exists an integer r −1 of 1 or more and less than t that satisfies r × r −1 = 1 by modulo t for any integer r of 1 or more and less than t.
さらに、hを0以上N-1以下の整数とする。
xh×(-xN-h)=-xN=1 ・・・(式55)
が成り立つ。
Further, h is an integer of 0 to N-1.
x h × (−x N−h ) = − x N = 1 (Expression 55)
Holds.
rおよびhについて、
(r×xh)×(r-1×(-xN-h))=1 ・・・(式56)
が成り立つ。
For r and h
(R × x h ) × (r −1 × (−x N−h )) = 1 (Formula 56)
Holds.
したがって、任意の1以上t未満の整数rおよび0以上N-1以下の整数hについて、r×xhは非特許文献1の暗号方式を用いて暗号化できるメッセージであり、かつ逆元-r-1×xN-hを持つ。
Therefore, for any integer r greater than or equal to 1 and less than t and integer h greater than or equal to 0 and less than or equal to N−1, r × x h is a message that can be encrypted using the encryption scheme of
[構成の説明]
第3の例示的な実施形態の構成は、図1に示した前記第1の実施形態に係る暗号文照合システム100の構成と同様であるため、説明は省略する。
[Description of configuration]
The configuration of the third exemplary embodiment is the same as the configuration of the
[動作の説明]
次に、第3の例示的な実施形態に係る暗号文照合システム100の動作について説明する。本実施形態に係る照合システム100における動作は、前記第1の例示的な実施形態と同様に、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
[Description of operation]
Next, the operation of the
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, an encryption key and a decryption key are mainly generated using the received security parameters.
登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに 抽出された認証ベクトルと一つの登録ベクトルとの間の距離が算出される。 In the verification phase, mainly the distance between the newly extracted authentication vector and one registered vector is calculated using the decryption key generated in the preparation phase.
次に、暗号文照合システム100が、上述した各フェーズにて実行する処理について詳細に説明する。
Next, the process executed by the
第3の例示的な実施形態の準備フェーズは、前記第1の例示的な実施形態の図2のフローチャートに従う。図2を参照しながら、第3の実施形態に係る暗号文照合システム100が、準備フェーズにて実行する処理について説明する。
The preparation phase of the third exemplary embodiment follows the flowchart of FIG. 2 of the first exemplary embodiment. Processing executed by the
検証装置150における鍵生成部151は、4つのパラメータの組
λ=(N,q,t,σ) ・・・(式57)
を受け取る。ただし、前述したように、Nは2冪の整数、qは2Nを法として1と合同な素数、tはqより小さい正の素数、σはN次元離散ガウス分布の標準偏差である。
The
Receive. However, as described above, N is an integer of 2 冪, q is a prime number congruent with 1 modulo 2N, t is a positive prime number smaller than q, and σ is a standard deviation of an N-dimensional discrete Gaussian distribution.
次に、2つのN-1次多項式sおよびeを標準偏差がσであるN次元離散ガウス分布に従って生成する。すなわち、離散ガウス分布に従って生成されたN個の値を係数とする多項式を生成する。sは秘密鍵となる。 Next, two N−1 order polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of σ. That is, a polynomial having N values generated according to the discrete Gaussian distribution as coefficients is generated. s is a secret key.
次に、各係数がtより小さいN-1次多項式p1をランダムに生成する。 Next, an N−1 order polynomial p 1 in which each coefficient is smaller than t is randomly generated.
次に、
p0=-(p1×s+t×e) ・・・(式58)
を計算する(ステップA1)。
(λ,p0,p1)を暗号化鍵pk、
(λ,p0,p1,s)を復号鍵skとする。
next,
p 0 = − (p 1 × s + t × e) (Formula 58)
Is calculated (step A1).
(Λ, p 0 , p 1 ) as an encryption key pk,
Let (λ, p 0 , p 1 , s) be the decryption key sk.
鍵生成部151は、暗号化鍵pkを、暗号文照合システム100において公開する(ステップA2)。鍵生成部151は、復号鍵skを、復号鍵記憶部152に格納する(ステップA3)。
The
なお、第3の実施形態に係る暗号文照合システム100が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。
The process executed by the
第3の例示的な実施形態の登録フェーズは、第1の例示的な実施形態の図3のフローチャートに従う。図3を参照しながら、第3の実施形態に係る暗号文照合システム100が、登録フェーズにて実行する処理について説明する。
The registration phase of the third exemplary embodiment follows the flowchart of FIG. 3 of the first exemplary embodiment. A process executed by the
登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a0,…,aL-1) ・・・(式59)
を抽出する(ステップB1)。
The registration
A = (a 0 ,..., A L−1 ) (Formula 59)
Is extracted (step B1).
次に、登録要求装置110における第一テンプレート生成部112は、登録ベクトルA=(a0,…,aL-1)から、次の式60(上記式20)に従って生成される、登録ベクトルAの各i番目(i=0,…,L-1)の成分aiを、i次の項の係数に持つL-1次多項式
fA=Σi=0~L-1ai×xi ・・・(式60)
を生成する。
Next, the first
Is generated.
次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u1とg1とf1とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、これらと、暗号化鍵pkに含まれるt、p0、p1と、生成した多項式fAと、に基づき、以下の二つの多項式、
c1,0=p0×u1+t×g1+fA ・・・(式61-1)
c1,1=p1×u1+t×f1 ・・・(式61-2)
を計算する。(c1,0,c1,1)を暗号文C1とする(ステップB2)。
Next, based on these, t, p 0 , p 1 included in the encryption key pk, and the generated polynomial f A , the following two polynomials:
c 1,0 = p 0 × u 1 + t × g 1 + f A (Formula 61-1)
c 1,1 = p 1 × u 1 + t × f 1 (Formula 61-2)
Calculate Let (c 1,0 , c 1,1 ) be the ciphertext C 1 (step B2).
すなわち、C1は暗号化鍵pkによるfAの暗号文である。ステップB2で計算した暗号文C1=(c1,0,c1,1)を「第一テンプレート」と呼ぶ。 That is, C 1 is a ciphertext of f A with the encryption key pk. The ciphertext C 1 = (c 1,0 , c 1,1 ) calculated in step B2 is referred to as a “first template”.
次に、登録要求装置110における第二テンプレート生成部113は、登録ベクトルAの各成分の二乗和
Σi=0~L-1ai
2 ・・・(式62)
を計算する。
Next, the second
Calculate
次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u2とg2とf2とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、これらと、暗号化鍵の含むt、p0、p1と、生成した値Σi=0~L-1ai
2と、に基づき、以下の二つの多項式、
c2,0=p0×u2+t×g2+(Σi=0~L-1ai
2) ・・・(式63-1)
c2,1=p1×u2+t×f2 ・・・(式63-2)
を計算する。(c2,0,c2,1)を暗号文C2とする(ステップB3)。すなわち、C2は暗号化鍵pkによるΣi=0~L-1ai
2の暗号文である。ステップB3で計算した暗号文C2=(c2,0,c2,1)を「第二テンプレート」と呼ぶ。
Next, based on these, t, p 0 , p 1 included in the encryption key, and the generated values Σ i = 0 to L−1 a i 2 , the following two polynomials:
c 2,0 = p 0 × u 2 + t × g 2 + (Σ i = 0 to L−1 a i 2 ) (Formula 63-1)
c 2,1 = p 1 × u 2 + t × f 2 (Formula 63-2)
Calculate Let (c 2,0 , c 2,1 ) be the ciphertext C 2 (step B3). That is, C 2 is a ciphertext of Σ i = 0 to L−1 a i 2 with the encryption key pk. The ciphertext C 2 = (c 2,0 , c 2,1 ) calculated in step B3 is referred to as a “second template”.
次に、登録要求装置110におけるテンプレート生成部114は、第一テンプレートC1=(c1,0,c1,1)と第二テンプレートC2=(c2,0,c2,1)をまとめ、テンプレート(C1,C2)とする(ステップB4)。
Next, the
登録要求装置110は、上記テンプレート(C1,C2)を記憶装置120に送付する(ステップB5)。
The
次に、記憶装置120は、登録要求装置110からテンプレート(C1,C2)を受け取る(ステップB6)。
Next, the
記憶装置120における識別子付与部121は、受け取ったテンプレート(C1,C2)に固有の識別子である登録識別子idを決定する(ステップB7)。
The
記憶装置120は、登録識別子idを登録要求装置110に送付する(ステップB8)。
The
次に、登録要求装置110は、記憶装置から登録識別子idを受け取る(ステップB9)。
Next, the
登録要求装置110は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップB10)。あるいは、登録データ装置102は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。
The
次に、記憶装置120における登録データ生成部122は、テンプレート(C1,C2)と登録識別子idをまとめ、登録データ
((C1,C2),id)
とする(ステップB11)。
Next, the registration
(Step B11).
記憶装置120における登録データ生成部122は、登録データ記憶部123に、登録データ((C1,C2),id)を格納する(ステップB12)。
The registration
なお、第3の実施形態に係る暗号文照合システム100が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。例えば、ステップB8に先だってステップB11とステップB12とが実行されてもよい。
Note that the processing executed by the
第3の例示的な実施形態の認証フェーズは、前記第1の例示的な実施形態の図4のフローチャートに従う。図4を参照しながら、第3の実施形態に係る暗号文照合システム100が、認証フェーズにて実行する処理について説明する。
The authentication phase of the third exemplary embodiment follows the flowchart of FIG. 4 of the first exemplary embodiment. A process executed by the
認証要求装置130は認証対象の持つ識別子id(「認証識別子」と呼ぶ)を受け取る(ステップC1)。
The
次に、認証要求装置130における認証要求生成部131は、受け取った認証識別子idを含む認証要求を生成する(ステップC2)。
Next, the
認証要求装置130は、認証要求を照合補助装置140に送付する(ステップC3)。
The
照合補助装置140は、認証要求装置130から認証要求を受け取る(ステップC4)。
The
次に、照合補助装置140におけるチャレンジ補助生成部141は、tより小さい整数rと、N-1より小さい整数hとをランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップC5)。
Next, the challenge
次に、照合補助装置140におけるチャレンジ生成部142は、チャレンジ補助(r,h)から多項式
r×xh ・・・(式64)
を算出する。
Next, the
Is calculated.
次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u3とg3とf3とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、N-1次多項式u3とg3とf3と、暗号化鍵の含むt、p0、p1と、多項式r×xhと、に基づき、以下の二つの多項式、
c3,0=p0×u3+t×g3+(r×xh) ・・・(式65-1)
c3,1=p1×u3+t×f3 ・・・(式65-2)
を計算する。(c3,0,c3,1)を暗号文C3とする(ステップC6)。すなわち、C3は暗号化鍵pkによるr×xhの暗号文である。ステップC6で計算した暗号文C3=(c3,0,c3,1)を「チャレンジ」と呼ぶ。
Next, based on the N−1 order polynomials u 3 , g 3, and f 3 , t, p 0 , p 1 including the encryption key, and the polynomial r × x h , the following two polynomials:
c 3,0 = p 0 × u 3 + t × g 3 + (r × x h ) (Formula 65-1)
c 3,1 = p 1 × u 3 + t × f 3 (Formula 65-2)
Calculate Let (c 3,0 , c 3,1 ) be the ciphertext C 3 (step C6). That is, C 3 is an r × x h ciphertext with the encryption key pk. The ciphertext C 3 = (c 3,0 , c 3,1 ) calculated in step C 6 is called a “challenge”.
照合補助装置140は、チャレンジC3を認証要求装置130に送付する(ステップC7)。
Verification
次に、照合補助装置140における登録データ要求生成部143は、認証要求装置130から受け取った認証要求に含まれる認証識別子idを含む登録データ要求を生成する(ステップC8)。
Next, the registration data
照合補助装置140は、登録データ要求を記憶装置120に送付する(ステップC9)。
The
次に、記憶装置120は、照合補助装置140から登録データ要求を受け取る(ステップC10)。
Next, the
記憶装置120における登録データ検索部124は、登録データ記憶部に格納されている一つまたは複数の登録データのうち、登録データ要求に含まれる認証識別子idを含む登録データ((C1,C2),id)を特定する(ステップC11)。
The registration
特定された登録データに含まれるテンプレート(C1,C2)を「照合対象テンプレート」と呼ぶ。 The templates (C 1 , C 2 ) included in the specified registered data are referred to as “collation target templates”.
記憶装置120は、照合対象テンプレート(C1,C2)を照合補助装置140に送付する(ステップC12)。
The
照合補助装置140は、記憶装置120から照合対象テンプレート(C1,C2)を受け取る(ステップC13)。
The verification
認証要求装置130は、照合補助装置140からチャレンジC3=(c3,0,c3,1-)を受け取る(ステップC14)。
The
次に、認証要求装置130における認証情報抽出部132は、認証対象の生体から生体情報(認証ベクトルと呼ぶ)
B=(b0,…,bL-1) ・・・(式66)
を抽出する(ステップC15)。
Next, the authentication
B = (b 0 ,..., B L−1 ) (Expression 66)
Is extracted (step C15).
次に、認証要求装置130における第一レスポンス生成部133は、次の式67に従って生成される、認証ベクトルBの各i番目(i=0,…,L-1)の成分biの加法に関する逆元-biをN-i次の項の係数に持つ多項式
fB=-Σi=0~n-1bi×xN-i ・・・(式67)
を生成する。
Next, the first
Is generated.
ただし、多項式の次数がN以上となった場合には、前述したように、
xN=-1、
xN+1=-x、…
と置き換えることにより、多項式をN-1次以下にする。以下の計算においても同様に行う。
However, when the degree of the polynomial is N or more, as described above,
x N = -1,
x N + 1 = -x, ...
To make the polynomial less than or equal to the (N−1) th order. The same applies to the following calculations.
次に、ステップC14で受け取ったチャレンジC3=(c3,0,c3,1)と、
生成した多項式fBとに基づき、
c4,0=fB×c3,0 ・・・(式68-1)
c4,1=fB×c3,1 ・・・(式68-2)
を計算する。(c4,0,c4,1)を暗号文C4とする(ステップC16)。すなわち、C4は暗号化鍵pkによるr×xh×fBの暗号文である。C4=(c4,0,c4,1)を「第一レスポンス」と呼ぶ。
Next, the challenge C 3 = (c 3,0 , c 3,1 ) received in step C14,
Based on the generated polynomial f B,
c 4,0 = f B × c 3,0 (Formula 68-1)
c 4,1 = f B × c 3,1 (Formula 68-2)
Calculate Let (c 4,0 , c 4,1 ) be the ciphertext C 4 (step C16). That is, C 4 is an encrypted text of r × x h × f B with the encryption key pk. C 4 = (c 4,0 , c 4,1 ) is called a “first response”.
次に、認証要求装置130における第二レスポンス生成部134は、認証ベクトルBの各成分の二乗和
Σi=0~L-1bi
2 ・・・(式69)
を計算する。
Next, the second
Calculate
次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u5とg5とf5とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、3つのN-1次多項式u5とg5とf5と、暗号化鍵の含むt、p0、p1と、生成した値Σi=0~L-1bi
2と、に基づき、以下の二つの多項式、
c5,0=p0×u5+t×g5+(Σi=0~L-1bi
2) ・・・(式70-1)
c5,1=p1×u5+t×f5 ・・・(式70-2)
を計算する。(c5,0,c5,1)を暗号文C5とする(ステップC17)。
Next, three N−1 degree polynomials u 5 , g 5 and f 5 , t, p 0 , p 1 including the encryption key, and generated values Σ i = 0 to L−1 b i 2 , Based on the following two polynomials,
c 5,0 = p 0 × u 5 + t × g 5 + (Σ i = 0 to L−1 b i 2 ) (Equation 70-1)
c 5,1 = p 1 × u 5 + t × f 5 (Equation 70-2)
Calculate Let (c 5,0 , c 5,1 ) be the ciphertext C 5 (step C17).
すなわち、C5は暗号化鍵pkによるΣi=0~L-1bi 2の暗号文である。ステップC17で計算した暗号文C5=(c5,0,c5,1)を「第二レスポンス」と呼ぶ。 That is, C 5 is a ciphertext of Σ i = 0 to L−1 b i 2 with the encryption key pk. The ciphertext C 5 = (c 5,0 , c 5,1 ) calculated in step C 17 is referred to as a “second response”.
次に、認証要求装置130におけるレスポンス生成部135は、第一レスポンスC4=(c4,0,c4,1)と第二レスポンスC5=(c5,0,c5,1)をまとめ、レスポンス(C4,C5)とする(ステップC18)。
Next, the
認証要求装置130は、上記レスポンス(C4,C5)を照合補助装置140に送付する(ステップC19)。
The
次に、照合補助装置140は、認証要求装置130から上記レスポンス(C4,C5)を受け取る(ステップC20)。
Next, the
次に、照合補助装置140における暗号化内積計算部144は、ステップC5で生成したチャレンジ補助(r,h)から、
-r-1×xN-h ・・・(式71)
を計算する。ただし、r-1はtを法としてr×r-1=1を満たす、1以上t未満の整数である。
Next, the encrypted inner
-R -1 × x N-h ··· ( Formula 71)
Calculate However, r −1 is an integer of 1 or more and less than t that satisfies r × r −1 = 1 by modulo t.
次に、照合補助装置140における暗号化内積計算部144は、
・ステップ19で受け取った上記レスポンス(C4,C5)に含まれる第一レスポンスC4=(c4,0,c4,1)と、
・生成した-r-1×xN-hと、に基づき、
c6,0=(-r-1×xN-h)×c4,0 ・・・(式72-1)
c6,1=(-r-1×xN-h)×c4,1 ・・・(式72-2)
を計算する。
(c6,0,c6,1) ・・・(式73)
を暗号文C6とする。すなわち、C6は、暗号化鍵pkによる
(r×xh×fB)×(-r-1×xN-h)=fB ・・・(式74)
の暗号文である。
Next, the encryption inner
The first response C 4 = (c 4,0 , c 4,1 ) included in the response (C 4 , C 5 ) received in step 19;
And -r -1 × x N-h of generated-, based on,
c 6,0 = (− r −1 × x N−h ) × c 4,0 (Formula 72-1)
c 6,1 = (− r −1 × x N−h ) × c 4,1 (Formula 72-2)
Calculate
(C 6,0 , c 6,1 ) (Expression 73)
It is referred to as ciphertext C 6. That, C 6 is due to the encryption key pk (r × x h × f B) × (-r -1 × x N-h) = f B ··· ( Formula 74)
Is the ciphertext.
次に、照合補助装置140における暗号化内積計算部144は、
・ステップC13で受け取った照合対象テンプレート(C1,C2)に含まれる第一テンプレートC1=(c1,0,c1,1)と、
・生成した暗号文C6=(c6,0,c6,1)と、に基づき、
c7,0=c1,0×c6,0 ・・・(式75-1)
c7,1=c1,0×c6,1+c1,1×c6,0 ・・・(式75-2)
c7,2=c1,1×c6,1 ・・・(式75-3)
を計算する。
(c7,0,c7,1,c7,2) ・・・(式76)
を暗号文C7とする(ステップC21)。すなわち、C7は、暗号化鍵pkによるfA×fBの暗号文である。ステップC21で計算した暗号文C7=(c7,0,c7,1,c7,2)を「暗号化内積」と呼ぶ。なお、前述の通り、fA×fBの定数項は登録ベクトルAと認証ベクトルBとの内積<A,B>=Σi=0~n-1ai×biと等しい。
Next, the encryption inner
A first template C 1 = (c 1,0 , c 1,1 ) included in the collation target template (C 1 , C 2 ) received in step C13;
Based on the generated ciphertext C 6 = (c 6,0 , c 6,1 ),
c 7,0 = c 1,0 × c 6,0 (Formula 75-1)
c 7,1 = c 1,0 × c 6,1 + c 1,1 × c 6,0 (Formula 75-2)
c 7,2 = c 1,1 × c 6,1 (Formula 75-3)
Calculate
(C 7,0, c 7,1, c 7,2) ··· ( Equation 76)
The a ciphertext C 7 (step C21). That is, C 7 is a ciphertext of f A × f B with the encryption key pk. Step C21 the
次に、照合補助装置140におけるクエリ生成部145は、
・ステップC13で受け取った照合対象テンプレート(C1,C2)に含まれる第二テンプレートC2=(c2,0,c2,1)と、
・ステップC20で受け取ったレスポンス(C4,C5)に含まれる第二レスポンスC5=(c5,0,c5,1)と、
・ステップC21で生成した暗号化内積C7=(c7,0,c7,1,c7,2)と、に基づき、
c8,0=c2,0+c5,0+-2×c7,0 ・・・(式77-1)
c8,1=c2,1+c5,1-2×c7,1 ・・・(式77-2)
c8,2=-2×c7,2 ・・・(式77-3)
を計算する。(c8,0,c8,1,c8,2)を暗号文C8とする(ステップC22)。すなわち、C8は、暗号化鍵pkによる
(Σi=0~n-1ai
2)+(Σi=0~n-1bi
2)-2×fA×fB ・・・(式78)
の暗号文である。計算した暗号文C8=(c8,0,c8,1,c8,2)を「クエリ」と呼ぶ。
Next, the
A second template C 2 = (c 2,0 , c 2,1 ) included in the collation target template (C 1 , C 2 ) received in step C13;
A second response C 5 = (c 5,0 , c 5,1 ) included in the response (C 4 , C 5 ) received in step C20;
· Encryption generated in step C21 the
c 8,0 = c 2,0 + c 5,0 + -2 × c 7,0 (Formula 77-1)
c 8,1 = c 2,1 + c 5,1 -2 × c 7,1 (Formula 77-2)
c 8,2 = -2 × c 7,2 ··· ( Formula 77-3)
Calculate Let (c 8,0 , c 8,1 , c 8,2 ) be the ciphertext C 8 (step C22). That is, C 8 is (Σ i = 0 to n−1 a i 2 ) + (Σ i = 0 to n−1 b i 2 ) −2 × f A × f B. (Formula 78)
Is the ciphertext. The calculated ciphertext C 8 = (c 8,0 , c 8,1 , c 8,2 ) is called a “query”.
なお、前述の通り、fA×fBの定数項は、登録ベクトルAと認証ベクトルBとの内積<A、B>=Σi=0~n-1ai×biと等しい。したがって、C8は登録ベクトルAと認証ベクトルBとのユークリッド距離dE(A,B)を定数項に持つ多項式の暗号文である。 As described above, the constant term of f A × f B is equal to the inner product <A, B> = Σ i = 0 to n−1 a i × b i of the registration vector A and the authentication vector B. Therefore, C 8 is a polynomial ciphertext having a constant term of Euclidean distance d E (A, B) between registration vector A and authentication vector B.
次に、照合補助装置140は、上記クエリC8=(c8,0,c8,1,c8,2)を検証装置150に送付する(ステップC23)。
Next, the verification
次に、検証装置150は、照合補助装置140から上記クエリC8を受け取る(ステップC24)。
Next, the
検証装置150におけるクエリ検証部153は、
・クエリC8=(c8,0,c8,1,c8,2)と、
・秘密鍵sk=(λ,p0,p1,s)と
に基づき、
D1=c8,0+c8,1×s+c8,2×s2 ・・・(式79)
を計算する。
The
Query C 8 = (c 8,0 , c 8,1 , c 8,2 )
Based on the secret key sk = (λ, p 0 , p 1 , s)
D 1 = c 8,0 + c 8,1 × s + c 8,2 × s 2 (Equation 79)
Calculate
次に、D1をqで割った余りをD2とする。D2がq/2以上であれば、D3=D2-qとする。D2がq/2より小さければ、D3=D2とする(D2∈Z(q)= [-q/2,q/2)∩Z)。 Next, let D 2 be the remainder of dividing D 1 by q. If D 2 is q / 2 or more, D 3 = D 2 -q. If D 2 is smaller than q / 2, D 3 = D 2 (D 2 εZ (q) = [−q / 2, q / 2) ∩Z).
次に、D3をtで割った余りの多項式をD4とする。D4の定数項をD5とする(ステップC25)。算出した値D5を、「検証結果」と呼ぶ。前述の通り、この定数項D5は登録ベクトルAと認証ベクトルBとのユークリッド距離dE(A,B)である。 Next, a remainder polynomial obtained by dividing D 3 by t is D 4 . The constant term of D 4 and D 5 (step C25). The value D 5 calculated, referred to as the "verification result". As described above, the constant term D 5 is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.
次に、検証装置150における照合結果生成部154は、検証結果D5を照合結果dとする。あるいは、検証結果D5と、あらかじめ定められた閾値との大小を比較した結果を照合結果dとしてもよい(ステップC26)。
Then, the matching
検証装置150は、算出した照合結果dを出力する(ステップC27)。
The
なお、第3の実施形態に係る暗号文照合システム100が認証フェーズにて実行する処理は、図4に例示された様態に限定されない。例えば、ステップC5に先だってステップC9からステップC13が実行されてもよい。
Note that the processing executed by the
第3の実施形態に係る暗号文照合システム100の上記の説明において、登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fAは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとし、認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fBは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。
In the above description of the
第3の実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fAを、登録ベクトルAに基づき式21に従って生成される多項式とし、認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fBを、認証ベクトルに基づき式20に従って生成される多項式としてもよい。
The method for generating the two polynomials in the third embodiment is not limited to the above method. For example, the polynomial f A generated in step B2 by the first
[効果の説明]
次に、第3の例示的な実施形態に係る暗号文照合システム100に関する効果について説明する。
[Description of effects]
Next, effects related to the
第3の例示的な実施形態に係る暗号文照合システム100によれば、認証を要求するユーザが、自身の生体と識別子を提示して認証を行う、1:1認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。
According to the
第3の例示的な実施形態に係る暗号文照合システム100によれば、登録要求装置110が抽出した登録ベクトルは、登録要求装置110上で暗号化され、記憶装置120に送られる。また、認証要求装置130が抽出した認証ベクトルは、認証要求装置130上で暗号化され、照合補助装置140に送られる。
According to the
これらの暗号文を復号できるのは、復号鍵を持つ検証装置150であるが、検証装置150の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。
The ciphertext can be decrypted by the
したがって、第3の例示的な実施形態に係る暗号文照合システム100によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。
Therefore, according to the
また、第3の例示的な実施形態に係る暗号文照合システム100によれば、同じ登録ベクトルとの認証を行う際であっても、ステップC5で選ばれた乱数を用いた処理が行われる。
Further, according to the
したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。 Therefore, even if the communication content of the verification process is leaked, the distance equal to the distance at the time of the leaked verification is calculated by resending the leaked content or sending data created using the leaked content Or a small value cannot be calculated.
特に、第3の例示的な実施形態に係る暗号文照合システム100を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。
In particular, when the
さらに、第3の例示的な実施形態に係る暗号文照合システム100は、高速な処理が可能な暗号方式である非特許文献1に記載された暗号方式を用いて構成される。そのため、高速な照合処理が可能である。
Furthermore, the
さらに、第3の例示的な実施形態に係る暗号文照合システム100では、復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形することが可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置150が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置150が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。
Further, in the
[第4の実施形態]
次に、第4の例示的な実施形態について説明する。第4の例示的な実施形態は、前記第2の例示的な実施形態の説明で参照した図5に示す暗号文照合システム200において、非特許文献1に示された暗号方式を用いる場合である。以下では、第4の例示的な実施形態に係る特徴的な部分を中心に説明し、前記第2の例示的な実施形態と同じ部分についての説明は適宜省略する。
[Fourth Embodiment]
Next, a fourth exemplary embodiment will be described. The fourth exemplary embodiment is a case where the encryption scheme shown in
第4の例示的な実施形態は、非特許文献1に記載された、加法及び情報に関して準同型性を持つ暗号方式を用いて構成される。第4の例示的な実施形態の構成には、非特許文献1の暗号方式の持つ次の特徴を利用する。
The fourth exemplary embodiment is configured using an encryption method described in
非特許文献1の暗号方式の鍵生成アルゴリズムの受け取るパラメータは、整数Nおよび素数tを含む。
The parameters received by the encryption method key generation algorithm of
非特許文献1の暗号方式の暗号化アルゴリズムは、各係数がtより小さい、N-1次多項式をメッセージとして受け取る。各係数がtより小さいN-1次多項式fに対し、f×f-1=1を満たすf-1は必ずしも存在しない。すなわち、非特許文献1の暗号方式が暗号化するメッセージには、必ずしも逆元が存在しない。
The encryption algorithm of the encryption method of
一方、tは素数であるため、任意の1以上t未満の整数rに対し、tを法として
r×r-1=1 ・・・(式80)
を満たす、1以上t未満の整数r-1が存在する。
On the other hand, since t is a prime number, with respect to an arbitrary integer r greater than or equal to 1 and less than t, modulo t, r × r −1 = 1 (Equation 80)
There is an integer r −1 that satisfies 1 and less than t.
さらに、hを0以上N-1以下の整数とする。rおよびhについて、
(r×xh)×(r-1×(-xN-h))=1 ・・・(式81)
が成り立つ。
Further, h is an integer of 0 to N-1. For r and h
(R × x h ) × (r −1 × (−x N−h )) = 1 (Formula 81)
Holds.
したがって、任意の1以上t未満の整数rおよび0以上N-1以下の整数hについて、r×xhは非特許文献1の暗号方式を用いて暗号化できるメッセージであり、かつ逆元-r-1×xN-hを持つ。
Therefore, for any integer r greater than or equal to 1 and less than t and integer h greater than or equal to 0 and less than or equal to N−1, r × x h is a message that can be encrypted using the encryption scheme of
[構成の説明]
第4の例示的な実施形態の構成は、図5に示した前記第2の例示的な実施形態に係る暗号文照合システム200の構成と同様であるため、説明は省略する。
[動作の説明]
次に、第4の例示的な実施形態に係る暗号文照合システム200の動作について説明する。
[Description of configuration]
The configuration of the fourth exemplary embodiment is the same as the configuration of the
[Description of operation]
Next, the operation of the
次に、第4の例示的な実施形態に係る暗号文照合システム200における動作は、前記第2の例示的な実施形態と同様に、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
Next, the operation in the
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, an encryption key and a decryption key are mainly generated using the received security parameters.
登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is created and stored mainly using the encryption key generated in the preparation phase.
照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つないし複数の登録ベクトルとの間の距離が算出される。 In the verification phase, the distance between the newly extracted authentication vector and one or more registered vectors is mainly calculated using the decryption key generated in the preparation phase.
次に、暗号文照合システム200が、上述した各フェーズにて実行する処理について詳細に説明する。第4の例示的な実施形態の準備フェーズは、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する準備フェーズの処理の一例を示した図6のフローチャートに従う。図6を参照しながら、第4の例示的な実施形態に係る照合システム200が準備フェーズにて実行する処理について説明する。
Next, the process executed by the
検証装置250における鍵生成部251は、4つのパラメータの組
λ=(N,q,t,σ) ・・・(式82)
を受け取る。ただしNは2冪の整数、qは2Nを法として1と合同な素数、tはqより小さい正の整数、σはN-1次多項式上のある離散ガウス分布の標準偏差である。
The
Receive. Where N is an integer of 2 冪, q is a prime number congruent to 1 modulo 2N, t is a positive integer smaller than q, and σ is a standard deviation of a certain discrete Gaussian distribution on an N−1 order polynomial.
次に、2つのN-1次多項式sおよびeを標準偏差がσであるN次元離散ガウス分布に従って生成する。次に、各係数がqより小さいN-1次多項式p1をランダムに生成する。 Next, two N−1 order polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of σ. Next, an N−1 order polynomial p 1 in which each coefficient is smaller than q is randomly generated.
次に、p0=-(p1×s+t×e) ・・・(式83)
を計算する。
(λ,p0,p1)を暗号化鍵(公開鍵)pk、
(λ,p0,p1,s)を復号鍵(秘密鍵)skとする(ステップD1)。
Next, p 0 = − (p 1 × s + t × e) (Expression 83)
Calculate
(Λ, p 0 , p 1 ) as an encryption key (public key) pk,
Let (λ, p 0 , p 1 , s) be a decryption key (secret key) sk (step D1).
鍵生成部251は、暗号化鍵pkを、暗号文照合システム200において公開する(ステップD2)。鍵生成部251は、復号鍵skを、復号鍵記憶部252に格納する(ステップD3)。
The
なお、第4の例示的な実施形態に係る暗号文照合システム200が準備フェーズにて実行する処理は、図6に例示された様態に限定されない。
Note that the processing executed in the preparation phase by the
第4の例示的な実施形態の登録フェーズは、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する登録フェーズの処理の一例を示した図7のフローチャートに従う。図7を参照しながら、第4の例示的な実施形態に係る照合システム200が、登録フェーズにて実行する処理について説明する。
The registration phase of the fourth exemplary embodiment follows the flowchart of FIG. 7 showing an example of the registration phase process executed by the
登録要求装置210における登録情報抽出部211は、登録対象の生体から生体情報(登録ベクトルと呼ぶ)A=(a0,…,aL-1) ・・・(式84)
を抽出する(ステップE1)。
The registration
Is extracted (step E1).
次に、登録要求装置210における第一テンプレート生成部212は、登録ベクトルA=(a0,…,aL-1)から、次の式85(上記式20)に従って生成される、登録ベクトルAの各i番目(i=0,…,L-1)の成分aiをi次の項の係数に持つL-1次多項式
fA=Σi=0~L-1ai×xi ・・・(式85)
を生成する。
Next, the first
Is generated.
次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u1とg1とf1とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、N-1次多項式u1とg1とf1と、暗号化鍵pkに含まれるt、p0、p1と、生成した多項式fAと、に基づき、以下の二つの多項式、
c1,0=p0×u1+t×g1+fA ・・・(式86-1)
c1,1=p1×u1+t×f1 ・・・(式86-2)
を計算する。(c1,0,c1,1)を暗号文C1とする(ステップE2)。すなわち、C1は暗号化鍵pkによるfAの暗号文である。計算した暗号文C1=(c1,0,c1,1)を「第一テンプレート」と呼ぶ。
Next, based on the N−1 order polynomials u 1 , g 1 and f 1 , t, p 0 , p 1 included in the encryption key pk, and the generated polynomial f A , the following two polynomials:
c 1,0 = p 0 × u 1 + t × g 1 + f A (Expression 86-1)
c 1,1 = p 1 × u 1 + t × f 1 (Expression 86-2)
Calculate Let (c 1,0 , c 1,1 ) be the ciphertext C 1 (step E2). That is, C 1 is a ciphertext of f A with the encryption key pk. The calculated ciphertext C 1 = (c 1,0 , c 1,1 ) is called a “first template”.
次に、登録要求装置210における第二テンプレート生成部213は、登録ベクトルAの各成分の二乗和
Σi=0~L-1ai
2 ・・・(式87)
を計算する。
Next, the second
Calculate
次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u2とg2とf2とを生成する。
Next, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、N-1次多項式u2とg2とf2と、暗号化鍵pkに含まれるt、p0、p1と、生成した値Σi=0~L-1ai
2と、に基づき、以下の二つの多項式、
c2,0=p0×u2+t×g2+(Σi=0~L-1ai
2) ・・・(式88-1)
c2,1=p1×u2+t×f2 ・・・(式88-2)
を計算する。(c2,0,c2,1)を暗号文C2とする(ステップE3)。すなわち、C2は暗号化鍵pkによるΣi=0~L-1ai
2の暗号文である。計算した暗号文C2=(c2,0,c2,1)を「第二テンプレート」と呼ぶ。
Next, N−1 degree polynomials u 2 , g 2, and f 2 , t, p 0 , p 1 included in the encryption key pk, and generated values Σ i = 0 to L−1 a i 2 , Based on the following two polynomials,
c 2,0 = p 0 × u 2 + t × g 2 + (Σ i = 0 to L−1 a i 2 ) (Equation 88-1)
c 2,1 = p 1 × u 2 + t × f 2 (Formula 88-2)
Calculate Let (c 2,0 , c 2,1 ) be the ciphertext C 2 (step E3). That is, C 2 is a ciphertext of Σ i = 0 to L−1 a i 2 with the encryption key pk. The calculated ciphertext C 2 = (c 2,0 , c 2,1 ) is called a “second template”.
次に、登録要求装置210におけるテンプレート生成部214は、第一テンプレートc1=(c1,0,c1,1)と第二テンプレートC2=(c2,0,c2,1)をまとめ、テンプレート(C1,C2)とする(ステップE4)。
Next, the
登録要求装置210は、テンプレートを記憶装置220に送付する(ステップE5)。
The
次に、記憶装置220は、登録要求装置210からテンプレート(C1,C2)を受け取る(ステップE6)。
Next, the
記憶装置220における識別子付与部221は、受け取ったテンプレートに固有の識別子である登録識別子idを決定する(ステップE7)。
The
記憶装置220は、登録識別子idを登録要求装置210に送付する(ステップE8)。
次に、登録要求装置210は、記憶装置から登録識別子idを受け取る(ステップE9)。登録要求装置210は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップE10)。あるいは、登録要求装置210は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。
Next, the
次に、記憶装置220における登録データ生成部222は、テンプレート(C1,C2)と登録識別子idをまとめ、登録データ
((C1,C2),id) ・・・(式89)
とする(ステップE11)。
Next, the registration
(Step E11).
記憶装置220における登録データ生成部222は、登録データ記憶部223に、登録データ((C1,C2),id)を格納する(ステップE12)。
The registration
なお、第4の例示的な実施形態に係る暗号文照合システム200が登録フェーズにて実行する処理は、図7に例示された様態に限定されない。例えば、ステップE8に先だってステップE11とステップE12とが実行されてもよい。
Note that the processing executed in the registration phase by the
第4の例示的な実施形態の認証フェーズの処理の一例は、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示した図8のフローチャートに従う。図8を参照しながら、第4の例示的な実施形態に係る照合システム200が、認証フェーズにて実行する処理について説明する。
An example of the process of the authentication phase of the fourth exemplary embodiment follows the flowchart of FIG. 8 showing an example of the process executed by the
認証要求装置230における認証要求生成部231は、認証要求を生成する(ステップF1)。
The authentication
認証要求装置230は、認証要求を照合補助装置240に送付する(ステップF2)。
The
照合補助装置240は、認証要求装置230から認証要求を受け取る(ステップF3)。
The verification
次に、照合補助装置240におけるチャレンジ補助生成部241は、tより小さい整数rと、N-1より小さい整数hとをランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップF4)。
Next, the challenge
次に、照合補助装置240におけるチャレンジ生成部242は、チャレンジ補助(r,h)から多項式
r×xh ・・・(式90)
を算出する。
Next, the
Is calculated.
次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って、3つのN-1次多項式u3とg3とf3とを生成する。
Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、3つのN-1次多項式u3とg3とf3と、暗号化鍵の含むt、p0、p1-と、多項式r×xhと、に基づき、以下の二つの多項式、
c3,0=p0×u3+t×g3+(r×xh) ・・・(式91-1)
c3,1=p1×u3+t×f3 ・・・(式91-2)
を計算する。(c3,0,c3,1)を暗号文C3とする(ステップF5)。すなわち、C3は暗号化鍵pkによるr×xhの暗号文である。計算した暗号文C3=(c3,0,c3,1)を「チャレンジ」と呼ぶ。照合補助装置240は、チャレンジC3を認証要求装置230に送付する(ステップF6)。
Next, based on the three N−1 degree polynomials u 3 , g 3, and f 3 , t, p 0 , p 1− including the encryption key, and the polynomial r × x h , the following two polynomials ,
c 3,0 = p 0 × u 3 + t × g 3 + (r × x h ) (Formula 91-1)
c 3,1 = p 1 × u 3 + t × f 3 (Formula 91-2)
Calculate Let (c 3,0 , c 3,1 ) be the ciphertext C 3 (step F5). That is, C 3 is an r × x h ciphertext with the encryption key pk. The calculated ciphertext C 3 = (c 3,0 , c 3,1 ) is called a “challenge”. Verification
次に、照合補助装置240における登録データ要求生成部243は、登録データ要求を生成する(ステップF7)。
Next, the registration data
照合補助装置240は、登録データ要求を記憶装置220に送付する(ステップF8)。
The
次に、記憶装置220は、照合補助装置240から登録データ要求を受け取る(ステップF9)。
Next, the
記憶装置220は、登録データ記憶部223に格納されている一つまたは複数の登録データのうち、一部またはすべて(M個とする)の登録データを照合補助装置240に送付する(ステップF10)。ただし、各登録データはテンプレートと登録識別子の組である。
The
照合補助装置240は、記憶装置220からM個の登録データを受け取る(ステップF11)。
The
以下では、各j番目(j=1,…,M)の登録データを
((Cj,1,Cj,2),idj) ・・・(式92)
と表す。
In the following, each j-th (j = 1,..., M) registered data is represented as ((C j, 1 , C j, 2 ), id j ) (Equation 92)
It expresses.
また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),idj)に含まれるテンプレート(Cj,1,Cj,2)は、登録ベクトルAjから生成されたものであるものとする。 In addition, templates (C j, 1 , C j, 2 ) included in each j-th (j = 1,..., M) registration data ((C j, 1 , C j, 2 ), id j ) are: It is assumed that it is generated from the registration vector Aj .
また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),idj)に含まれる第一テンプレートCj,1は、登録ベクトルAjから生成された多項式fA,jの暗号文
Enc(pk、fA,j)=(cj,1,0,cj,1,1) ・・・(式93)
であるものとする。
The first template C j, 1 included in each j-th (j = 1,..., M) registration data ((C j, 1 , C j, 2 ), id j ) is obtained from the registration vector A j. Cipher text Enc (pk, f A, j ) = (c j, 1,0 , c j, 1,1 ) of the generated polynomial f A, j (Equation 93)
Suppose that
また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),idj)に含まれる第二テンプレートCj,2は、登録ベクトルAjの各成分の二乗和
Σi=0~n-1aj,i
2 ・・・(式94)
の暗号文
Enc(pk,Σi=0~n-1aj,i
2)=(cj,2,0,cj,2,1) ・・・(式95)
であるものとする。
Further, the second template C j, 2 included in each j-th (j = 1,..., M) registration data ((C j, 1 , C j, 2 ), id j ) is stored in the registration vector A j . Sum of squares of each component Σ i = 0 to n−1 a j, i 2 (Equation 94)
Ciphertext Enc (pk, Σ i = 0 to n−1 a j, i 2 ) = (c j, 2,0 , c j, 2,1 ) (Equation 95)
Suppose that
認証要求装置230は、照合補助装置240からチャレンジを受け取る(ステップF12)。
The
次に、認証要求装置230における認証情報抽出部232は、認証対象の生体から生体情報(「認証ベクトル」と呼ぶ)
B=(b0,…,bL-1) ・・・(式96)
を抽出する(ステップF13)。
Next, the authentication
B = (b 0 ,..., B L−1 ) (Equation 96)
Is extracted (step F13).
次に、認証要求装置230における第一レスポンス生成部233は、次の式97(上記式20)に従って生成される、認証ベクトルBの各i番目(i=0,…,L-1)の成分biの加法に関する逆元-biをN-i次の項の係数に持つ多項式
fB=-Σi=0~n-1bi×xN-i ・・・(式97)
を生成する。
Next, the first
Is generated.
ただし、多項式の次数がN以上となった場合には、
xN=-1、xN+1=-x、…
と置き換えることにより、多項式をN-1次以下にする。以下の計算においても同様に行う。
However, when the degree of the polynomial is N or more,
x N = -1, x N + 1 = -x, ...
To make the polynomial less than or equal to the (N−1) th order. The same applies to the following calculations.
次に、ステップF12で受け取ったチャレンジC3=(c3,0,c3,1)と、生成した多項式fBと、に基づき、
c4,0=fB×c3,0 ・・・(式98-1)
c4,1=fB×c3,1 ・・・(式98-2)
を計算する。(c4,0,c4,1)を暗号文C4とする(ステップF14)。すなわち、C4は暗号化鍵pkによるr×xh×fBの暗号文である。C4=(c4,0,c4,1)を「第一レスポンス」と呼ぶ。
Next, based on the challenge C 3 = (c 3,0 , c 3,1 ) received in step F12 and the generated polynomial f B ,
c 4,0 = f B × c 3,0 (Formula 98-1)
c 4,1 = f B × c 3,1 (Formula 98-2)
Calculate Let (c 4,0 , c 4,1 ) be the ciphertext C 4 (step F14). That is, C 4 is an encrypted text of r × x h × f B with the encryption key pk. C 4 = (c 4,0 , c 4,1 ) is called a “first response”.
次に、認証要求装置230における第二レスポンス生成部234は、認証ベクトルBの各成分の二乗和
Σi=0~L-1bi
2 ・・・(式99)
を計算する。
Next, the second
Calculate
次に、準備フェーズのステップA2において、検証装置250が公開した暗号化鍵pk=(λ,p0,p1)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN-1次多項式u5とg5とf5とを生成する。
Next, in step A2 of the preparation phase, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the
次に、3つのN-1次多項式u5とg5とf5と、暗号化鍵pkに含まれるt、p0、p1と、生成した値Σi=0~L-1bi
2と、に基づき、以下の二つの多項式、
c5,0=p0×u5+t×g5+(Σi=0~L-1bi
2) ・・・(式100-1)
c5,1=p1×u5+t×f5 ・・・(式100-2)
を計算する。(c5,0,c5,1)を暗号文C5とする(ステップF15)。すなわち、C5は暗号化鍵pkによる、Σi=0~L-1bi
2
の暗号文である。ステップF15で計算した暗号文C5=(c5,0,c5,1)を「第二レスポンス」と呼ぶ。
Next, three N−1 degree polynomials u 5 , g 5, and f 5 , t, p 0 , and p 1 included in the encryption key pk, and generated values Σ i = 0 to L−1 b i 2 And the following two polynomials,
c 5,0 = p 0 × u 5 + t × g 5 + (Σ i = 0 to L−1 b i 2 ) (Equation 100-1)
c 5,1 = p 1 × u 5 + t × f 5 (Equation 100-2)
Calculate Let (c 5,0 , c 5,1 ) be the ciphertext C 5 (step F15). That is, C 5 is Σ i = 0 to L−1 b i 2 depending on the encryption key pk.
Is the ciphertext. The ciphertext C 5 = (c 5,0 , c 5,1 ) calculated in step F15 is referred to as a “second response”.
次に、認証要求装置230におけるレスポンス生成部235は、第一レスポンスC4=(c4,0,c4,1)と第二レスポンスC5=(c5,0,c5,1)をまとめ、レスポンス(C4,C5)とする(ステップF16)。
Next, the
認証要求装置230は、上記レスポンス(C4,C5)を照合補助装置240に送付する(ステップF17)。
The
次に、照合補助装置240は、認証要求装置230から上記レスポンス(C4,C5)を受け取る(ステップF18)。
Next, the
次に、照合補助装置240における暗号化内積計算部244は、ステップF4で生成したチャレンジ補助(r,h)から、
-r-1×xN-h ・・・(式101)
を計算する。ただし、r-1はtを法として、
r×r-1=1 ・・・(式102)
を満たす、1以上t未満の整数である。
Next, the encryption inner
−r −1 × x N−h (Formula 101)
Calculate Where r -1 modulo t
r × r −1 = 1 (Formula 102)
1 or more and less than t.
次に、照合補助装置240における暗号化内積計算部244は、ステップF18で受け取ったレスポンス(C4,C5)に含まれる第一レスポンスC4=(c4,0,c4,1)と、生成した-r-1×xN-hと、に基づき、
c6,0=(-r-1×xN-h)×c4,0 ・・・(式103-1)
c6,1=(-r-1×xN-h)×c4,1 ・・・(式103-2)
を計算する。
(c6,0,c6,1) ・・・(式104)
を暗号文C6とする。すなわち、C6は、暗号化鍵pkによる
(r×xh×fB)×(-r-1×xN-h)=fB ・・・(式105)
の暗号文である。
Next, the encrypted inner
c 6,0 = (- r -1 × x N-h) × c 4,0 ··· ( Formula 103-1)
c 6,1 = (- r -1 × x N-h) ×
Calculate
(C 6,0 , c 6,1 ) (Formula 104)
A and ciphertext C 6. That, C 6 is due to the encryption key pk (r × x h × f B) × (-r -1 × x N-h) = f B ··· ( Formula 105)
Is the ciphertext.
次に、照合補助装置240における暗号化内積計算部244は、各j(j=1,…,M)について、ステップF11で受け取ったM個の登録データのうち、
j番目の登録データ((Cj,1,Cj,2),idj)に含まれる第一テンプレートCj,1=(cj,1,0,cj,1,1)と、
生成した暗号文C6=(c6,0,c6,1)と、に基づき、
cj,7,0=cj,1,0×c6,0 ・・・(式106-1)
cj,7,1=cj,1,0×c6,1+cj,1,1×c6,0 ・・・(式106-2)
cj,7,2=cj,1,1×c6,1 ・・・(式106-3)
を計算する。
Next, the encryption inner
a first template C j, 1 = (c j, 1,0 , c j, 1,1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j );
Based on the generated ciphertext C 6 = (c 6,0 , c 6,1 ),
c j, 7,0 = c j, 1,0 × c 6,0 (Formula 106-1)
c j, 7,1 = c j, 1,0 × c 6,1 + c j, 1,1 × c 6,0 (Equation 106-2)
c j, 7,2 = c j, 1,1 × c 6,1 (Formula 106-3)
Calculate
各j(j=1,…,M)について、
(cj,7,0,cj,7,1,cj,7,2) ・・・(式107)
を暗号文Cj,7とする(ステップF19)。すなわち、各j(j=1,…,M)について、Cj,7は暗号化鍵pkによるfA,j×fBの暗号文である。
For each j (j = 1, ..., M)
(C j, 7,0, c j , 7,1, c j, 7,2) ··· ( Formula 107)
Is the ciphertext C j, 7 (step F19). That is, for each j (j = 1,..., M), C j, 7 is a ciphertext of f A, j × f B with the encryption key pk.
各j(j=1,…,M)について、計算した暗号文Cj,7=(cj,7,0,cj,7,1,cj,7,2)を「暗号化内積」と呼ぶ。 Each j (j = 1, ..., M) for the calculated ciphertext C j, 7 = (c j , 7,0, c j, 7,1, c j, 7,2) "Encryption inner product" Call it.
なお、前述の通り、各j(j=1,…,M)について、fA,j×fBの定数項は登録ベクトルAjと認証ベクトルBとの内積<Aj,B>=Σi=0~n-1aj,i×biと等しい。 Incidentally, as described above, each of j (j = 1, ..., M) for, f A, inner product of the constant term of the j × f B is the registered vectors A j and an authentication vector B <A j ,B> = Σ i = 0 to n−1 a j, i × b i is equal to i .
次に、照合補助装置240におけるクエリ生成部245は、各j(j=1,…,M)について、
・ステップF11で受け取ったM個の登録データのうち、
j番目の登録データ((Cj,1,Cj,2),idj)に含まれる第二テンプレート
Cj,2=(cj,2,0,cj,2,1)と、
・ステップF18で受け取ったレスポンス(C4,C5)に含まれる第二レスポンスC5=(c5,0,c5,1)と、
・ステップF19で生成したj番目の暗号化内積Cj,7=(cj,7,0,cj,7,1,cj,7,2)と、に基づき、
cj,8,0=cj,2,0+c5,0+-2×cj,7,0 ・・・(式108-1)
cj,8,1=cj,2,1+c5,1-2×cj,7,1 ・・・(式108-2)
cj,8,2=-2×cj,7,2 ・・・(式108-3)
を計算する。
Next, the
Of the M registration data received in step F11,
a second template C j, 2 = (c j, 2,0 , c j, 2,1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j );
A second response C 5 = (c 5,0 , c 5,1 ) included in the response (C 4 , C 5 ) received in step F18;
Step j-th encrypted inner product generated by the
c j, 8,0 = c j, 2,0 + c 5,0 + -2 × c j, 7,0 (Formula 108-1)
c j, 8,1 = c j, 2,1 + c 5,1 −2 × c j, 7,1 (Formula 108-2)
c j, 8,2 = −2 × c j, 7,2 (Formula 108-3)
Calculate
各j(j=1,…,M)について、(cj,8,0,cj,8,1,cj,8,2)を暗号文Cj,8とする(ステップF20)。 For each j (j = 1,..., M), (c j, 8,0 , c j, 8,1 , c j, 8,2 ) is set as ciphertext C j, 8 (step F20).
すなわち、各j(j=1,…,M)について、Cj,8は、暗号化鍵pkによる
(Σi=0~n-1aj,i
2)+(Σi=0~n-1bi
2)-2×fA,j×fB
・・・(式109)
の暗号文である。
That is, for each j (j = 1,..., M), C j, 8 is (Σ i = 0 to n−1 a j, i 2 ) + (Σ i = 0 to n− ) according to the encryption key pk. 1 b i 2 ) -2 × f A, j × f B
... (Formula 109)
Is the ciphertext.
各j(j=1,…,M)について、計算した暗号文
Cj,8=(cj,8,0,cj,8,1,cj,8,2) ・・・(式110)
を「クエリ」と呼ぶ。
For each j (j = 1,..., M), the calculated ciphertext C j, 8 = (c j, 8,0 , c j, 8,1 , c j, 8,2 ) (Formula 110) )
Is called a “query”.
なお、前述の通り、各j(j=1,…,M)について、fA,j×fBの定数項は登録ベクトルAjと認証ベクトルBとの内積<Aj,B>=Σi=0~n-1aj,i×biと等しい。 Incidentally, as described above, each of j (j = 1, ..., M) for, f A, inner product of the constant term of the j × f B is the registered vectors A j and an authentication vector B <A j ,B> = Σ i = 0 to n−1 a j, i × b i is equal to i .
したがって、各j(j=1,…,M)について、Cj,8は登録ベクトルAjと認証ベクトルBとのユークリッド距離dE(Aj,B)を定数項に持つ多項式の暗号文である。 Therefore, for each j (j = 1,..., M), C j, 8 is a polynomial ciphertext having a constant term of Euclidean distance d E (A j , B) between registration vector A j and authentication vector B. is there.
次に、照合補助装置240における検証データ生成部246は、各j(j=1,…,M)について、
・ステップF11で受け取ったM個の登録データのうち、j番目の登録データに含まれる第二テンプレートを用いて、ステップF20で生成したクエリCj,8=(cj,8,0,cj,8,1,cj,8,2)と、
・ステップF11で受け取ったM個の登録データのうち、j番目の登録データに含まれる登録識別子idjと、を、
j番目の検証データ(Cj,8,idj)とする(ステップF21)。
Next, the verification
The query C j, 8 = (c j, 8,0 , c j generated in step F20 using the second template included in the jth registration data among the M pieces of registration data received in step F11 , 8,1 , c j, 8,2 ),
Of the M pieces of registration data received in step F11, the registration identifier id j included in the j-th registration data,
The j-th verification data (C j, 8 , id j ) is assumed (step F21).
次に、照合補助装置240は、M個の検証データを検証装置250に送付する(ステップF22)。
Next, the
次に、検証装置250は、照合補助装置240からM個の検証データを受け取る(ステップF23)。
Next, the
検証装置250におけるクエリ検証部253は、各j(j=1,…,M)について、
・ステップF23で受け取ったM個の検証データのうち、j番目の検証データ(Cj,8,idj)に含まれるクエリCj,8=(cj,8,0,cj,8,1,cj,8,2)と、
・秘密鍵(復号鍵)sk=(λ,p0,p1,s)と、に基づき、
Dj,1=cj,8,0+cj,8,1×s+cj,8,2×s2 ・・・(式111)
を計算する。
The
Of the M pieces of verification data received in step F23, the query C j, 8 = (c j, 8,0 , c j, 8, included in the jth verification data (C j, 8 , id j ) 1 , c j, 8,2 ),
Based on the secret key (decryption key) sk = (λ, p 0 , p 1 , s),
D j, 1 = c j, 8,0 + c j, 8,1 × s + c j, 8,2 × s 2 (Equation 111)
Calculate
次に、各j(j=1,…,M)について、Dj,1をqで割った余りを、Dj,2とする。 Next, for each j (j = 1,..., M), the remainder obtained by dividing D j, 1 by q is D j, 2 .
次に、各j(j=1,…,M)について、Dj,2がq/2以上であればDj,3=Dj,2-qとする。Dj,2がq/2より小さければDj,3=Dj,2とする。これは、Dのqを法とした[-q/2,q/2)への剰余演算である。 Next, for each j (j = 1,..., M), if D j, 2 is equal to or greater than q / 2, then D j, 3 = D j, 2- q. If D j, 2 is smaller than q / 2, then D j, 3 = D j, 2 . This is a remainder operation to [−q / 2, q / 2) modulo D of q.
次に、各j(j=1,…,M)について、Dj,3をtで割った余りの多項式をDj,4とする。Dj,4の定数項を、Dj,5とする(ステップF24)。各j(j=1,…,M)について、Dj,5を「検証結果」と呼ぶ。 Next, for each j (j = 1,..., M), a remainder polynomial obtained by dividing D j, 3 by t is D j, 4 . The constant term of D j, 4 is set to D j, 5 (step F24). For each j (j = 1,..., M), D j, 5 is called a “verification result”.
前述の通り、各j(j=1,…,M)について、M個の検証データのうちj番目の検証データから生成されたD5は、登録ベクトルAjと認証ベクトルBとのユークリッド距離dE(Aj,B)である。 As described above, for each j (j = 1,..., M), D 5 generated from the j-th verification data among the M verification data is the Euclidean distance d between the registration vector A j and the authentication vector B. E (A j , B).
次に、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、
・j番目の検証データに含まれるクエリに基づき、ステップF24で生成した検証結果Dj,5と、
・j番目の検証データに含まれる登録識別子idjと、をまとめ、j番目の照合結果(Dj,5,idj)とする。あるいは、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、
・j番目の検証データに含まれるクエリからステップF24で生成した検証結果idjと、あらかじめ定められた閾値との大小を比較した結果djと、
・j番目の検証データに含まれる登録識別子idjと、をまとめ、j番目の照合結果(dj,idj)としてもよい(ステップF25)。
Next, the verification
The verification result D j, 5 generated in step F24 based on the query included in the jth verification data;
The registration identifier id j included in the j-th verification data is collected and used as the j-th matching result (D j, 5 , id j ). Or the collation
A result d j that compares the verification result id j generated in step F24 from the query included in the j-th verification data with a predetermined threshold;
The registration identifier id j included in the j-th verification data may be collected and used as the j-th collation result (d j , id j ) (step F25).
検証装置250は、算出したM個の照合結果を出力する(ステップF26)。
The
なお、第4の例示的な実施形態に係る暗号文照合システム200が認証フェーズにて実行する処理は、図8に例示された様態に限定されない。例えば、ステップF5に先だってステップF9からステップF13が実行されてもよい。
Note that the processing executed by the
第4の例示的な実施形態に係る暗号文照合システム200の上記の説明において、登録要求装置210における第一テンプレート生成部212がステップB2において生成する多項式fAは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとし、認証要求装置130における第一レスポンス生成部233がステップC16において生成する多項式fBは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。
In the above description of the
第4の例示的な実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置210における第一テンプレート生成部212がステップB2において生成する多項式fAを、登録ベクトルAに基づき上記式21に従って生成される多項式とし、認証要求装置230における第一レスポンス生成部233がステップF16において生成する多項式fBを、認証ベクトルに基づき上記式20に従って生成される多項式としてもよい。
[効果の説明]
The method of generating the two polynomials in the fourth exemplary embodiment is not limited to the above method. For example, the polynomial f A generated by the first
[Description of effects]
次に、第4の例示的な実施形態に係る暗号文照合システム200に関する効果について説明する。
Next, effects related to the
第4の例示的な実施形態に係る暗号文照合システム200によれば、認証を要求するユーザが、自身の識別子を提示せず、登録された全ての情報と、認証に用いられる情報の照合を行う、1:N認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。
According to the
第4の例示的な実施形態に係る暗号文照合システム200によれば、登録要求装置210が抽出した登録ベクトルは、登録要求装置210上で暗号化され、記憶装置220に送られる。また、認証要求装置230が抽出した認証ベクトルは、認証要求装置230上で暗号化され、照合補助装置240に送られる。これらの暗号文を復号できるのは、復号鍵を持つ検証装置250であるが、検証装置250の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。
According to the
したがって、第4の例示的な実施形態に係る暗号文照合システム200によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。
Therefore, according to the
また、第4の例示的な実施形態に係る暗号文照合システム200によれば、同じ登録ベクトルとの認証を行う際であっても、ステップC5で選ばれた乱数を用いた処理が行われる。したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。
Also, according to the
特に、第4の例示的な実施形態に係る暗号文照合システム200を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。
In particular, when the
さらに、第4の例示的な実施形態に係る暗号文照合システム200は、高速な処理が可能な暗号方式である非特許文献1に記載された暗号方式を用いて構成される。そのため、高速な照合処理が可能である。
Furthermore, the
さらに、第4の例示的な実施形態に係る暗号文照合システム200では、復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置250が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置250が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。
Furthermore, in the
特に制限されるものではないが、本発明の適用例として、例えば、特徴量として多値ベクトルを用いる生体認証が挙げられる。 Although not particularly limited, as an application example of the present invention, for example, biometric authentication using a multi-value vector as a feature amount can be mentioned.
例えば登録フェーズにおける入力データと、照合フェーズにおける入力データを、指紋や静脈などから取得した生体情報から得られた生体情報(特徴ベクトル)とする。この場合、本発明を適用することで、生体情報を秘匿したまま、記憶装置に格納された暗号化された生体データと、照合要求装置から創出された暗号化された生体データが同一人物から採取されたものであるか否かを、2つの生体情報の間の距離が閾値以下となるかどうかにより判定することが可能となる。 For example, the input data in the registration phase and the input data in the verification phase are biometric information (feature vectors) obtained from biometric information obtained from fingerprints or veins. In this case, by applying the present invention, the encrypted biometric data stored in the storage device and the encrypted biometric data created from the verification requesting device are collected from the same person while the biometric information is kept secret. It can be determined whether the distance between the two pieces of biological information is equal to or less than a threshold value.
特に、生体情報は、常に安定して同一のデータが取得できるわけではないことが知られており、同じ人物から取得されるデータが類似している(各要素の距離が小さいデータが取得できる)と仮定することができる。このため、本発明は、生体認証等への活用に有用である。 In particular, it is known that biometric information cannot always stably acquire the same data, and the data acquired from the same person is similar (data with a small distance between each element can be acquired). Can be assumed. For this reason, the present invention is useful for biometric authentication and the like.
なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 In addition, each disclosure of the above non-patent literature shall be incorporated into this book with reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the scope of the claims of the present invention. . That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
100、200 暗号文照合システム
110、210 登録要求装置
111、211 登録情報抽出部
112、212 第一テンプレート生成部
113、213 第二テンプレート生成部
114、214 テンプレート生成部
120、220 記憶装置
121、221 識別子付与部
122、222 登録データ生成部
123、223 登録データ記憶部
124 登録データ検索部
130、230 認証要求装置
131、231 認証要求生成部
132、232 認証情報抽出部
133、233 第一レスポンス生成部
134、234 第二レスポンス生成部
135、235 レスポンス生成部
140、240 照合補助装置
141、241 チャレンジ補助生成部
142、242 チャレンジ生成部
143、243 登録データ要求生成部
144、244 暗号化内積計算部
145、245 クエリ生成部
150、250 検証装置
151、251 鍵生成部
152、252 復号鍵記憶部
153、253 クエリ検証部
154、254 照合結果生成部
246 検証データ生成部
100, 200
Claims (10)
前記検証装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
前記登録要求装置は、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
前記照合補助装置は、
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、
前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、
前記認証要求装置は、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助装置からの前記チャレンジと、に基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付し、
前記照合補助装置は、
前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、前記登録要求装置で暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付し、
前記検証装置は、
前記照合補助装置から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する、ことを特徴とする暗号文照合システム。 Including a registration requesting device, a verification assisting device, an authentication requesting device, and a verification device;
The verification device calculates an encryption key and decryption key pair of a homomorphic encryption method capable of polynomial operation, and publishes the encryption key,
The registration request device includes:
Registration information that is a numeric vector is polynomialized,
The registration information that has been polynomialized is encrypted using the encryption key,
The verification assisting device is:
Upon receiving an authentication request from the authentication requesting device, one coefficient and its order are selected at random, and a polynomial in which coefficients other than the order coefficient are set to 0 is generated,
Sending a challenge consisting of ciphertext encrypted with the encryption key to the polynomial to the authentication requesting device,
The authentication requesting device includes:
The authentication information, which is a numeric vector, is polynomialized,
Based on the authentication information that has been polynomialized and the challenge from the verification assisting device, using the encryption key, the product of the authentication information that has been polynomialized and the polynomial used to generate the challenge Calculate the ciphertext,
The ciphertext of the product of the authentication information polynomialized and the polynomial used to generate the challenge is sent as the response to the verification assisting device,
The verification assisting device is:
When receiving a response from the authentication requesting device, based on the response, challenge assistance consisting of the one coefficient and its order, and the registration information encrypted by the registration requesting device, the encryption key is used. , Calculating a ciphertext of the distance between the registration information and the authentication information,
Sending the ciphertext of the distance between the registration information and the authentication information to the verification device;
The verification device includes:
The encrypted text of the distance between the registration information and the authentication information received from the verification assisting device is decrypted using the decryption key to calculate the distance,
A ciphertext matching system, wherein the calculated distance or a comparison result between the distance and a predetermined threshold is output as a matching result.
前記記憶装置は、
記憶部と、
前記登録要求装置から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部と、
暗号化された前記登録情報と前記識別子との組からなる登録データを前記記憶部に格納する登録データ生成部と、
前記照合補助装置からの登録データ要求を受け、前記記憶部に記憶されている前記登録データの中から、前記登録データ要求に含まれる識別子と組とされている、暗号化された登録情報を、前記照合補助装置に送付する登録データ検索部と、
を備え、
前記照合補助装置は、
前記認証要求装置から受け取った認証要求に含まれ、前記認証情報に対応する認証識別子を含む登録データ要求を前記記憶装置に送付し、
前記記憶装置から、前記認証識別子に対応する暗号化された前記登録情報を受け取り、
前記認証要求装置から受け取った前記レスポンスと、前記チャレンジ補助と、前記記憶装置から受け取った暗号化された前記登録情報とに基づき、前記登録情報と前記認証情報の距離の暗号文を算出する、ことを特徴とする請求項1に記載の暗号文照合システム。 A storage device;
The storage device
A storage unit;
An identifier giving unit that gives an identifier to the encrypted registration information received from the registration requesting device;
A registration data generating unit that stores registration data consisting of a pair of the encrypted registration information and the identifier in the storage unit;
In response to a registration data request from the verification assisting device, out of the registration data stored in the storage unit, encrypted registration information that is paired with an identifier included in the registration data request, A registered data search unit to be sent to the verification assisting device;
With
The verification assisting device is:
A registration data request included in the authentication request received from the authentication requesting device and including an authentication identifier corresponding to the authentication information is sent to the storage device;
Receiving the encrypted registration information corresponding to the authentication identifier from the storage device;
Calculating a ciphertext of a distance between the registration information and the authentication information based on the response received from the authentication requesting device, the challenge assistance, and the encrypted registration information received from the storage device. The ciphertext matching system according to claim 1, wherein:
前記記憶装置は、
記憶部と、
前記登録要求装置から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部と、
暗号化された前記登録情報に前記識別子との組からなる登録データを前記記憶部に格納する登録データ生成部と、
を備え、
前記照合補助装置からの登録データ要求を受け、前記記憶部に格納されている一つ又は複数の登録データのうち、一部又はすべての登録データを、前記照合補助装置に送信し、
前記照合補助装置は、
前記記憶装置から、一つ又は複数の登録データを受け取り、
前記記憶装置から受け取った各登録データについて、
前記認証要求装置から受け取った前記レスポンスと、前記チャレンジと、前記登録データに含まれる暗号化された登録情報とに基づき、暗号化された前記登録情報と前記認証情報の距離の暗号文を算出し、
前記登録データについて、算出した前記登録情報と前記認証情報の距離の暗号文と、前記登録データに含まれる識別子との組を検証データとし、
生成した一つ又は複数の前記検証データを前記検証装置に送付し、
前記検証装置は、
前記照合補助装置から、一つ又は複数の前記検証データを受け取り、
前記検証データについて、
前記検証データに含まれる、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離と予め定められた閾値との比較結果、又は、算出した前記距離と前記検証データに含まれる識別子との組を、照合結果とし、前記照合結果を出力する、ことを特徴とする請求項1に記載の暗号文照合システム。 A storage device;
The storage device
A storage unit;
An identifier giving unit that gives an identifier to the encrypted registration information received from the registration requesting device;
A registration data generating unit for storing in the storage unit registration data consisting of a set of the identifier and the encrypted registration information;
With
In response to a registration data request from the verification assisting device, one or a plurality of registered data stored in the storage unit is transmitted to the verification assisting device, part or all of the registration data,
The verification assisting device is:
Receiving one or more registration data from the storage device;
For each registration data received from the storage device,
Based on the response received from the authentication requesting device, the challenge, and the encrypted registration information included in the registration data, a ciphertext of a distance between the encrypted registration information and the authentication information is calculated. ,
About the registration data, a set of the ciphertext of the calculated distance between the registration information and the authentication information and an identifier included in the registration data is used as verification data,
Sending one or more of the generated verification data to the verification device;
The verification device includes:
Receiving one or more verification data from the verification assistant device;
About the verification data,
Decrypting the ciphertext of the distance between the registration information and the authentication information contained in the verification data using the decryption key to calculate the distance;
A comparison result between the calculated distance and a predetermined threshold value, or a set of the calculated distance and an identifier included in the verification data is set as a verification result, and the verification result is output. The ciphertext matching system according to claim 1.
数値ベクトルである登録情報から、登録情報の第i成分(ただしiはL-1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL-1次多項式を生成し、前記認証要求装置は、数値ベクトルである認証情報の第i成分(ただしiはL-1以下の非負整数)の逆元をN-i次(NはLより大の正整数)の項の係数とするN次多項式を生成し、あるいは、
前記登録要求装置は、数値ベクトルである登録情報の第i成分(ただしiはL-1以下の非負整数)の逆元を、N-i次(NはLより大の正整数)の項の係数とするN次多項式を生成し、前記認証要求装置は、数値ベクトルである認証情報の第i成分(ただしiはL-1以下の非負整数、Lは2以上の正整数)を、i次の項の係数とするL-1次多項式を生成する、ことを特徴とする請求項1乃至3のいずれか1項に記載の暗号文照合システム。 The registration request device includes:
Generates an L-1 degree polynomial from the registration information, which is a numeric vector, with the i-th component of the registration information (where i is a non-negative integer less than L-1 and L is a positive integer greater than 2) as a coefficient of the i-th term. Then, the authentication requesting device converts the inverse element of the i-th component (where i is a non-negative integer less than or equal to L-1) of the authentication information, which is a numerical vector, into a term of Ni order (N is a positive integer greater than L). Generate an Nth order polynomial with coefficients of, or
The registration requesting device uses the inverse element of the i-th component (where i is a non-negative integer less than or equal to L-1) of the registration information, which is a numeric vector, in terms of the order of Ni order (N is a positive integer greater than L). An N-th order polynomial is generated as a coefficient, and the authentication requesting apparatus generates an i-th component of authentication information that is a numerical vector (where i is a non-negative integer not greater than L-1 and L is a positive integer not less than 2). The ciphertext matching system according to claim 1, wherein an L−1 order polynomial is generated as a coefficient of the term.
多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
登録情報の登録にあたり、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
照合補助処理では、
認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした多項式を生成し、
前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求の要求元に送付し、
前記認証要求元では、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助処理からの前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助処理に送付し、
前記照合補助処理では、
前記認証要求元からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を、検証先に送付し、
前記検証先では、
前記照合補助処理から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する、ことを特徴とする暗号文照合方法。 A ciphertext verification method by at least one computer,
Calculate a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation, and publish the encryption key,
When registering registration information,
Registration information that is a numeric vector is polynomialized,
The registration information that has been polynomialized is encrypted using the encryption key,
In the auxiliary verification process,
When receiving an authentication request, one coefficient and its order are selected at random,
Generating a polynomial in which the coefficients other than the coefficient of the order are 0;
Sending a challenge consisting of ciphertext encrypted using the encryption key to the request source of the authentication request, the polynomial,
In the authentication request source,
The authentication information, which is a numeric vector, is polynomialized,
Based on the authentication information that has been polynomialized and the challenge from the verification auxiliary process, the encryption of the product of the authentication information that has been polynomialized and the polynomial that was used to generate the challenge, using the encryption key Calculate the sentence,
The ciphertext of the product of the polynomial authentication information and the polynomial used to generate the challenge is sent as the response to the verification assisting process,
In the verification auxiliary process,
When receiving a response from the authentication request source, based on the response, challenge assistance consisting of the one coefficient and its order, and the encrypted registration information, the registration information is Calculate ciphertext of authentication information distance,
Send the ciphertext of the distance between the registration information and the authentication information to the verification destination,
In the verification destination,
The encrypted text of the distance between the registration information and the authentication information received from the verification assisting process is decrypted using the decryption key to calculate the distance,
A ciphertext matching method, characterized by outputting the calculated distance or a comparison result between the distance and a predetermined threshold value as a matching result.
認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付するチャレンジ生成部と、
数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受け、
前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を検証装置に送付するクエリ生成部と、
を備え、
前記検証装置では、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を照合結果として出力する、照合補助装置。 A verification assisting device that acquires the encryption key published by a verification device that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation,
When an authentication request is received from the authentication requesting device, one coefficient and its order are selected at random, a polynomial with coefficients other than the order coefficient set to 0 is generated, and the polynomial is encrypted using the encryption key. A challenge generation unit that sends a challenge made of encrypted ciphertext to the authentication requesting device;
The authentication information, which is a numerical vector, is polynomialized, and based on the challenge, a ciphertext of a product of the authentication information polynomialized and the polynomial used to generate the challenge is calculated using the encryption key, and the polynomial The ciphertext of the product of the authentication information and the polynomial used to generate the challenge is received as a response from the authentication requesting device,
Based on the response, challenge assistance consisting of the one coefficient and its degree, and registration information encrypted in a registration request device and stored in a storage device, using the encryption key, A query generation unit that calculates a ciphertext of a distance between the registration information and the authentication information, and sends the ciphertext of the distance between the registration information and the authentication information to a verification device;
With
In the verification device, the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance, and the calculated distance or the distance and a predetermined threshold value are calculated. A collation auxiliary device that outputs a comparison result as a collation result.
数値ベクトルである認証情報を多項式化する認証情報抽出部と、
照合補助装置に送信する認証要求を生成する認証要求生成部と、
を備え、
前記認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する前記照合補助装置から前記チャレンジを受け取り、
前記認証要求生成部で多項式化した前記認証情報と、前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして、前記照合補助装置に送付するレスポンス生成部をさらに備え、
前記照合補助装置では、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を、検証装置に送付する、認証要求装置。 An authentication requesting device that obtains the encryption key from a verification device that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation and publishes the encryption key,
An authentication information extraction unit that polynomializes authentication information that is a numerical vector;
An authentication request generator for generating an authentication request to be transmitted to the verification auxiliary device;
With
Upon receipt of the authentication request, one coefficient and its order are selected at random, a polynomial with a coefficient other than the order coefficient as 0 is generated, and the polynomial is encrypted using the encryption key. Receiving the challenge from the verification assisting device that sends a challenge consisting of a sentence to the authentication requesting device;
Based on the authentication information polynomialized by the authentication request generation unit and the challenge, encryption of the product of the authentication information polynomialized using the encryption key and the polynomial used to generate the challenge A response generation unit that calculates a sentence and sends the ciphertext of a product of the authentication information that has been polynomialized and the polynomial used to generate the challenge as a response to the verification assistant device;
The verification assisting device uses the encryption key based on the response, challenge assistance consisting of the one coefficient and its order, and polynomialized registration information encrypted by the registration requesting device. An authentication requesting device that calculates a ciphertext of a distance between registration information and authentication information, and sends the ciphertext of a distance between the registration information and the authentication information to a verification device.
多項式演算が可能な準同型暗号方式の前記暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する鍵生成部と、
前記照合補助装置から前記登録情報と前記認証情報の距離の前記暗号文を受け取ると、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出するクエリ検証部と、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する照合結果生成部と、
を備えた検証装置。 When an authentication request is received from the authentication requesting device, one coefficient and its order are selected at random, a polynomial in which coefficients other than the order coefficient are set to 0 is generated, and the polynomial is encrypted using an encryption key When the challenge composed of ciphertext is sent to the authentication requesting device and a response is received from the authentication requesting device, the response, challenge assistance consisting of the one coefficient and its order, and the registration requesting device are encrypted and stored. A verification device connected to a verification assisting device that calculates a ciphertext of the distance between the registration information and the authentication information using the encryption key based on the polynomialized registration information stored in the device. And
A key generation unit that calculates a pair of the encryption key and the decryption key of a homomorphic encryption method capable of polynomial operation and publishes the encryption key;
When the ciphertext of the distance between the registration information and the authentication information is received from the verification assisting device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance A query validator;
A collation result generation unit that outputs the calculated distance or a comparison result between the distance and a predetermined threshold as a collation result;
Verification device with
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした多項式を生成し、
前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する処理と、
数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受ける処理と、
前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する処理と、
を実行させるプログラム。 A computer that constitutes a verification assisting device connected to a verification device connected to an authentication requesting device connected to a verification device that calculates a pair of encryption keys and decryption keys of a homomorphic encryption method capable of polynomial operation and discloses the encryption key,
Upon receiving an authentication request from the authentication requesting device, one coefficient and its order are randomly selected,
Generating a polynomial in which the coefficients other than the coefficient of the order are 0;
A process of sending a challenge consisting of a ciphertext obtained by encrypting the polynomial using the encryption key to the authentication requesting device;
The authentication information, which is a numerical vector, is polynomialized, and based on the challenge, a ciphertext of a product of the authentication information polynomialized and the polynomial used to generate the challenge is calculated using the encryption key, and the polynomial Processing to receive a response from the authentication requesting device that outputs the ciphertext of the product of the authentication information and the polynomial used to generate the challenge as a response;
Upon receiving a response from the authentication requesting device, the response, challenge assistance consisting of the one coefficient and its order, and polynomial registration information encrypted by the registration requesting device and stored in the storage device, Based on the encryption key, calculating a ciphertext of the distance between the registration information and the authentication information, and sending the ciphertext of the distance between the registration information and the authentication information to the verification device;
A program that executes
認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした多項式を生成し、前記多項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを認証要求装置に送付し、前記認証要求装置から受け取ったレスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する照合補助装置に接続された前記認証要求装置を構成するコンピュータに、
前記認証要求を生成して前記照合補助装置に送信する処理と、
前記照合補助装置からチャレンジを受け取る処理と、
数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助装置から受け取ったチャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた多項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記多項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付する処理と、
を実行させるプログラム。 Obtain an encryption key published by a verification device that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation,
Upon receipt of the authentication request, one coefficient and its order are selected at random, a polynomial in which a coefficient other than the coefficient of the order is 0 is generated, and the polynomial is encrypted using the encryption key. To the authentication requesting device, the response received from the authentication requesting device, challenge assistance consisting of the one coefficient and its order, and the polynomialized registration information encrypted by the registration requesting device. Based on the encryption key, the ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is connected to a verification auxiliary device that sends the ciphertext to the verification device A computer constituting the authentication requesting device,
Processing to generate the authentication request and send it to the verification assistant device;
Receiving a challenge from the verification assisting device;
The authentication information that is a numerical vector is polynomialized, and the authentication information that is polynomialized using the encryption key based on the authentication information that is polynomialized and the challenge received from the verification auxiliary device, and generation of the challenge Calculate the ciphertext of the product with the polynomial used in
A process of sending the ciphertext of the product of the authentication information polynomialized and the polynomial used to generate the challenge as the response to the verification assisting device;
A program that executes
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018509387A JP6927199B2 (en) | 2016-03-31 | 2017-03-29 | Ciphertext matching system, node device, ciphertext matching method, and program |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016072770 | 2016-03-31 | ||
| JP2016-072770 | 2016-03-31 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017170780A1 true WO2017170780A1 (en) | 2017-10-05 |
Family
ID=59965840
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/013085 Ceased WO2017170780A1 (en) | 2016-03-31 | 2017-03-29 | Cryptogram collation system, node device, cryptogram collation method, and program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6927199B2 (en) |
| WO (1) | WO2017170780A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11849019B2 (en) | 2019-02-25 | 2023-12-19 | Nec Corporation | Encryption system, key generation apparatus, key generation method, key generation program, and homomorphic operation apparatus |
| US12463793B2 (en) | 2021-08-31 | 2025-11-04 | Nec Corporation | Authentication system, authenticatee apparatus, authenticator apparatus, authentication method, and authentication program |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016114692A (en) * | 2014-12-12 | 2016-06-23 | 富士通株式会社 | Encryption processing device, encryption processing method, and encryption processing program |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105391554B (en) * | 2015-11-09 | 2019-02-01 | 中国电子科技集团公司第三十研究所 | A kind of method and system for realizing fingerprint matching using ciphertext |
-
2017
- 2017-03-29 WO PCT/JP2017/013085 patent/WO2017170780A1/en not_active Ceased
- 2017-03-29 JP JP2018509387A patent/JP6927199B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016114692A (en) * | 2014-12-12 | 2016-06-23 | 富士通株式会社 | Encryption processing device, encryption processing method, and encryption processing program |
Non-Patent Citations (2)
| Title |
|---|
| HARUNA HIGO ET AL.: "Ninshoji no Joho Kaiji no Sukunai Hitoku Seitai Ninsho Hoshiki", 2016 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2016, vol. 3C2-3, 19 January 2016 (2016-01-19), pages 1 - 8 * |
| YUMI SAKEMI ET AL.: "Jundokei Ango o Mochiita Hitoku Seitai Ninsho ni Taisuru Wolf-gata Kogeki eno Taisaku Gijutsu", 2015 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2015, vol. 3B2-1, 20 January 2015 (2015-01-20), pages 1 - 8 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11849019B2 (en) | 2019-02-25 | 2023-12-19 | Nec Corporation | Encryption system, key generation apparatus, key generation method, key generation program, and homomorphic operation apparatus |
| US12463793B2 (en) | 2021-08-31 | 2025-11-04 | Nec Corporation | Authentication system, authenticatee apparatus, authenticator apparatus, authentication method, and authentication program |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2017170780A1 (en) | 2019-02-07 |
| JP6927199B2 (en) | 2021-08-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7127543B2 (en) | Matching system, method, device and program | |
| CN108737115B (en) | A privacy-preserving method for solving intersection of private attribute sets | |
| CN108777623B (en) | A Revocable Public Key Encryption Method Based on Fuzzy Keyword Search | |
| CN113434875B (en) | A lightweight access method and system based on blockchain | |
| WO2016169346A1 (en) | Polynomial fully homomorphic encryption method and system based on coefficient mapping transform | |
| JPWO2016203762A1 (en) | Encryption information creation device, encryption information creation method, recording medium, and verification system | |
| JP2016080766A (en) | Encryption processing method, encryption processing device and encryption processing program | |
| CN111786786A (en) | Proxy re-encryption method and system supporting equality determination in cloud computing environment | |
| Zhao et al. | Are you the one to share? Secret transfer with access structure | |
| JP6451938B2 (en) | Ciphertext verification system, method, and program | |
| JP2017194521A (en) | Key exchange method, key exchange system | |
| JP6738061B2 (en) | Ciphertext verification system, method, and recording medium | |
| JP6229716B2 (en) | Verification system, node, verification method and program | |
| JPWO2014185450A1 (en) | Verification system, node, verification method and program | |
| CN104092686A (en) | Method of privacy protection and data security access based on SVM classifier | |
| Xin et al. | Identity-based quantum designated verifier signature | |
| Cao et al. | A quantum proxy weak blind signature scheme | |
| CN116346336B (en) | Key distribution method based on multi-layer key generation center and related system | |
| CN109120606A (en) | A kind of processing method and processing device of the characteristic attribute with secret protection | |
| WO2014030706A1 (en) | Encrypted database system, client device and server, method and program for adding encrypted data | |
| WO2018174063A1 (en) | Collating system, method, device, and program | |
| CN109088721B (en) | Entrustable uncovering and encrypting method | |
| JP6927199B2 (en) | Ciphertext matching system, node device, ciphertext matching method, and program | |
| Singamaneni et al. | [Retracted] An Enhanced Dynamic Nonlinear Polynomial Integrity‐Based QHCP‐ABE Framework for Big Data Privacy and Security | |
| JP5799635B2 (en) | ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 2018509387 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17775314 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17775314 Country of ref document: EP Kind code of ref document: A1 |