WO2018174063A1 - Collating system, method, device, and program - Google Patents

Collating system, method, device, and program Download PDF

Info

Publication number
WO2018174063A1
WO2018174063A1 PCT/JP2018/011049 JP2018011049W WO2018174063A1 WO 2018174063 A1 WO2018174063 A1 WO 2018174063A1 JP 2018011049 W JP2018011049 W JP 2018011049W WO 2018174063 A1 WO2018174063 A1 WO 2018174063A1
Authority
WO
WIPO (PCT)
Prior art keywords
encrypted data
verification
random number
value
vector
Prior art date
Application number
PCT/JP2018/011049
Other languages
French (fr)
Japanese (ja)
Inventor
春菜 肥後
寿幸 一色
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2018174063A1 publication Critical patent/WO2018174063A1/en

Links

Images

Definitions

  • the present invention is based on the priority claim of Japanese Patent Application No. 2017-054406 (filed on Mar. 21, 2017), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a verification system, method, apparatus, and program.
  • the authentication target is accepted when the authentication biometric information created based on the biometric subject to authentication and the template stored in the database are similar (or coincident).
  • the authentication target is not accepted when the biometric information for authentication and the template are not similar (or matched).
  • the biometric information for authentication acquired by a sensor or the like changes little by little even when the biometric information for the same person as the biometric information for registration is extracted. Even if a plurality of pieces of biometric information for authentication are created from a single living body, the plurality of pieces of biometric information for authentication do not always match each other.
  • the distance between the plurality of pieces of biometric information for authentication created from the same living body is short.
  • the distance between a plurality of pieces of authentication biometric information created from different living bodies is long.
  • the biometric authentication technology collates the template stored in the database with the authentication information created for the authentication target by using the above characteristics. For example, fingerprints, veins, etc. are examples of biometric information, and are data that does not change throughout life. The damage caused when biometric information is leaked outside the verification system is significant. For this reason, the biometric information is one piece of information that requires confidentiality.
  • a template-protective biometric authentication technique that prevents the biometric information from leaking to the outside of the verification system is important.
  • the notation such as the encryption algorithm used in this specification will be described.
  • public key cryptography will be described.
  • the public key cryptosystem is represented by three algorithms (Gen, Enc, Dec): key generation, encryption, and decryption.
  • the key generation algorithm (indicated as “Gen”) outputs a public key pk and a secret key sk based on the security parameter 1 ⁇ ⁇ . (pk, sk) ⁇ Gen (1 ⁇ ⁇ )
  • the encryption algorithm receives the public key pk and plaintext m and outputs ciphertext c. c ⁇ Enc (pk, m)
  • the decryption algorithm receives the secret key sk and ciphertext c, and outputs a decryption result m ′.
  • Enc (m) and Dec (c) are omitted and Enc (m) and Dec (c) may be abbreviated, as is clear from the context. Yes (abbreviated in the drawing).
  • Homomorphic encryption is public key cryptography that can calculate the ciphertext of the operation result of plaintext from a plurality of ciphertexts. For example, ciphertext Enc (m 1 + ...
  • FIG. 1 is a diagram for explaining an example of related technology of a three-party model biometric authentication system (see, for example, the ciphertext matching system disclosed in Patent Document 1). Note that the registration request device 10 and the verification request device 20 on the client 11 side may be the same device. In the system of FIG. 1, the preparation phase is as follows.
  • the decryption apparatus 50 generates a key and generates a public key (pk) and a secret key (sk) of the homomorphic encryption.
  • the decryption device 50 transmits the public key to the registration request device 10, the verification request device 20, and the server 12.
  • the decoding device 50 is also referred to as a “verification device” when verifying the presence / absence of similarity (match) between the biometric information for verification and the biometric information for registration based on the decoding result as well as the decoding.
  • the registration phase is as follows.
  • the registration requesting device 10 generates registration data Enc (pk, Z) obtained by encrypting the feature vector Z of biometric information for registration using the public key pk.
  • the registration requesting apparatus 10 transmits registration data Enc (pk, Z) to the server 12.
  • the server 12 registers the registration data Enc (pk, Z) in the storage device 30.
  • the verification phase is as follows.
  • the collation requesting device 20 generates collation data Enc (pk, Z ′) obtained by encrypting the feature vector Z ′ of the biometric information for collation using the public key pk.
  • the verification requesting device 20 transmits the verification data Enc (pk, Z ′) to the server 12. If the registration requester and the verification requester are the same person, the distance between the two feature vectors Z and Z 'is close, and the distance between the feature vectors Z and Z' of different persons is long.
  • the collation device 40 of the server 12 utilizes the homomorphism of the encryption algorithm and encrypts the encrypted distance data Enc (pk, d (Z, Z ')) is calculated.
  • d (a, b) represents the distance between a and b.
  • the server 12 transmits a query including the encrypted distance data Enc (pk, d (Z, Z ′)) to the decryption device 50.
  • the decryption device 50 decrypts the encrypted distance data Enc (pk, d (Z, Z ')) using the secret key sk, and obtains a decryption result d (Z, Z').
  • the decoding result d (Z, Z ′) indicates distance information.
  • the decoding device 50 confirms whether or not the decoding result d (Z, Z ′) is equal to or less than a predetermined threshold value t. As a result of the confirmation, when the decryption result d (Z, Z ′) is equal to or smaller than the threshold value t, the decryption device 50 transmits an acceptance (OK) to the server 12.
  • the decryption device 50 transmits a rejection (no ⁇ good: NG) to the server 12.
  • the server 12 outputs an acceptance to the verification requesting device 20 if the response of the decryption device 50 is OK, and outputs an unacceptance to the verification requesting device 20 if the response of the decryption device 50 is NG.
  • the input data to be concealed is encrypted using an encryption key, and a registration data generation unit that outputs registration data, and the registration data is uniquely stored in the ciphertext storage unit.
  • a storage device for storing identifiers for identification in the identifier storage unit so that the correspondence can be recognized, a data verification request generating unit for encrypting input data to be verified using an encryption key and outputting verification data, and registration A distance calculation unit that outputs encrypted distance data using an encryption key from the data and verification data, a decryption unit that decrypts the encrypted distance data using a decryption key and generates distance data, and a random number from the distance data
  • the ciphertext verification system is disclosed which is adapted information about the data does not leak.
  • the registration information of a user encrypted using an encryption algorithm that can calculate the Hamming distance in an encrypted state is stored between the registration information and the verification information encrypted using the encryption algorithm.
  • the calculation result of the Hamming distance is converted so as to include the Hamming distance between the verification information and the user, and the Hamming distance between the verification information and another person different from the user, and the input verification information and the converted registration information
  • the comparison result of the Hamming distance between the collation information and the user included in the calculated Hamming distance the Hamming distance between the collation information and another person different from the user, and a preset threshold value included in the calculated Hamming distance
  • a method for determining whether or not input collation information is illegal is disclosed.
  • Patent Document 4 describes a technology in which the size of the template does not depend on the parameter of the range of the acceptable range and the load on the third party is small.
  • the distance from the biometric information that is a target to be compared with the registered biometric information is disclosed to a third party. It is known that a malicious third party can perform an attack (hill climbing attack) by using the distance obtained at the time of collation.
  • the main safety of confidential biometric authentication is as follows.
  • A) Unrecoverable feature This refers to the property that the original biological information cannot be restored from the template.
  • the method of accepting by sending the same value (for example, 0 ciphertext) to any template may not have the resistance to spoofing attacks.
  • a method capable of restoring the feature quantity can perform authentication using the restored feature quantity. For this reason, it is not resistant to spoofing attacks.
  • a semi-honest attacker is assumed as the attacker. That is, the attacker always operates according to the algorithm indicated by the method, and tries to take more information from the obtained information.
  • the biometric information registered by, for example, a hill climbing attack can be restored.
  • Hill climbing attacks are well-known attack methods in the biometrics field.
  • a first distance d (Z, Z ′) (Z is a feature vector extracted from biometric information for registration) with respect to the feature vector Z ′ generated using a certain feature vector Z ′ is obtained.
  • a second distance d (Z, Z ′′) with the feature vector Z of the registered biometric information with respect to Z ′′ obtained by modifying a part of the feature vector Z ′ (for example, inverted by 1 bit) is obtained.
  • the modification brings the feature vector Z ′′ closer to the feature vector Z of the registered biometric information.
  • the second distance d (Z, Z ′′) is larger than the first distance d (Z, 'Z ′)
  • the feature vector Z ′′ becomes the feature vector of the registered biometric information by the modification. It means that it was away from Z. It is known that by repeating such an action, it is possible to restore the feature vector Z from the registered data (or the feature vector Z ′ from the authentication (collation) data) with a relatively small amount of calculation. .
  • FIGS. 2A to 2C are diagrams schematically illustrating an example of the above-described hill climbing attack (assuming that biological information is two-dimensional coordinates).
  • FIGS. 2A to 2C when an attacker selects biometric information used for authentication (verification) and obtains a distance between the biometric information for verification and the registered biometric information, the attacker is authenticated ( Registered biological information can be restored by repeating (collation).
  • the decryptor can calculate the distance, it is vulnerable to a hill climbing attack by an attacker colluding with the decryptor.
  • the decryptor determines an authentication result (acceptance, non-acceptance) from the distance between the registered biometric information and the biometric information to be verified.
  • An attacker who can know the distance obtained by the decryptor and the biological information used for authentication (collation) can restore the registered biological information. This is the case when an attacker colluding with a decryptor tries to authenticate (verify) by pretending to be a client. For this reason, it can be said that it is a realistic attack.
  • the server can manipulate the distance, it is vulnerable to hill climbing attacks by attackers colluding with the server.
  • the server can try collation (authentication) by manipulating the distance.
  • an attacker who can know the biological information used for collation can restore the registered biological information.
  • the space of the distance between the registered biometric information and the feature vector of the verification biometric information is narrower than the biometric information space and is easier to hit than the biometric information.
  • the distance between the registered biometric information and the biometric feature vector can be calculated by trying the collation by manipulating the distance.
  • the registered biometric information and the matching biometric information are obtained by querying a decryptor (for example, the decryption device 50 in FIG.
  • Non-Patent Document 1 ⁇ Security against attackers colluding with servers and users, ⁇ Security against attackers colluding with decryptors and users, ⁇ Safety that eavesdroppers cannot impersonate users, A method that satisfies all three safety points has been proposed.
  • the biometric information for verification is accepted as being identical or similar to the biometric information for registration.
  • the verification requesting device 20 sends a ciphertext having a value of 0 as the distance D2
  • the verification biometric information is identical or similar to the registration biometric information. It will not be accepted. This is due to the following reason.
  • the verification requesting device 20 calculates D 2 that is one of the divided distances, and sends the encrypted D 2 to the verification device 40 (server).
  • FIG. 3 is a diagram for explaining an operation sequence of the system based on Non-Patent Document 1. First, the outline of the operation of each algorithm of Modified-Elgamal encryption will be described.
  • the key generation algorithm first receives a security parameter 1 ⁇ ⁇ as input.
  • the encryption algorithm first receives the public key pk and message m as input.
  • the decryption algorithm may return g ⁇ m instead of message m. If Modified-Elgamal cipher is used, ciphertext corresponding to addition of plaintext or constant multiplication can be calculated with encryption.
  • the verification device 50 generates a public key pk and a secret key sk using the security parameter 1 ⁇ ⁇ , and publishes the public key pk (S100).
  • d E 2 (X, Y) The distance between registered data (n-dimensional vector) and collation data (n-dimensional vector): d E 2 (X, Y) is divided as described above.
  • the collation request device 20 transmits a collation request to the collation device 40 (S102).
  • the collation request unit 20 the random number R 0, R 1, to produce a ... R t.
  • Enc (pk, S ⁇ ⁇ i 1, n> y i ⁇ 2)... (25) Is generated.
  • Scl ((-2y i ), Enc (pk, Sx i )) (i 1, ..., n)
  • the verification requesting device 20 performs a homomorphic encryption addition operation.
  • collation request unit 20 the random number R 0, R 1, ..., hash value of R t H (R 0 ), H (R 1 ),..., H (R t ) (33) are transmitted as a response to the verification device 40 (S116).
  • hash values H (R 0 ), H (R 1 ),..., H (R t ) are transmitted to the verification device 40.
  • the collation device 40 performs a scalar operation on the random number S on the template Enc (pk, D 1 ) of the storage device 30 to obtain Enc (pk, SD 1 ) (34). Ask for.
  • the verification device 40 receives a response from the verification request device 20.
  • the verification device 40 Enc (pk, R 0 + S (D 1 + D 2 ⁇ 0)), Enc (pk, R 1 + S (D 1 + D 2 -1)), ..., Hash value transmitted as a response from the verification requesting device 20 with Enc (pk, R t + S (D 1 + D 2 ⁇ t)) H (R 0 ), H (R 1 ), ..., H (R t ) At the same time, it is transmitted to the verification device 50 as a query (S117).
  • the encrypted data of the query from the verification device 40 Enc (pk, R 0 + S (D-0)), Enc (pk, R 1 + S (D-1)), ... Enc (pk, R t + S (D-t)) Are decrypted using the secret key (sk) (S118).
  • z 0 R 0 + S (D-0) ⁇ -Dec (sk, Enc (pk, R 0 + S (D-0)))
  • z 1 R 1 + S (D-1) ⁇ -Dec (sk, Enc (pk, R 1 + S (D-1)))
  • z t R t + S (D ⁇ t) ⁇ -Dec (sk, Enc (pk, R t + S (D ⁇ t))) ...
  • the hash value H (R 0 + S (D-0)), H (R 1 + S (D-1)), ... H (R t + S (D-t)) ... (38) Is calculated.
  • the biometric information registered by the hill climbing attack can be restored if the attacker obtains the biometric information and distance used for authentication.
  • Non-Patent Document 1 multi-value vectors are targeted as biological information.
  • the present invention provides a system, an apparatus, a method, and a program that are resistant to at least a hill climbing attack by an attacker who collaborates with a decryptor of a three-party model when collating binary vector information. Is one of the purposes.
  • Another object of the present invention is to provide a system, apparatus, method, and program for disabling the operation of the distance between registered biometric information and collation biometric information by a three-part model server in addition to the above-described object. It is in.
  • the verification system encrypts the first calculation result and the second calculation result relating to the elements of the binary first vector for registration from the registration requesting device with the encryption key, respectively.
  • a storage device that receives and stores the encrypted data, and upon receiving a verification request from the verification requesting device, the encrypted data obtained by the calculation with the first random number while the encrypted data of the first calculation result is encrypted Obtained by calculation with a collation device to be transmitted to the collation request device, and the encrypted data transmitted from the collation device, with the encrypted data encrypted and with the elements of the binary second vector for collation
  • the verification request device that transmits the encrypted data to the verification device, and a verification device are provided.
  • the verification device Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the verification device encrypts the first vector and the second vector while encrypting them. Generating encrypted data having a value based on a distance and a predetermined arithmetic expression relating to at least the first random number and the second random number; and a non-negative integer value whose distance is equal to or less than a predetermined threshold (t); If they match, a hash value of the value taken by the arithmetic expression is generated, and the generated encrypted data and the hash value are transmitted as a query to the verification device.
  • the verification device receives the query transmitted from the verification device, decrypts the encrypted data of the query with a decryption key, calculates a hash value of a decrypted value, and among the hash values of the query, the decryption It is determined whether or not there is a value equal to the hash value of the value, and acceptance or non-acceptance is determined.
  • encrypted data obtained by encrypting a first calculation result and a second calculation result relating to elements of a binary first vector for registration from a registration requesting device with an encryption key respectively.
  • the verification device transmits the encrypted data obtained by the calculation with the first random number while encrypting the encrypted data of the first calculation result to the verification requesting device.
  • the verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data
  • encrypted data obtained by encrypting a first calculation result and a second calculation result related to elements of a binary first vector for registration from a registration requesting device with an encryption key is provided.
  • the collation device receives a collation request from the collation requesting device, the encryption data obtained by the operation with the first random number is transmitted to the collation requesting device while the encrypted data of the first calculation result is encrypted.
  • the process of The verification requesting device receives the encrypted data transmitted from the verification device, and encrypts the encrypted data obtained by calculation with the binary second vector element for verification while encrypting the encrypted data.
  • a third step of transmitting to the verification device Based on the cipher data transmitted from the collation requesting device and the cipher data of the second calculation result, the collation device encrypts the first vector and the second vector while encrypting them.
  • Generating encrypted data having a value based on a distance and a predetermined arithmetic expression relating to at least the first random number and the second random number; When the distance matches a non-negative integer value equal to or less than a predetermined threshold value, a hash value of the value taken by the arithmetic expression is generated,
  • the verification device receives the query transmitted from the verification device, decrypts the encrypted data of the query with a decryption key, calculates a hash value of a decrypted value, and among the hash values of the query, the decryption And a fifth step of determining whether or not there is a value equal to the has
  • encrypted data obtained by encrypting the first calculation result and the second calculation result relating to the elements of the binary first vector for registration from the registration requesting device with an encryption key is obtained.
  • the verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data
  • a computer-readable recording medium storing the above program is a semiconductor storage, such as a RAM (Random Access Memory), a ROM (Read Only Memory), or an EEPROM (Electrically, Erasable and Programmable ROM), an HDD, etc. (Hard Disk Drive), CD (Compact Disk), DVD (Digital Versatile Disk) and other non-transitory media.
  • a RAM Random Access Memory
  • ROM Read Only Memory
  • EEPROM Electrically, Erasable and Programmable ROM
  • HDD etc.
  • HDD etc.
  • CD Compact Disk
  • DVD Digital Versatile Disk
  • FIG. 1 is a probability diagram schematically illustrating a system configuration of a first exemplary embodiment of the present invention. It is a figure explaining an example of the operation
  • Embodiments of the present invention will be described. First, the problem from which the present invention was created will be described by taking, as an example, a case where a binary vector is collated by the collation system described with reference to FIG.
  • Non-Patent Document 1 deals with multi-value vectors as biological information.
  • a technique that handles binary vector type biometric information and has resistance to hill climbing attacks by an attacker who collaborates with a decryptor has not been proposed yet.
  • FIG. 4 is a diagram for explaining an example of impersonation when a binary vector is handled in the system described with reference to FIG. Although not particularly limited, the Modified-Elgamal encryption algorithm is used in FIG. 4 as in FIG.
  • the multi-value vector type biological information described with reference to FIG. 3 is collated by the Euclidean distance d E 2 (X, Y). The system seems to be able to handle binary vector type biological information.
  • Enc (pk, x i ⁇ 2) Enc (pk, x i )... (43)
  • the verification requesting device 20 Enc (pk, R 0 + S (CD 1 -0)), Enc (pk, R 1 + S (CD 1 -1)), ... Enc (pk, R t + S (CD 1 -t)) ... (47)
  • Hash value H (R 0 ), H (R 1 ),..., H (R t ) ... (48) Is transmitted to the verification device 40 (S116A).
  • C is an integer equal to or less than t (for example, 0).
  • the collation device 40 obtains Enc (pk, SD 1 ) by performing a scalar operation on the random number S on the template Enc (pk, D 1 ) of the storage device 30.
  • the verification device 40 sends a response from the verification request device 20: Enc (pk, R 0 + S (CD 1 -0)), Enc (pk, R 1 + S (CD 1 -1)), ...
  • Enc (pk, R t + S (CD 1 -t + D 1)) Enc (pk, R t + S (Ct)) ... (49)
  • H (R 0 ), H (R 1 ), ..., H (R t ) ... (50) At the same time, the query is transmitted to the verification device 50 (S117A).
  • the encrypted data of the query from the verification device 40 Enc (pk, R 0 + S (C-0)), Enc (pk, R 1 + S (C-1)), ... Enc (pk, R t + S (Ct)) Is decrypted using the secret key (sk) (S118A).
  • z 0 R 0 + S (C-0) ⁇ -Dec (sk, Enc (pk, R 0 + S (C-0)))
  • z 1 R 1 + S (C-1) ⁇ -Dec (sk, Enc (pk, R 1 + S (C-1)))
  • z t R t + S (Ct) ⁇ -Dec (sk, Enc (pk, R t + S (Ct))) ...
  • the hash value of the decrypted value H (R 0 + S (C-0)), H (R 1 + S (C-1)), ... H (R t + S (C-t)) ... (52) Is calculated.
  • step S105 of FIG. 4 if the verification device 40 does not transmit Enc (pk, S) as a challenge, the verification request device 20 generates Enc (pk, R ⁇ + S (CD 1 - ⁇ )). Cannot impersonate and cannot impersonate.
  • the present invention it is possible to avoid the above-mentioned impersonation by using a method in which the encrypted data of the random number S is not independently transmitted in the challenge transmitted from the verification device to the verification request device in the distance division verification system. Yes.
  • the data is transmitted to the storage device (130 in FIGS. 5 and 11) and stored in the storage device (130 in FIGS. 5 and 11).
  • the collation device (140 in FIGS. 5 and 11) receives the collation request from the collation request device (120 in FIGS. 5 and 11), the first random number remains encrypted with the encrypted data of the first calculation result.
  • the encrypted data obtained by the calculation is transmitted to the verification requesting device (120 in FIGS. 5 and 11).
  • the verification requesting device (120 in FIGS. 5 and 11) is an element of a binary second vector for verification while the encrypted data transmitted from the verification device (140 in FIGS. 5 and 11) is encrypted.
  • the encrypted data obtained by the calculation is transmitted to the verification device (140 in FIGS. 5 and 11).
  • the collation device (140 in FIGS. 5 and 11) further determines the value that the arithmetic expression takes when the distance (D) matches a non-negative integer value ( ⁇ ) that is equal to or less than a predetermined threshold (t).
  • the hash value is generated, and the generated encrypted data and the hash value are transmitted as a query to the verification device (150 in FIGS. 5 and 11).
  • the verification device calculates the hash value of the decrypted value by decrypting the encrypted data of the query transmitted from the verification device (140 in FIGS. 5 and 11) with a decryption key, It is determined whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, and accept or reject is determined.
  • the binary vector type biological information may be an iris (IrisCode), a palm print (CompetitiveCode), or the like.
  • FIG. 5 is a diagram for explaining a first exemplary embodiment of the present invention.
  • FIG. 5 schematically illustrates the configuration of the verification system 100 according to the first exemplary embodiment.
  • the registration request device 110, the verification request device 120, the storage device 130, the verification device 140, and the verification device 150 are the registration request device 10, the verification request device 20, the storage device 30, the verification device 40, FIG. Although it corresponds to each verification device 50, the data to be processed and transmitted / received are different.
  • the registration requesting device 110 generates a first random number (S).
  • the registration requesting device 110 further generates a plurality (t + 1) of second random numbers (R 0 , R 1 ,..., R t ).
  • t is a predetermined threshold value used for determining the degree of coincidence.
  • the registration requesting device 110 has a plurality of (for example, t + 1) second random numbers (R 0 , R 1 ,..., R t ) hash values (H (R 0 ), H (R 1 ),. (R t )) is generated.
  • a hash function having homomorphism is preferably used in order to conceal the distance.
  • H (x) k ⁇ x...
  • the hash value can be calculated using only the public key of Modified Elgamal encryption.
  • the hash value can be calculated using only the public key (the elliptic Elgamal cipher is also outlined in paragraph 0144 below).
  • the distance (a first binary vector for registration and a second second vector for verification) by the server 102 (storage device 130, verification device 140). (Distance) can also be prevented.
  • a hash value ⁇ (Enc (pk, S (D 1 - ⁇ ) + R ⁇ ), H (R ⁇ )), ( ⁇ 0,..., t + 1 sets of encrypted data and the second random number (R ⁇ ) , t) is the second template.
  • the storage device 130 When the storage device 130 receives the first template and the second template transmitted from the registration requesting device 110, the storage device 130 generates a registration identifier and stores it in correspondence with the registration identifier Id.
  • Second template Enc (pk, S (D 1 -0) + R 0 ), Enc (pk, S (D 1 -1) + R 1 ), ..., Enc (pk, S (D 1 -t
  • the verification device 140 transmits the encrypted data transmitted as a response from the verification request device 120: Enc (pk, SS 'D 2 )
  • the third random number (S ′) is removed (removed) from the encrypted data (Enc (pk, SS ′ D 2 )), and the Hamming distance between the first vector X and the second vector Y ( division value D) (D 2) about the encrypted data: Enc (pk, SD 2 )... (66) Ask for.
  • the third random number (S ′) is removed from the encrypted data (Enc (pk, SD 1 )) and the encrypted data (Enc (pk, SS′D 2 )) sent as a response from the verification requesting device 120.
  • a plurality (for example, t + 1) hash values of the obtained values: H (b ⁇ R ⁇ ) ( ⁇ 0,..., t) (71) Is generated.
  • the encrypted data of the above formula (69) and the hash value of the formula (71) are transmitted as a query to the verification device 150.
  • the verification device 150 determines whether or not there is a set that satisfies the condition that the hash value (H (b ⁇ (S (D ⁇ ) + R ⁇ ))) is equal to the hash value (H (b ⁇ R ⁇ )) of the query. To check.
  • the verification device 150 accepts the query when there is a set that satisfies the condition, and determines that the query is not accepted when there is no set that satisfies the condition.
  • FIG. 6 is a diagram illustrating an operation sequence of the embodiment described with reference to FIG.
  • an n-dimensional binary vector X [x 1 , .., x n ] ⁇ ⁇ 0,1 ⁇ n ...
  • Y [y 1 , .., y n ] ⁇ ⁇ 0,1 ⁇ n ... (75)
  • the Hamming distance d H (X, Y) is divided as follows.
  • y i 78
  • D 1 does not depend on the value of the matching vector Y.
  • a hash function having homomorphism is preferably used for concealing the distance.
  • the collation system 100 uses a homomorphic encryption method having homomorphism for addition and scalar calculation.
  • a homomorphic encryption method having homomorphism for addition and scalar calculation.
  • Modified Elgamal encryption is used as the encryption method.
  • elliptic Elgamal encryption or Paillier encryption may be used.
  • the elliptic Elgamal cipher is defined for a group on an elliptic curve over a finite field.
  • the generation of the public key pk and the secret key sk (S100) in the preparation phase is as described above.
  • the public key pk is also delivered to the storage device 130.
  • a hash function having homomorphism is used for hiding the distance.
  • Enc (pk, S (1-2x 1 )), Enc (pk, S (1-2x 2 )), ..., Enc (pk, S (1-2x n ))) and D 1- Encrypted data obtained by encrypting the value obtained by calculating the first random number (S) and the value obtained by adding the second random number (R ⁇ ) to ⁇ ( ⁇ 0,..., t) with the public key (pk).
  • H (R ⁇ ) (second template): ⁇ Enc (pk, S (D 1 -0) + R 0 ), H (R 0 ) ⁇ , ⁇ Enc (pk, S (D 1 -1) + R 2 ), H (R 1 ) ⁇ ,..., ⁇ Enc (pk, S (D 1 -t) + R t ), H (R t ) ⁇ Is generated.
  • the storage device 130 receives the first template transmitted from the registration requesting device 110: Enc (pk, S (1-2x 1 )), Enc (pk, S (1-2x 2 )),..., Enc (pk, S (1-2x n ))) and Second template: ⁇ Enc (pk, S (D 1 -0) + R 0 ), H (R 0 ) ⁇ , ⁇ Enc (pk, S (D 1 -1) + R 2 ), H (R 1 ) ⁇ ,..., ⁇ Enc (pk, S (D 1 -t) + R t ), H (R t ) ⁇ Are stored in correspondence with the registration identifier Id (S122).
  • the verification device 140 When the verification device 140 receives the verification request (including the verification identifier Id) from the verification request device 120 (S123), the encrypted data stored in association with the Id from the storage device 130: Enc (pk, S (1-2x 1 )), Enc (pk, S (1-2x 2 )),..., Enc (pk, S (1-2x n ))))
  • H (R 0 ) ⁇ ⁇ Enc (pk, S (D 1 -1) + R 2 )
  • H (R 1 ) ⁇ H (R 1 ) ⁇
  • H (R t ) ⁇ H (R t ) ⁇ Is received (S124).
  • Enc (pk, SS '(1-2x i )) (i 1,..., n)
  • the collation device 140 does not transmit Enc (pk, SS ′) to the collation request device 120. Therefore, the verification requesting device 120 cannot calculate Enc (pk, SS ′ D 1 ). For this reason, the client cannot impersonate the Hamming distance.
  • the collation device 140 performs a scalar operation on the reciprocal number S ′ ⁇ ( ⁇ 1) of the random number S ′ with respect to Enc (pk, SS ′ D 2 ) transmitted from the collation request device 120. Scl (S ' ⁇ (-1), Enc (pk, SS' D 2 ))... (93) by doing, Enc (pk, S D 2 )... (94) Is calculated.
  • the verification device 140 uses this Enc (pk, S D 2 ) and the template registered in the storage device 130.
  • Enc (pk, b ⁇ (S (D- ⁇ ) + R ⁇ )) ( ⁇ 0,..., t)... (97) Ask for.
  • H (b ⁇ R ⁇ ) ( ⁇ 0, ..., t) (98)
  • the verification device 150 uses the encrypted data transmitted as a query from the verification device 140.
  • the verification device 150 further includes a hash value of the decrypted value.
  • H (b ⁇ (S (D- ⁇ ) + R ⁇ )) ( ⁇ 0,..., t)... (100) Ask for.
  • the hash function H () is the same as the hash function H () used in the storage device 130 and the collation device 140 of the server 102.
  • the verification device 150 accepts if there is one that satisfies the above equation, and rejects if there is no one that satisfies the above equation.
  • the verification result (acceptance, rejection) in the verification device 150 is transmitted to the verification device 140 and the verification request device 120 (S131).
  • FIG. 7 is a diagram illustrating an example of the configuration of each device according to the first exemplary embodiment.
  • the collation system 100 includes an information processing system such as a computer system.
  • the collation system 100 according to the first exemplary embodiment includes a registration request device 110, a storage device 130, a collation request device 120, a collation device 140, and a verification device 150.
  • the registration request device 110 includes a registration information extraction unit 111, a template generation unit 112, and a communication unit 113.
  • the storage device 130 includes a storage device that stores information, and also includes a calculation unit that processes information. That is, the storage device 130 includes an identifier management unit 131, a registration data generation unit 132, a registration data storage unit 133, a registration data search unit 134, and a communication unit 135.
  • the verification request device 120 includes a verification request generation unit 121, a verification information extraction unit 122, a response generation unit 123, and a communication unit 124.
  • the collation device 140 includes a registration data acquisition unit 141, a random number generation unit 142, an encrypted data generation unit 143, an encrypted distance calculation unit 144, a query generation unit 145, and a communication unit 146.
  • the verification device 150 includes a key generation unit 151, a decryption key storage unit 152, a query verification unit 153, a verification result output unit 154, and a communication unit 155.
  • the query verification unit 153 includes a decryption unit 1531, a hash value generation unit 1532, and a match determination unit 1533.
  • a communication unit (not shown) Communication connection between transmitter (interface) and receiver (interface)) and communication network (for example, local network (Local Area Network: LAN) or wide area network (Wide Area Network: WAN))
  • communication network for example, local network (Local Area Network: LAN) or wide area network (Wide Area Network: WAN)
  • LAN Local Area Network
  • WAN Wide Area Network
  • the registration request device 110, the storage device 130, the verification device 140, and the verification request device 120 include a public key published by the verification device 150 (for example, a pair of an encryption key and a decryption key of the homomorphic encryption method created by the verification device 150). Among the above-mentioned encryption keys).
  • the registration request device 110 and the verification request device 120 may be collectively represented as “first node”.
  • the storage device 130 and the verification device 140 may be collectively referred to as “second node”.
  • the verification device 150 may be represented as “third node”.
  • the registration request device 110 and the verification request device 120 may be configured as a client device, the storage device 130 and the verification device 140 as a server device, and the verification device 150 as a decryption device connected to the server device.
  • the processing in the matching system 100 is, for example, ⁇ Preparation phase, ⁇ Registration phase, and -It may include a verification phase.
  • FIG. 8 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the preparation phase. With reference to FIG. 8, the process which the collation system 100 which concerns on this embodiment performs in a preparation phase is demonstrated.
  • the key generation unit 151 in the verification device 150 receives the security parameter, and generates an encryption key (public key) pk and a decryption key (secret key) sk using the received security parameter, for example, according to a key generation algorithm.
  • the generated public key and decryption key conform to a public key cryptosystem (for example, ModifiedModElgamal cipher) having homomorphism with respect to addition and scalar multiplication.
  • the key generation unit 151 discloses the generated public key pk in the 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).
  • the processing executed in the preparation phase is not limited to the mode illustrated in FIG.
  • FIG. 9 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the registration phase. With reference to FIG. 9, the process which the collation system 100 which concerns on 1st Embodiment performs in a registration phase is demonstrated.
  • the registration information extraction unit 111 in the registration request device 110 receives biometric information (also referred to as “registration vector”) from a biometric subject to registration.
  • biometric information also referred to as “registration vector”
  • X [x [1],..., x [n]] Is extracted (step B1).
  • the template generation unit 112 in the registration request apparatus 110 generates a random number S ⁇ Fq (B2-1).
  • the template generation unit 112 generates a plurality of second random numbers (R [0], R [1],..., R [t]) (B3-1). Note that the processing in step B3-1 may be performed in step B2-1.
  • the template generation unit 112 performs hash operation values of a plurality of (for example, t + 1) second random numbers (R [0], R [1],..., R [t]): H (R [0]), H (R [1]),..., H (R [t]) are generated (B3-2).
  • the storage device 130 receives the first template and the second template transmitted from the registration request device 110 (B6), generates a registration identifier Id in the identifier management unit 131 (B7), and uses the registration identifier Id as the registration request device. 110.
  • the registration data generation unit 132 stores ⁇ first template, second template, registration identifier Id ⁇ in the registration data storage unit 133.
  • template generator 112 a plurality of number rr1 [1] from the Z q, ..., r1 [n ], and to select the rr1.
  • the template generation unit 112 reads the generation source g and the value h from the public key pk, and creates the following ciphertext regarding the binary vector X.
  • the communication unit 113 of the registration request device 110 receives the registration identifier id from the storage device 130 (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 generation unit 132 in the storage device 130 generates registration data (B11).
  • the template corresponding to the registration identifier Id is stored in the registration data storage unit 133 in the storage device 130 (step B12).
  • step B11 and step B12 may be executed prior to step B8. That is, the storage device 130 may store the registration data in the registration data storage unit 133 before transmitting the registration identifier id to the registration request device 110.
  • the collation requesting device 120 receives an identifier (referred to as “collation identifier”) possessed by the collation (authentication) (step C1).
  • the verification request generator 121 in the verification request device 120 generates a verification request including the received verification identifier (step C2).
  • the communication unit 124 of the verification requesting device 120 transmits a verification request to the verification device 140 (step C3).
  • the communication unit 146 of the verification device 140 receives the verification request from the verification request device 120 (step C4).
  • the registration data acquisition unit 141 in the verification device 140 generates a registration data request including the verification identifier included in the verification request transmitted from the verification request device 120 (step C5).
  • the communication unit 146 of the verification device 140 transmits a registration data request to the storage device 130 (step C6).
  • the communication unit 135 of the storage device 130 receives a registration data request from the verification device 140 (step C7).
  • the registration data search unit 134 in the storage device 130 includes registration data (also referred to as “target template”) including a verification identifier included in the registration data request among one or a plurality of registration data stored in the registration data storage unit 133. (Step C8).
  • the communication unit 135 of the storage device 130 includes the template: Enc (pk, S (1-2x [1])), Enc (pk, S (1-2x [2])), ..., Enc (pk, S (1-2x [n])), Enc (pk, S (D 1 -0) + R [0]), Enc (pk, S (D 1 -1) + R [1]), Enc (pk, S (D 1 -2) + R [2]),..., Enc (pk, S (D 1 -t) + R [t]) and multiple (eg, t + 1) hash values: H (R [0]), H (R [1]), ..., H (R [t]) Is transmitted to the verification device 140 (step C9).
  • the communication unit 146 of the verification device 140 receives the target template from the storage device 130 (step C10).
  • the random number generation unit 142 of the verification device 140 generates an integer (random number) S′ ⁇ Fq according to a pseudo-random number generation procedure (step C11).
  • the random number generator 142 preferably generates a different random number S ′ every time a collation request is made.
  • the communication unit 146 of the verification device 140 transmits the encrypted data (C3 [1],..., C3 [n]) to the verification request device 120 (step C13).
  • the verification requesting device 120 receives the encrypted data (C3 [1],..., C3 [n]) transmitted by the verification device 140 in step C13 (step C14).
  • the collation information extraction unit 122 in the collation requesting device 120 generates a collation vector (second vector) from the biometric subject to be authenticated.
  • Y (y [1], y [2],..., y [n])... (106) Is extracted (step C15).
  • the communication unit 124 of the verification requesting device 120 transmits the response CC2 to the verification device 140 (step C17).
  • the verification device 140 receives the response from the verification request device 120.
  • the verification device 150 receives the query via the communication unit 155 (step C22).
  • the decryption unit 1531 of the verification device 150 uses the encrypted data of the query: Enc (pk, R [0] + S (D-0)), Enc (pk, R [1] + S (D-1)), ... Enc (pk, R [t] + S (Dt)) Are decrypted using the secret key (sk) to obtain a plurality of (for example, t + 1) decrypted values z [0],..., Z [t] (step C23).
  • the verification result output unit 154 rejects if there is no set that satisfies the condition among t + 1 sets of conditions, and if there is one set that satisfies the condition, (The Hamming distance is any one of 0 to t), a verification result to be accepted is generated and output via the communication unit 155.
  • the challenge transmitted from the verification device 140 to the verification request device 120 includes the encrypted data of a single random number (S) calculated for the elements of the first vector for registration. (Random number (S) alone encrypted data is not sent as a challenge).
  • S random number
  • D distance between the binary first vector and the second vector
  • the distance D cannot be calculated by the collation device 140, the verification device 150, or the like in the server 102. That is, the operation of the distance between the registered biometric information and the verification biometric information by the three-part model server is disabled. For this reason, the place which contributes to the tolerance improvement with respect to the impersonation attack, hill climbing attack, etc. which were mentioned above is very large.
  • FIG. 11 is a diagram for explaining a second embodiment of the present invention.
  • the configuration of the verification system 100 according to the second exemplary embodiment is the same as the configuration of the verification system 100 according to the first exemplary embodiment described with reference to FIG. 5 (however, The processes in the registration request device 110, the verification request device 120, the storage device 130, the verification device 140, and the verification device 150 are different. Below, it demonstrates centering around difference.
  • Enc (pk, SD 1 ) + Enc (pk, SD 2 ) Enc (pk, SD)... (121)
  • Enc (pk, SD) related to the Hamming distance (D) between the first vector (X) and the second vector (Y) is calculated.
  • the verification device 140 creates a second random number (R) and encrypts the encrypted data with the public key (pk): Enc (pk, R)... (122) Is generated.
  • the hash function H () need not have homomorphism as in the first embodiment.
  • the verification device 150 uses a hash value of the decrypted value SD + R obtained by decrypting the encrypted data Enc (pk, SD + R) with the decryption key (sk): H (SD + R)... (126) Calculate
  • the verification device 150 may be configured to accept if there is a match, and to determine non-acceptance if there is no match.
  • a collation system that does not disclose the distance to a decryptor (verification device) can be realized.
  • the collation system 100 uses a homomorphic encryption method having homomorphism for addition and scalar calculation.
  • a homomorphic encryption method having homomorphism for addition and scalar calculation.
  • Modified Elgamal encryption is used as the encryption method.
  • elliptic Elgamal encryption or Paillier encryption may be used.
  • FIG. 12 is a diagram for explaining the operation sequence of the second embodiment described with reference to FIG. In FIG. 12, the generation of the public key pk and the secret key sk (S100) in the preparation phase is as described with reference to FIG.
  • the collation device 140 generates a first random number (S) (S144), and uses a scalar operation rule for the first and second templates.
  • Enc (pk, S (1-2x i )) (i 1,..., n)... (131)
  • the collation device 140 is encrypted data: Enc (pk, S (1-2x 1 )), ..., Enc (pk, S (1-2x n ))... (133) Is transmitted to the verification requesting device 120 (S145).
  • the verification device 140 does not transmit the encrypted data of the first random number (S) alone to the verification request device 120. Therefore, the verification requesting device 120 cannot calculate Enc (pk, SD 1 ). For this reason, the client cannot impersonate the Hamming distance.
  • Enc (pk, SD) relating to the distance (D) between the first and second vectors is calculated.
  • the collation device 140 creates a second random number (R) (S147).
  • the verification device 140 generates encrypted data (Enc (pk, R)) obtained by encrypting the second random number (R) with the public key (pk). Then, the verification device 140 performs homomorphic addition of the encrypted data (Enc (pk, SD)) regarding the distance (D) and the encrypted data (Enc (pk, R)) of the second random number (R) to obtain a query.
  • Encryption data Enc (pk, SD + R)... (137) Create The collation device 140 uses a first random number (S) and a second random number (R) for a value (non-negative integer) ⁇ in the range from 0 to a threshold t, and uses a calculation method regarding the distance of the encrypted data in the query (
  • S ⁇ + R the value when D is ⁇ in the arithmetic expression (SD + R)
  • the verification device 150 determines acceptance or non-acceptance if there is no equal pair.
  • the verification result (acceptance, rejection) in the verification device 150 is transmitted to the verification device 140 and the verification request device 120 (S151).
  • FIG. 13 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the registration phase. With reference to FIG. 13, the process which the collation system 100 which concerns on 2nd Embodiment performs in a registration phase is demonstrated.
  • the registration information extraction unit 111 in the registration request device 110 receives biometric information (referred to as “registration vector”) from the biometric subject to registration.
  • X [x [1],..., x [n]]... (142) Is extracted (step B1).
  • the notation x [i] (i 1, i, i) ..., n)
  • the encrypted data generated in step B2 is referred to as a first template.
  • the template generation unit 112 in the registration request apparatus 110 generates a ciphertext obtained by encrypting x [1] +,... + X [n] using the public key pk (step B3). Enc (pk, x [1] +,... + x [n])... (144)
  • the encrypted data generated in step B3 is called a second template.
  • template generator 112 a plurality of number rr1 [1] from the Z q, ..., r1 [n ], and to select the rr1.
  • the template generation unit 112 reads the generation source g and the value h from the public key pk, and creates the following ciphertext regarding the binary vector X.
  • the template generation unit 112 in the registration requesting apparatus 110 collects the first template and the second template into a template (C1 [1],..., C1 [n], CC1) (step B4).
  • the communication unit 113 of the registration request device 110 is a template (C1 [1],..., C1 [n], CC1)... (149) Is transmitted to the storage device 130 (step B5).
  • the communication unit 135 of the storage device 130 receives the template from the registration request device 110 (step B6).
  • the identifier management unit 131 in the storage device 130 determines a registration identifier id that is an identifier unique to the template received from the registration requesting device 110 (step B7).
  • the communication unit 135 of the storage device 130 transmits the registration identifier id to the registration request device 110 (step B8).
  • the communication unit 113 of the registration request device 110 receives the registration identifier id from the storage device 130 (step B9).
  • the registration data generation unit 132 in the storage device 130 generates registration data (B11).
  • a template corresponding to the registration identifier Id is stored in the registration data storage unit 133 in the storage device 130 (step B12).
  • step C19-25 in FIG. 10 is different from that in the first embodiment.
  • step C19 the verification device 140 generates a second random number (R) and generates encrypted data (Enc (pk, R)) obtained by encrypting the second random number (R) with the public key (pk). Also, encryption data (Enc (pk, SD)) and encryption data of the second random number (R) regarding the Hamming distance (D) between the first vector (X) for registration and the second vector Y for verification ( Enc (pk, R)) is homomorphically added to create encrypted data for query (Enc (pk, SD + R)).
  • step C20 the collation device 140 uses the first random number (S) and the second random number (R) for the non-negative integer value ⁇ that is equal to or less than the threshold t, and uses the arithmetic (SD for the distance D in the encrypted data of the query)
  • S ⁇ + R is calculated by the same algorithm as + R), and a hash value H (S ⁇ + R) of the value is obtained.
  • step C23 the verification device 150 decrypts the encrypted data Enc (pk, SD + R) with the decryption key (sk).
  • step C24 the verification device 150 calculates a hash value (H (SD + R)) of the decrypted value SD + R.
  • accept and decide not to accept if there is no equal set according to the second embodiment, in a system for matching binary vector type information, collaborate with a three-party model decryptor. It is possible to provide resistance against hill climbing attacks by attackers.
  • a computer apparatus 200 such as a server computer includes a processor (CPU (Central Processing Unit), data processing apparatus) 201, a semiconductor memory (for example, RAM (Random Access Memory), ROM (Read Only Memory), or A storage device 202 including at least one of an EEPROM (Electrically Erasable and Programmable ROM), an HDD (Hard Disk Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), a display device 203, and a communication interface 204 It has.
  • CPU Central Processing Unit
  • data processing apparatus for example, RAM (Random Access Memory), ROM (Read Only Memory), or
  • a storage device 202 including at least one of an EEPROM (Electrically Erasable and Programmable ROM), an HDD (Hard Disk Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), a display device 203, and a communication interface 204 It has.
  • CPU Central Processing Unit
  • data processing apparatus for example, RAM (
  • the communication interface 204 is communicatively connected to the registration request device 110, the verification request device 120, the storage device 130, and the verification device 150.
  • the storage device 202 stores a program that realizes the function of the collation device 140 described in the above embodiment, and the processor 201 reads out and executes the program, so that the function of the collation device 140 in the embodiment is performed. It may be realized.
  • the storage device 202 and, for example, the registration data storage unit 133 of the storage device 130 shown in FIG. 7 are the same storage device, and the processor 201 uses the identifier management unit 131 and the registration data generation unit 132 of the storage device 130 shown in FIG.
  • the processing of the registration data search unit 134 may be further executed.
  • the computer device 200 may be implemented as a cloud server provided to a client as a cloud service.
  • the registration request device 110 may also be implemented as a computer device 200 that is program-controlled as shown in FIG.
  • the collation requesting device 120 of the above embodiment may also be implemented as the computer device 200.
  • the registration request device 110 and the verification request device 120 may be separate computer systems, or may be configured to perform registration and verification at the same location. Programs that realize the functions of the registration request device 110 and the verification request device 120 shown in FIGS. 5 and 11 are stored in the storage device 202, and the processor 201 reads out and executes the programs so that each of the above-described programs is executed. You may make it implement
  • the processor 201 of the registration request device 110 and the verification request device 120 acquires biometric information such as a fingerprint from a sensor (not shown) via the communication interface 204, and uses binary feature vectors X and Y respectively from the acquired biometric information. You may make it extract.
  • the verification apparatus 150 of the embodiment may be realized by a program executed on a computer, as in FIG.
  • Patent Documents 1-4 and Non-Patent Document 1 described above are incorporated herein by reference.
  • the embodiments and examples can be changed and adjusted based on the basic technical concept.
  • Various combinations or selections of various disclosed elements 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.
  • Registration request device 100 Collation system 102 Server 111 Registration information extraction unit 112 Template generation unit 113 Communication unit 114 Conversion value generation unit 20, 120 Verification request device 121 Verification request generation unit 122 Verification information extraction unit 123 Response generation unit 124 Communication Units 30, 130 storage device 131 identifier management unit 132 registration data generation unit 133 registration data storage unit 134 registration data search unit 135 communication unit 136 random number generation unit 137 encryption data generation unit 138 hash value generation unit 40, 140 collation device 141 registration data Acquisition unit 142 Random number generation unit 143 Encryption data generation unit 144 Encryption distance calculation unit 145 Query generation unit 146 Communication unit 147 Conversion coefficient generation unit 148 Hash value generation unit 50, 150 Verification device 151 Key generation unit 152 Decryption key storage unit 153 Query Validation Unit 154 verification result output unit 155 communication unit 156 registration data check unit 200 computer system (computer device) 201 Processor 202 Storage Device 203 Display Device 204 Communication Interface 1531 Decoding Unit 1532 Hash Value Generation Unit 15

Abstract

Provided is a system which, when collating binary vector information, has desired resistance to a hill-climbing attack by an attacker colluding with a decryptor of at least a three-party model. A collating system provided with: a collating device that, as the data for discriminating by a verification device whether or not the encrypted distance of a first and a second vector found by synthesizing the computed value of a binary first vector for registration that is encrypted with an encryption key extracted by a registration request device and the computed value of a binary second vector for collation that is encrypted with an encryption key extracted by a collation request device is less than or equal to a predetermined threshold value, finds data in which a value derived by subtracting a non-negative value less than or equal to the threshold value from the distance and having a random number operated thereon is encrypted with the encryption keys, and transmits the data, together with a hash value found from the random number, as a query to the verification device; and a verification device for decrypting the encrypted data with a decryption key and determining whether there is a set in which the hash value of the decrypted value and the hash value of the query are equal.

Description

照合システム、方法、装置及びプログラムVerification system, method, apparatus and program
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2017-054406号(2017年3月21日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は照合システム、方法、装置及びプログラムに関する。
(Description of related applications)
The present invention is based on the priority claim of Japanese Patent Application No. 2017-054406 (filed on Mar. 21, 2017), the entire contents of which are incorporated herein by reference. Shall.
The present invention relates to a verification system, method, apparatus, and program.
 クラウドコンピューティングサービス等、通信ネットワークに通信接続している計算機資源を用いてデータを管理するサービスが広く普及している。この種のサービスは機密性の高いデータを管理することから、データの安全性を保証する必要がある。ネットワーク環境において、データを暗号化されたままの状態で管理し、データを復号することなく、検索や統計処理等を行う技術の研究開発が行われている。また、例えば静脈等の生体が有する特徴(生体情報)に基づいた認証情報を用いて、安全性の高い認証を実現する生体認証技術が注目を集めている。生体認証技術においては、登録用生体情報に基づきテンプレートが作成され、作成されたテンプレートがデータベースに保管される。 Services such as cloud computing services that manage data using computer resources connected to communication networks are widely used. Since this type of service manages highly confidential data, it is necessary to guarantee the security of the data. In a network environment, research and development of a technique for managing data in an encrypted state and performing search, statistical processing, and the like without decrypting the data is being performed. In addition, biometric authentication technology that realizes highly secure authentication using authentication information based on characteristics (biological information) of a living body such as a vein has attracted attention. In the biometric authentication technology, a template is created based on biometric information for registration, and the created template is stored in a database.
 生体認証技術においては、認証対象である生体に基づき作成された認証用生体情報と、データベースに保管されているテンプレートとが類似(又は一致)している場合に、認証対象が受理される。生体認証技術においては、該認証用生体情報と、該テンプレートとが類似(または、一致)していない場合に、認証対象は受理されない。センサ等で取得した認証用生体情報は、登録用生体情報と同一人の生体情報でも、抽出の度に少しずつ変化する。一つの生体から作成された複数の認証用生体情報であっても、該複数の認証用生体情報は、相互に一致するとは限らない。生体情報が類似しているか否かをある距離関数を用いて測定した場合に、同一の生体から作成された該複数の認証用生体情報間の距離は短い。これに対して、異なる生体から、それぞれ、作成された複数の認証用生体情報間の距離は長い。生体認証技術は、上記の特質を利用することによって、データベースに保管されているテンプレートと、認証対象に関して作成された認証情報との照合を行う。例えば、指紋、静脈等は、生体情報の一例であり、生涯不変のデータとされている。生体情報が照合システムの外部に漏洩された場合の被害が甚大である。このため、該生体情報は、機密性が要求される情報の一つである。したがって、登録用の生体情報に基づき生成された暗号データであるテンプレートが照合システムの外部に漏洩したとしても、該生体情報は照合システムの外部に漏洩しないテンプレート保護型の生体認証技術が重要である。 In the biometric authentication technology, the authentication target is accepted when the authentication biometric information created based on the biometric subject to authentication and the template stored in the database are similar (or coincident). In the biometric authentication technique, the authentication target is not accepted when the biometric information for authentication and the template are not similar (or matched). The biometric information for authentication acquired by a sensor or the like changes little by little even when the biometric information for the same person as the biometric information for registration is extracted. Even if a plurality of pieces of biometric information for authentication are created from a single living body, the plurality of pieces of biometric information for authentication do not always match each other. When measuring whether or not biometric information is similar using a certain distance function, the distance between the plurality of pieces of biometric information for authentication created from the same living body is short. On the other hand, the distance between a plurality of pieces of authentication biometric information created from different living bodies is long. The biometric authentication technology collates the template stored in the database with the authentication information created for the authentication target by using the above characteristics. For example, fingerprints, veins, etc. are examples of biometric information, and are data that does not change throughout life. The damage caused when biometric information is leaked outside the verification system is significant. For this reason, the biometric information is one piece of information that requires confidentiality. Therefore, even if a template, which is encrypted data generated based on biometric information for registration, leaks to the outside of the verification system, a template-protective biometric authentication technique that prevents the biometric information from leaking to the outside of the verification system is important. .
 サーバとクライアントのみで実施する秘匿生体認証では、テンプレートを持つ攻撃者がオフラインで認証を試すことを防ぐことができない。また、生体情報の空間は総当たり可能な大きさである。このため、テンプレートを持つ攻撃者は、登録された生体情報を復元することができる。そこで、テンプレートが漏洩しても生体情報が漏洩しないようにする秘匿生体認証方式として、サーバとクライアントに加えて、秘密鍵を管理する第三者(「復号者」又は「復号装置」と呼ぶ)を利用する三者モデルの秘匿生体認証方式が提案されている。三者モデルの秘匿生体認証については、例えば特許文献1等が参照される。 Securing biometric authentication performed only by the server and client cannot prevent an attacker with a template from trying to authenticate offline. In addition, the space for biometric information has a size that allows brute force. For this reason, an attacker having a template can restore the registered biological information. Therefore, as a secret biometric authentication method that prevents biometric information from leaking even if a template leaks, a third party (referred to as a “decryptor” or “decryption device”) that manages the secret key in addition to the server and client. A three-party model of a secure biometric authentication method that uses the Internet has been proposed. For the secret biometric authentication of the three-party model, for example, Patent Document 1 is referred to.
 本明細書で用いられる暗号アルゴリズム等の記法に関して説明しておく。まず、公開鍵暗号について説明する。公開鍵暗号方式は、鍵生成、暗号化、復号の三つのアルゴリズム(Gen, Enc, Dec)で表される。 The notation such as the encryption algorithm used in this specification will be described. First, public key cryptography will be described. The public key cryptosystem is represented by three algorithms (Gen, Enc, Dec): key generation, encryption, and decryption.
 鍵生成アルゴリズム(「Gen」と表記する)は、セキュリティパラメータ1^κに基づき、公開鍵pkと、秘密鍵skを出力する。
(pk, sk) ← Gen(1^κ)
The key generation algorithm (indicated as “Gen”) outputs a public key pk and a secret key sk based on the security parameter 1 ^ κ.
(pk, sk) ← Gen (1 ^ κ)
 暗号化アルゴリズム(「Enc」と表記する)は、公開鍵pkと平文mを入力とし、暗号文cを出力する。
c ← Enc(pk, m)
The encryption algorithm (indicated as “Enc”) receives the public key pk and plaintext m and outputs ciphertext c.
c ← Enc (pk, m)
 復号アルゴリズム(「Dec」と表記する)は、秘密鍵sk,暗号文cを入力とし、復号結果m'を出力する。
m’ ← Dec(sk, c)
The decryption algorithm (denoted as “Dec”) receives the secret key sk and ciphertext c, and outputs a decryption result m ′.
m '← Dec (sk, c)
 なお、本明細書では文脈から明らかな場合等、Enc(pk, m), Dec(sk,c)のpk,skをそれぞれ省略し、Enc(m), Dec(c)と略記される場合がある(図面では略記される)。準同型暗号は、複数の暗号文から、その平文の演算結果の暗号文を計算可能な公開鍵暗号である。例えば、平文m1,…,mnの暗号文Enc(m1),…,Enc(mm)から秘密鍵を用いずに、平文の和に対応する暗号文Enc(m1+…+mn)を計算できるものを、「加法準同型暗号」と呼ぶ。 Note that in this specification, pk and sk of Enc (pk, m) and Dec (sk, c) are omitted and Enc (m) and Dec (c) may be abbreviated, as is clear from the context. Yes (abbreviated in the drawing). Homomorphic encryption is public key cryptography that can calculate the ciphertext of the operation result of plaintext from a plurality of ciphertexts. For example, ciphertext Enc (m 1 + ... + m corresponding to the sum of plaintexts without using a secret key from ciphertext Enc (m 1 ), ..., Enc (m m ) of plaintext m 1 , ..., m n What can calculate n ) is called "additive homomorphic encryption".
 図1は、三者モデルの生体認証システムの関連技術の一例を説明する図である(例えば特許文献1に開示された暗号文照合システム参照)。なお、クライアント11側の登録要求装置10と照合要求装置20は同一の装置であってもよい。図1のシステムにおいて、準備フェーズは、以下の通りである。 FIG. 1 is a diagram for explaining an example of related technology of a three-party model biometric authentication system (see, for example, the ciphertext matching system disclosed in Patent Document 1). Note that the registration request device 10 and the verification request device 20 on the client 11 side may be the same device. In the system of FIG. 1, the preparation phase is as follows.
 復号装置50は、鍵生成を行い、準同型暗号の公開鍵(pk)および秘密鍵(sk)を生成する。復号装置50は、公開鍵を登録要求装置10、照合要求装置20、サーバ12へ送信する。復号装置50は、復号だけでなく、復号結果に基づき、照合用生体情報と登録用生体情報との類似性(一致)の有無の検証を行う場合、「検証装置」ともいう。 The decryption apparatus 50 generates a key and generates a public key (pk) and a secret key (sk) of the homomorphic encryption. The decryption device 50 transmits the public key to the registration request device 10, the verification request device 20, and the server 12. The decoding device 50 is also referred to as a “verification device” when verifying the presence / absence of similarity (match) between the biometric information for verification and the biometric information for registration based on the decoding result as well as the decoding.
 図1のシステムにおいて、登録フェーズは、以下の通りである。 In the system of FIG. 1, the registration phase is as follows.
 登録要求装置10は、登録用生体情報の特徴ベクトルZを、公開鍵pkを用いて暗号化した登録データEnc(pk, Z)を生成する。登録要求装置10は、登録データEnc(pk, Z)をサーバ12へ送信する。サーバ12は、登録データEnc(pk, Z)を記憶装置30に登録する。 The registration requesting device 10 generates registration data Enc (pk, Z) obtained by encrypting the feature vector Z of biometric information for registration using the public key pk. The registration requesting apparatus 10 transmits registration data Enc (pk, Z) to the server 12. The server 12 registers the registration data Enc (pk, Z) in the storage device 30.
 図1のシステムにおいて、照合フェーズは以下の通りである。 In the system of FIG. 1, the verification phase is as follows.
 照合要求装置20は、照合用生体情報の特徴ベクトルZ’を公開鍵pkを用いて暗号化した照合データEnc(pk, Z’)を生成する。照合要求装置20は、照合データEnc(pk, Z’)をサーバ12へ送信する。登録要求者と照合要求者が同じ人物であれば、2つの特徴ベクトルZ、Z’の距離は近く、異なる人物の特徴ベクトルZ、Z’の距離は遠いものとする。 The collation requesting device 20 generates collation data Enc (pk, Z ′) obtained by encrypting the feature vector Z ′ of the biometric information for collation using the public key pk. The verification requesting device 20 transmits the verification data Enc (pk, Z ′) to the server 12. If the registration requester and the verification requester are the same person, the distance between the two feature vectors Z and Z 'is close, and the distance between the feature vectors Z and Z' of different persons is long.
 サーバ12の照合装置40は、暗号アルゴリズムの準同型性を利用し、登録データEnc(pk, Z)と照合データEnc(pk, Z’)を暗号化したまま、暗号化距離データEnc(pk, d(Z, Z’))を計算する。ここでd(a, b)は、aとbとの間の距離を表す。サーバ12は、暗号化距離データEnc(pk, d(Z, Z’))を含むクエリを復号装置50へ送信する。 The collation device 40 of the server 12 utilizes the homomorphism of the encryption algorithm and encrypts the encrypted distance data Enc (pk, d (Z, Z ')) is calculated. Here, d (a, b) represents the distance between a and b. The server 12 transmits a query including the encrypted distance data Enc (pk, d (Z, Z ′)) to the decryption device 50.
 復号装置50は、秘密鍵skを用いて暗号化距離データEnc(pk, d(Z, Z’))を復号し、復号結果d(Z, Z’)を得る。この復号結果d(Z, Z’)は距離情報を示している。復号装置50は、復号結果d(Z, Z’)が予め定められた閾値t以下であるか否かを確認する。確認の結果、復号結果d(Z, Z’)が閾値t以下である場合には、復号装置50は、受理(OK)をサーバ12へ送信する。一方、復号結果d(Z, Z’)が閾値tよりも大である場合、復号装置50は、不受理(no good: NG)をサーバ12へ送信する。サーバ12は、復号装置50の返答がOKであったら、受理を照合要求装置20へ出力し、復号装置50の返答がNGであったら、不受理を照合要求装置20へ出力する。 The decryption device 50 decrypts the encrypted distance data Enc (pk, d (Z, Z ')) using the secret key sk, and obtains a decryption result d (Z, Z'). The decoding result d (Z, Z ′) indicates distance information. The decoding device 50 confirms whether or not the decoding result d (Z, Z ′) is equal to or less than a predetermined threshold value t. As a result of the confirmation, when the decryption result d (Z, Z ′) is equal to or smaller than the threshold value t, the decryption device 50 transmits an acceptance (OK) to the server 12. On the other hand, when the decryption result d (Z, Z ′) is larger than the threshold t, the decryption device 50 transmits a rejection (no 受 good: NG) to the server 12. The server 12 outputs an acceptance to the verification requesting device 20 if the response of the decryption device 50 is OK, and outputs an unacceptance to the verification requesting device 20 if the response of the decryption device 50 is NG.
 なお、特許文献1には、暗号化鍵を用いて秘匿対象となる入力データを暗号化して、登録データを出力する登録データ生成部と、登録データを暗号文記憶部に当該登録データを一意に特定するための識別子を識別子記憶部にそれぞれ対応が分かるように記憶する記憶装置と、暗号化鍵を用いて照合対象の入力データを暗号化して照合データを出力するデータ照合要求生成部と、登録データと照合データとから暗号化鍵を用いて暗号化距離データを出力する距離計算部と、復号鍵を用いて暗号化距離データを復号して距離データを生成する復号部と、距離データから乱数を用いてスコアを生成するスコア計算部と、スコアから照合結果を出力する判定部と、を含み、登録時に使用したデータZと照合時に使用したデータZ’との間の距離に関する情報を出力しても、データに関する情報が漏れないようにした暗号文照合システムが開示されている。 In Patent Document 1, the input data to be concealed is encrypted using an encryption key, and a registration data generation unit that outputs registration data, and the registration data is uniquely stored in the ciphertext storage unit. A storage device for storing identifiers for identification in the identifier storage unit so that the correspondence can be recognized, a data verification request generating unit for encrypting input data to be verified using an encryption key and outputting verification data, and registration A distance calculation unit that outputs encrypted distance data using an encryption key from the data and verification data, a decryption unit that decrypts the encrypted distance data using a decryption key and generates distance data, and a random number from the distance data A score calculation unit that generates a score using, and a determination unit that outputs a matching result from the score, and relates to the distance between the data Z used during registration and the data Z ′ used during matching Also output information, the ciphertext verification system is disclosed which is adapted information about the data does not leak.
 特許文献2には、暗号化した状態でハミング距離を算出可能な暗号アルゴリズムを用いて暗号化されたユーザの登録情報を当該登録情報と暗号アルゴリズムを用いて暗号化された照合情報との間のハミング距離の計算結果に、照合情報とユーザとのハミング距離、および照合情報とユーザとは異なる他人とのハミング距離が含まれるように変換し、入力された照合情報と、変換された登録情報とのハミング距離を計算し、計算されたハミング距離に含まれる、照合情報とユーザとのハミング距離および照合情報とユーザとは異なる他人とのハミング距離と予め設定された閾値との比較結果に基づいて入力された照合情報が不正なものか否かを判定する方法が開示されている。 In Patent Document 2, the registration information of a user encrypted using an encryption algorithm that can calculate the Hamming distance in an encrypted state is stored between the registration information and the verification information encrypted using the encryption algorithm. The calculation result of the Hamming distance is converted so as to include the Hamming distance between the verification information and the user, and the Hamming distance between the verification information and another person different from the user, and the input verification information and the converted registration information Based on the comparison result of the Hamming distance between the collation information and the user included in the calculated Hamming distance, the Hamming distance between the collation information and another person different from the user, and a preset threshold value included in the calculated Hamming distance A method for determining whether or not input collation information is illegal is disclosed.
 また、特許文献3には、準同型暗号を利用した秘匿生体認証システム・秘匿タグ検索システムにおいて、ベクトルデータA=(a1,a2,…)を準同型暗号で暗号化する場合、各成分aiを暗号化し、暗号ベクトルデータE(A)=(E(a1),E(a2),…)を生成し、さらに、2つの暗号ベクトルデータE(A)=(E(a1),E(a2),…)とE(B)=(E(b1),E(b2),…)の距離を暗号化したまま計算する(距離の例には、ハミング距離がある)が、このようにベクトルデータの各成分を準同型暗号化する場合、暗号ベクトルデータE(A)=(E(a1),E(a2),…)、E(B)=(E(b1),E(b2),…)などのサイズが巨大になり、さらに秘匿距離計算に多大な計算時間を要するという問題があることが記載され、暗号ベクトルデータのサイズと秘匿距離計算の時間の両方を削減する構成が開示されている。 Further, in Patent Document 3, when a vector data A = (a1, a2,...) Is encrypted with homomorphic encryption in a secret biometric authentication system / secret tag search system using homomorphic encryption, each component ai is Encryption is performed to generate encryption vector data E (A) = (E (a1), E (a2),...), And two encryption vector data E (A) = (E (a1), E (a2) , ...) and E (B) = (E (b1), E (b2), ...) are calculated with encryption (the Hamming distance is an example of the distance). Are homomorphically encrypted, encryption vector data E (A) = (E (a1), E (a2),...), E (B) = (E (b1), E (b2),. ) And the like, and there is a problem that the calculation of the secret distance requires a lot of calculation time, and a configuration that reduces both the size of the encryption vector data and the time of the secret distance calculation is disclosed. Yes.
 また、特許文献4には、テンプレートのサイズが、受理可能な範囲の広さのパラメータに依存せず、かつ、第三者の負荷が小さい技術が記載されている。ただし、この方式では、第三者に対し、登録された生体情報と照合する対象である生体情報との距離が明かされる。悪意を有した第三者が、照合時に得られる距離を利用することによる攻撃(ヒルクライミング攻撃)が可能であることが知られている。 Also, Patent Document 4 describes a technology in which the size of the template does not depend on the parameter of the range of the acceptable range and the load on the third party is small. However, in this method, the distance from the biometric information that is a target to be compared with the registered biometric information is disclosed to a third party. It is known that a malicious third party can perform an attack (hill climbing attack) by using the distance obtained at the time of collation.
 秘匿生体認証の主な安全性として以下が挙げられる。 The main safety of confidential biometric authentication is as follows.
A) 特徴量復元不可能性:
これは、テンプレートから元の生体情報を復元できない性質をいう。
A) Unrecoverable feature:
This refers to the property that the original biological information cannot be restored from the template.
B) なりすまし攻撃耐性
これは、テンプレートや過去のサーバ・クライアント間の通信を盗聴しても受理されるクエリが作れない性質をいう。
B) Impersonation attack resistance This means that a query that can be accepted cannot be created even if eavesdropping on communication between templates and past servers and clients.
 過去に送られたデータを盗聴し、そのまま送る攻撃である再送攻撃は、なりすまし攻撃の一種である。再送攻撃耐性を持たない方式は、なりすまし攻撃耐性も持たない。 [Retransmission attack, which is an attack to wiretap data sent in the past and send it as it is, is a kind of spoofing attack. A scheme that does not have resend attack resistance does not have spoof attack resistance.
 いずれのテンプレートに対しても等しい値(たとえば0の暗号文)を送信することで、受理可能とする方式も、なりすまし攻撃耐性を持たない可能性がある。 The method of accepting by sending the same value (for example, 0 ciphertext) to any template may not have the resistance to spoofing attacks.
 また、特徴量が復元可能な方式は、復元された特徴量を用いた認証を行うことが可能である。このため、なりすまし攻撃への耐性も持たない。 Also, a method capable of restoring the feature quantity can perform authentication using the restored feature quantity. For this reason, it is not resistant to spoofing attacks.
 なお、本明細書では、攻撃者として、semi-honestな攻撃者を想定する。すなわち、攻撃者は必ず方式で示されるアルゴリズムに従って動作し、得られた情報からより多くの情報を奪おうとする。 In this specification, a semi-honest attacker is assumed as the attacker. That is, the attacker always operates according to the algorithm indicated by the method, and tries to take more information from the obtained information.
 攻撃者が、認証(照合)に用いられた生体情報と距離(登録用と照合用の特徴ベクトル間の距離)を得ることができると、例えばヒルクライミング攻撃により登録された生体情報を復元できる。ヒルクライミング攻撃は、バイオメトリクス分野でよく知られた攻撃方法である。 If the attacker can obtain the biometric information and distance (distance between the registration and verification feature vectors) used for authentication (verification), the biometric information registered by, for example, a hill climbing attack can be restored. Hill climbing attacks are well-known attack methods in the biometrics field.
 例えば、図1において、攻撃者が、認証(照合)に用いる生体情報を選び、該照合生体情報と登録された生体情報との距離を得られる場合、ヒルクライミング攻撃が可能となることが知られている。ある特徴ベクトルZ’を使って生成した該特徴ベクトルZ’に対する第1の距離d(Z, Z’)(Zは、登録用生体情報から抽出された特徴ベクトル)を得る。次に、特徴ベクトルZ’の一部を改変した(例えば1ビット反転した)Z”に対する登録生体情報の特徴ベクトルZとの第2の距離d(Z, Z”)を得る。第1の距離d(Z, Z’)よりも第2の距離d(Z,Z”)が小さくなった場合には、該改変によって、特徴ベクトルZ”が登録生体情報の特徴ベクトルZに近づいたことを意味する。逆に、第1の距離d(Z, Z’)よりも第2の距離d(Z,Z”)が大きくなった場合には、該改変によって、特徴ベクトルZ”が登録生体情報の特徴ベクトルZから遠ざかったことを意味する。このような行動を繰り返すことにより、比較的小さな計算量で、登録データから特徴ベクトルZを(あるいは認証(照合)データから特徴ベクトルZ’を)復元することが可能となることが知られている。 For example, in FIG. 1, when an attacker selects biometric information used for authentication (collation) and obtains the distance between the collation biometric information and the registered biometric information, it is known that a hill climbing attack is possible. ing. A first distance d (Z, Z ′) (Z is a feature vector extracted from biometric information for registration) with respect to the feature vector Z ′ generated using a certain feature vector Z ′ is obtained. Next, a second distance d (Z, Z ″) with the feature vector Z of the registered biometric information with respect to Z ″ obtained by modifying a part of the feature vector Z ′ (for example, inverted by 1 bit) is obtained. When the second distance d (Z, Z ″) is smaller than the first distance d (Z, Z ′), the modification brings the feature vector Z ″ closer to the feature vector Z of the registered biometric information. Means that. On the other hand, when the second distance d (Z, Z ″) is larger than the first distance d (Z, 'Z ′), the feature vector Z ″ becomes the feature vector of the registered biometric information by the modification. It means that it was away from Z. It is known that by repeating such an action, it is possible to restore the feature vector Z from the registered data (or the feature vector Z ′ from the authentication (collation) data) with a relatively small amount of calculation. .
 図2A乃至図2Cは、上記したヒルクライミング攻撃の一例を模式的に例示する図である(生体情報が二次元座標であるものとする)。図2A乃至図2Cに例示すように、攻撃者が認証(照合)に用いる生体情報を選び、照合用の生体情報と登録された生体情報との距離を得られる場合、攻撃者は、認証(照合)を繰り返すことにより、登録された生体情報を復元することができる。一回目に、攻撃者は、認証(照合)用の生体情報として、○の点の生体情報を選んで、登録生体情報との認証を行い、登録生体情報との距離=5を得たとする(図2A)。2回目に、攻撃者は認証データとして○の点の生体情報を選んで登録データと認証を行い登録生体情報との距離=3を得たとする(図2B)。この結果、図2Cに示すように、攻撃者は登録生体情報を復元できる。 2A to 2C are diagrams schematically illustrating an example of the above-described hill climbing attack (assuming that biological information is two-dimensional coordinates). As illustrated in FIGS. 2A to 2C, when an attacker selects biometric information used for authentication (verification) and obtains a distance between the biometric information for verification and the registered biometric information, the attacker is authenticated ( Registered biological information can be restored by repeating (collation). At the first time, the attacker selects biometric information with a circle as biometric information for authentication (collation), authenticates with the registered biometric information, and obtains distance = 5 from the registered biometric information ( FIG. 2A). For the second time, it is assumed that the attacker selects biometric information with a circle as the authentication data, authenticates the registered data, and obtains a distance = 3 from the registered biometric information (FIG. 2B). As a result, as shown in FIG. 2C, the attacker can restore the registered biometric information.
 また、復号者が距離を算出できることにより、復号者と結託する攻撃者によるヒルクライミング攻撃に対して脆弱である。復号者は、登録された生体情報と照合対象の生体情報の距離から認証結果(受理、不受理)を決定する。復号者の得る距離と、認証(照合)に用いられた生体情報を知ることができる攻撃者は、登録された生体情報を復元できることになる。復号者と結託した攻撃者がクライアントのふりをして認証(照合)を試す場合がこれに該当する。このため、現実的な攻撃であるといえる。 Also, since the decryptor can calculate the distance, it is vulnerable to a hill climbing attack by an attacker colluding with the decryptor. The decryptor determines an authentication result (acceptance, non-acceptance) from the distance between the registered biometric information and the biometric information to be verified. An attacker who can know the distance obtained by the decryptor and the biological information used for authentication (collation) can restore the registered biological information. This is the case when an attacker colluding with a decryptor tries to authenticate (verify) by pretending to be a client. For this reason, it can be said that it is a realistic attack.
 また、サーバが距離を操作することが可能な場合、サーバと結託する攻撃者によるヒルクライミング攻撃に対して脆弱である。この場合、サーバでは、距離を操作して照合(認証)を試すことができる。その結果、照合に用いられた生体情報を知ることができる攻撃者が、登録された生体情報を復元できる。登録生体情報と照合生体情報の特徴ベクトルの間の距離の空間は、生体情報の空間より狭く、生体情報よりも総当たりしやすい。距離を操作して照合を試すことにより、登録生体情報と照合生体情報の特徴ベクトルの距離を算出できる。例えば、Enc(距離+a)やEnc(距離*a)などを、復号者(例えば図1の復号装置50)にクエリし、受理されるかどうかを確認することで、登録生体情報と照合生体情報の特徴ベクトル間の距離を知ることができる。サーバと結託した攻撃者がクライアントのふりをして認証を試す場合がこれに該当する。したがって、サーバと結託したこの攻撃は、現実的な攻撃であるといえる。 Also, if the server can manipulate the distance, it is vulnerable to hill climbing attacks by attackers colluding with the server. In this case, the server can try collation (authentication) by manipulating the distance. As a result, an attacker who can know the biological information used for collation can restore the registered biological information. The space of the distance between the registered biometric information and the feature vector of the verification biometric information is narrower than the biometric information space and is easier to hit than the biometric information. The distance between the registered biometric information and the biometric feature vector can be calculated by trying the collation by manipulating the distance. For example, the registered biometric information and the matching biometric information are obtained by querying a decryptor (for example, the decryption device 50 in FIG. 1) such as Enc (distance + a) or Enc (distance * a) and confirming whether or not the decryption is accepted. It is possible to know the distance between feature vectors. This is the case when an attacker colluding with the server pretends to be a client and tries authentication. Therefore, it can be said that this attack collocated with the server is a realistic attack.
 なお、非特許文献1には、
・サーバ及びユーザと結託する攻撃者に対する安全性、
・復号者及びユーザと結託する攻撃者に対する安全性、
・盗聴者がユーザになりすましをできない安全性、
の三つの安全性をすべて満たす方式が提案されている。非特許文献1の開示では、登録生体情報の特徴ベクトルX=[x1,…,xn]と照合生体情報の特徴ベクトルY=[y1,…,yn]の距離D(ユークリッド距離の2乗)をD=D1+D2に分割する。
In Non-Patent Document 1,
・ Security against attackers colluding with servers and users,
・ Security against attackers colluding with decryptors and users,
・ Safety that eavesdroppers cannot impersonate users,
A method that satisfies all three safety points has been proposed. The disclosure of Non-Patent Document 1, the feature vector X = the registered biometric information [x 1, ..., x n ] with verification biometric information feature vector Y = [y 1, ..., y n] distance D (Euclidean Distance (Square) is divided into D = D 1 + D 2 .
D=dE 2(X,Y)=Σ<i=1,n>(xi-yi)^2=Σ<i=1,n>xi^2 - 2Σ<i=1,n>xiyi + Σ<i=1,n>yi^2=D1+D2
  …(1)
D = d E 2 (X, Y) = Σ <i = 1, n> (xi-yi) ^ 2 = Σ <i = 1, n> xi ^ 2-2Σ <i = 1, n> xiyi + Σ <i = 1, n> yi ^ 2 = D1 + D2
… (1)
 ただし、
D1=Σ<i=1,n>xi^2    …(2)
D2=- 2Σ<i=1,n>xiyi + Σ<i=1,n>yi^2   …(3)
However,
D 1 = Σ <i = 1, n> xi ^ 2 (2)
D 2 =-2Σ <i = 1, n> xiyi + Σ <i = 1, n> yi ^ 2… (3)
 ただし、上式(1)乃至(3)において、Σ<i=1,n>はインデックスiの1からnまでの総和演算を表し、^は冪乗演算子である。 However, in the above formulas (1) to (3), Σ <i = 1, n> represents the summation operation from 1 to n of the index i, and ^ is a power operator.
 復号装置50では、ベクトルXとYの距離Dが0であるか又は予め定められた閾値t以下の場合に、照合用生体情報は登録用生体情報に一致又は類似するものとして、受理される。非特許文献1によれば、図1において、照合要求装置20(クライアント)が、距離D2として値0の暗号文を送っても、照合用生体情報は登録用生体情報に一致又は類似するものとして受理されることはない。これは以下の理由による。 In the decoding device 50, when the distance D between the vectors X and Y is 0 or is equal to or smaller than a predetermined threshold t, the biometric information for verification is accepted as being identical or similar to the biometric information for registration. According to Non-Patent Document 1, in FIG. 1, even if the verification requesting device 20 (client) sends a ciphertext having a value of 0 as the distance D2, the verification biometric information is identical or similar to the registration biometric information. It will not be accepted. This is due to the following reason.
 照合要求装置20(クライアント)は、分割された距離の一方であるD2を計算し、暗号化されたDを照合装置40(サーバ)に送る。これは、照合装置40(サーバ)が、暗号化されたDと、照合装置40(サーバ)側で保持する、分割された距離の他方であるD1の暗号データとの和を計算することによって、ベクトルXとYの距離Dの暗号化データを計算するためである。照合要求装置20(クライアント)は、分割された距離の他方であるD1の値を知らないため、ベクトルXとYの距離D1+D2=D = 0 を満たすようなD2(=-D1)を計算して照合装置40(サーバ)に送信することができない。 The verification requesting device 20 (client) calculates D 2 that is one of the divided distances, and sends the encrypted D 2 to the verification device 40 (server). This matching device 40 (server), and D 2, which is encrypted and held at collating unit 40 (server) side, calculating the sum of D 1 of the encrypted data which is the other divided distance This is because the encrypted data of the distance D between the vectors X and Y is calculated by Since the verification requesting device 20 (client) does not know the value of D 1 that is the other of the divided distances, D 2 (= − that satisfies the distance D 1 + D 2 = D = 0 of the vectors X and Y is satisfied. D 1 ) cannot be calculated and transmitted to the verification device 40 (server).
 図3は、非特許文献1に基づくシステムの動作シーケンスを説明する図である。はじめに、Modified-Elgamal暗号の各アルゴリズムの動作について概略を説明する。鍵生成アルゴリズムは、まず、入力としてセキュリティパラメータ1^κを受け取る。 FIG. 3 is a diagram for explaining an operation sequence of the system based on Non-Patent Document 1. First, the outline of the operation of each algorithm of Modified-Elgamal encryption will be described. The key generation algorithm first receives a security parameter 1 ^ κ as input.
 次に、位数がκビットの素数qである群Gとその生成元gを生成する。
x∈Fq={0,1,…,q-1}       …(4)
をランダムに選び、
h=g^x      …(5)
とする。
Next, a group G whose order is a prime number q of κ bits and its generation source g are generated.
x∈Fq = {0,1,…, q-1}… (4)
Choose at random,
h = g ^ x… (5)
And
 最後に、公開鍵pk=(g, h=g^x)及び秘密鍵sk=xを出力する。 Finally, the public key pk = (g, h = g ^ x) and the secret key sk = x are output.
 暗号化アルゴリズムは、まず、公開鍵pk及びメッセージmを入力として受け取る。 The encryption algorithm first receives the public key pk and message m as input.
 次に、乱数r∈Fq        …(6)
をランダムに選ぶ。
Next, random number r∈Fq (6)
Choose at random.
 次に、
C[0]=g^r、        …(7)
C[1]=h^r・g^m      …(8)
を計算する。
next,
C [0] = g ^ r,… (7)
C [1] = h ^ r · g ^ m… (8)
Calculate
 最後に、暗号文C=(C[0], C[1])を出力する。 Finally, the ciphertext C = (C [0], C [1]) is output.
 復号アルゴリズムは、まず、秘密鍵sk=x及び暗号文C=(C[0], C[1])を入力として受け取る。 The decryption algorithm first receives the secret key sk = x and the ciphertext C = (C [0], C [1]) as inputs.
 次に、復号結果として、
M=C[1]/(C[0]^x)    …(9)
を出力する。
Next, as a decryption result,
M = C [1] / (C [0] ^ x)… (9)
Is output.
 あるメッセージmの暗号文
Enc(pk,m)=(C[0],C[1])=(g^r, h^r・g^m)     …(10)
に対し、
Dec(sk, (C[0], C[1]))=C[1]/(C[0]^x)=g^m    …(11)
となる。
Ciphertext of a message m
Enc (pk, m) = (C [0], C [1]) = (g ^ r, h ^ r ・ g ^ m)… (10)
Whereas
Dec (sk, (C [0], C [1])) = C [1] / (C [0] ^ x) = g ^ m… (11)
It becomes.
 復号アルゴリズムは、メッセージmではなく,g^mを返すものであってもよい。Modified-Elgamal暗号を用いると、暗号化したまま平文の加算や定数倍に対応する暗号文を計算できる。 The decryption algorithm may return g ^ m instead of message m. If Modified-Elgamal cipher is used, ciphertext corresponding to addition of plaintext or constant multiplication can be calculated with encryption.
 加算の場合、公開鍵pk=(g, h=g^x)と2つのメッセージm及びm'の暗号文
C=Enc(pk,m) = (C[0], C[1]) = (g^r, h^r・g^m)    …(12)
及び、
C'=Enc(pk,m') = (C'[0], C'[1]) = (g^r', h^r'・g^m')    …(13)
に対し、
(C[0]・C'[0], C[1]・C'[1])= (g^{r+r'}, h^{r+r'}・g^{m+m'}) = Enc(pk,m+m')    …(14)
が成り立つ。
In case of addition, ciphertext of public key pk = (g, h = g ^ x) and two messages m and m '
C = Enc (pk, m) = (C [0], C [1]) = (g ^ r, h ^ r ・ g ^ m)… (12)
as well as,
C '= Enc (pk, m') = (C '[0], C' [1]) = (g ^ r ', h ^ r' ・ g ^ m ')… (13)
Whereas
(C [0] ・ C '[0], C [1] ・ C' [1]) = (g ^ {r + r '}, h ^ {r + r'} ・ g ^ {m + m ' }) = Enc (pk, m + m ')… (14)
Holds.
 また、定数倍の場合、
公開鍵pk=(g, h=g^x)、
任意の定数z、及び
暗号文c= Enc(pk,m)= (C[0], C[1]) = (g^r, h^r・g^m)
に対し、
(C[0]^z, C[1]^z) = (g^{zr}, h^{zr}・g^{zm})=Enc(pk,zm)   …(15)
が成り立つ。
In the case of a constant multiple,
Public key pk = (g, h = g ^ x),
Arbitrary constant z and ciphertext c = Enc (pk, m) = (C [0], C [1]) = (g ^ r, h ^ r ・ g ^ m)
Whereas
(C [0] ^ z, C [1] ^ z) = (g ^ {zr}, h ^ {zr} ・ g ^ {zm}) = Enc (pk, zm)… (15)
Holds.
 すなわち、Enc(pk, x) = C, Enc(pk, x') = C'、整数zに対し、
加算を
Add(C, C') = (C[0]・C'[0], C[1]・C'[1])    …(16)
スカラー演算を
Scl(z, C) = (C[0]^z, C[1]^z)       …(17)
と定めると、
Add(C, C') = Enc(pk, x+x' mod q)    …(18)
Scl(z, C) = Enc(pk, zx mod q)      …(19)
が成り立つ。ただし、
x+x' mod q、
zx mod q
は、x+x'、zxを体Fq上で計算した結果である。
That is, for Enc (pk, x) = C, Enc (pk, x ') = C', integer z
Add
Add (C, C ') = (C [0] ・ C' [0], C [1] ・ C '[1])… (16)
Scalar operation
Scl (z, C) = (C [0] ^ z, C [1] ^ z)… (17)
And
Add (C, C ') = Enc (pk, x + x' mod q)… (18)
Scl (z, C) = Enc (pk, zx mod q)… (19)
Holds. However,
x + x 'mod q,
zx mod q
Is the result of calculating x + x ′, zx on the field Fq.
 図3を参照すると、準備として、例えば検証装置50は、セキュリティパラメータ1^κを用いて、公開鍵pk、秘密鍵skを生成し、公開鍵pkを公開する(S100)。 Referring to FIG. 3, as a preparation, for example, the verification device 50 generates a public key pk and a secret key sk using the security parameter 1 ^ κ, and publishes the public key pk (S100).
 登録データ(n次元ベクトル)と照合データ(n次元ベクトル)の距離:dE 2(X,Y)を上記のように分割する。 The distance between registered data (n-dimensional vector) and collation data (n-dimensional vector): d E 2 (X, Y) is divided as described above.
 登録要求装置10は、登録データX=[x1,…,xn]に関して、テンプレートとして、
n個の要素x(i=1,…,n)の暗号データ
Enc(pk,x1), Enc(pk,x2), …,Enc(pk, xn)        …(20)
と、n個の要素xの2乗の総和Σ<i=1,n>xi^2の暗号データ
Enc(pk, Σ<i=1,n>xi^2)        …(21)
を記憶装置30に送信する(S101)。
The registration requesting device 10 uses the registration data X = [x1,..., Xn] as a template,
Encrypted data of n elements x i (i = 1, ..., n)
Enc (pk, x 1 ), Enc (pk, x 2 ),…, Enc (pk, x n )… (20)
And the sum of the squares of n elements x i Σ <i = 1, n> x i ^ 2
Enc (pk, Σ <i = 1, n> x i ^ 2)… (21)
Is transmitted to the storage device 30 (S101).
 記憶装置30は、
Enc(pk, xi) (i=1,…,n), およびEnc(pk, Σ<i=1,n>xi^2)=Enc(pk,D1)
を登録識別子Id(Identity)等に対応して記憶する。
The storage device 30
Enc (pk, x i ) (i = 1,…, n), and Enc (pk, Σ <i = 1, n> x i ^ 2) = Enc (pk, D 1 )
Is stored in correspondence with the registered identifier Id (Identity) or the like.
 照合要求装置20は、照合用データY=[y1,…,yn]を照合する場合、照合要求を照合装置40に送信する(S102)。 When collation data Y = [y 1 ,..., Y n ] is collated, the collation request device 20 transmits a collation request to the collation device 40 (S102).
 照合装置40は、ユーザIDに基づき記憶装置30から登録テンプレート:
Enc(pk, x1),…, Enc(pk, xn) 
とEnc(pk, Σ<i=1,n>xi^2)=Enc(pk,D1)
を取得する(S103)。
Based on the user ID, the verification device 40 stores the registered template from the storage device 30:
Enc (pk, x 1 ),…, Enc (pk, x n )
And Enc (pk, Σ <i = 1, n> x i ^ 2) = Enc (pk, D 1 )
Is acquired (S103).
 照合装置40は乱数Sを生成し(S104)、登録されたテンプレート
Enc(pk, xi) (i=1,…,n)    …(22)
をスカラー演算則でS倍した暗号データ
Enc(pk, Sx1),…, Enc(pk, Sxn)     …(23)
と乱数Sの公開鍵pkによる暗号化データ
Enc(pk, S)    …(24)
を作成し、これらの暗号データを照合要求装置20に送信する(S105)。照合装置40は、乱数S∈Fq={0,1,…,q-1}として、好ましくは、毎回異なる数を選択する。なお、照合装置40は、Σ<i=1,n>xi^2=D1に関する暗号データ(第2テンプレート)Enc(pk,D1)は照合要求装置20に送信しない。
The collation device 40 generates a random number S (S104), and the registered template
Enc (pk, x i ) (i = 1,…, n)… (22)
Encryption data that is multiplied by S with a scalar operation rule
Enc (pk, Sx 1 ),…, Enc (pk, Sx n )… (23)
And encrypted data with public key pk of random number S
Enc (pk, S)… (24)
And the encrypted data is transmitted to the verification requesting device 20 (S105). The collation device 40 preferably selects a different number each time as the random number SεF q = {0, 1,..., Q−1}. The collation device 40 does not transmit the encryption data (second template) Enc (pk, D 1 ) related to Σ <i = 1, n> x i ^ 2 = D 1 to the collation requesting device 20.
 照合要求装置20は、照合用データY=[y1,…,yn]から、Σ<i=1,n>yi^2を計算する。そして、照合要求装置20は、乱数R、R1, …Rtを生成する。照合要求装置20は受信したEnc(pk, S)に対して、スカラー演算Scl(Σ<i=1,n>yi^2, Enc(pk,S))により、
Enc(pk, SΣ<i=1,n>yi^2)     …(25)
を生成する。
The verification requesting device 20 calculates Σ <i = 1, n> y i ^ 2 from the verification data Y = [y 1 ,..., Y n ]. The collation request unit 20, the random number R 0, R 1, to produce a ... R t. The verification requesting device 20 performs a scalar operation Scl (Σ <i = 1, n> y i ^ 2, Enc (pk, S)) on the received Enc (pk, S).
Enc (pk, SΣ <i = 1, n> y i ^ 2)… (25)
Is generated.
 また、照合要求装置20は、照合装置40から受け取ったn個の{Enc(pk, Sxi)}i(i=1,…,n)に対して、照合ベクトルの要素{y}のスカラー演算
Scl((-2y), Enc(pk, Sxi)) (i=1,…,n)により、n個の
Enc(pk, (-2yi)Sxi)=Enc(pk, -2Sxiyi)(i=1,…,n)      …(26)
を求める。
Further, the collation requesting device 20 performs a scalar operation on the elements {y i } of the collation vector for the n {Enc (pk, Sxi)} i (i = 1,..., N) received from the collation device 40.
Scl ((-2y i ), Enc (pk, Sx i )) (i = 1, ..., n)
Enc (pk, (-2y i ) Sx i ) = Enc (pk, -2Sx i y i ) (i = 1,…, n)… (26)
Ask for.
 そして、照合要求装置20は、準同型暗号の加法演算により、
Enc(pk, -2S(Σ<i=1,n>xiyi))       …(27)
を求め、
Enc(pk, S×(Σ<i=1,n>yi^2))       …(28)
との準同型加算により、
Enc(pk, S{(Σ<i=1,n>yi^2)-2(Σ<i=1,n>xiyi)})=Enc(pk,SD2)      …(29)
を求める。
Then, the verification requesting device 20 performs a homomorphic encryption addition operation.
Enc (pk, -2S (Σ <i = 1, n> x i y i ))… (27)
Seeking
Enc (pk, S × (Σ <i = 1, n> y i ^ 2))… (28)
Homomorphic addition with
Enc (pk, S {(Σ <i = 1, n> y i ^ 2) -2 (Σ <i = 1, n> x i y i )}) = Enc (pk, SD 2 )… (29)
Ask for.
 また、照合要求装置20は、乱数R, R1,…, Rtを生成し、それぞれを公開鍵pkで暗号化したデータ
Enc(pk, Rδ)(δ=0,1,…,t)        …(30)
を生成する。
In addition, the verification requesting device 20 generates random numbers R 0 , R 1 ,..., R t and encrypts them with the public key pk.
Enc (pk, R δ ) (δ = 0,1,…, t)… (30)
Is generated.
 さらに照合要求装置20は、Enc(pk、S)にδ(=0,1,…,t)をスカラー演算して、
Enc(pk, Sδ)        …(31)
を計算する。
Furthermore, the verification requesting device 20 performs a scalar operation on δ (= 0, 1,..., T) on Enc (pk, S),
Enc (pk, Sδ)… (31)
Calculate
 そして、照合要求装置20は、
 Enc(pk, Rδ)(δ=0,1,…,t)と、Enc(pk,SD2)と、Enc(pk, Sδ)(δ=0,1,…,t)とから準同型性を利用して、これらを暗号化したまま、
 Enc(pk, Rδ+ SD2―Sδ)(δ=0,1,…,t)       …(32)
を計算する。
The verification requesting device 20
Homomorphism from Enc (pk, R δ ) (δ = 0,1, ..., t), Enc (pk, SD 2 ) and Enc (pk, Sδ) (δ = 0,1, ..., t) Using these properties, keep these encrypted,
Enc (pk, R δ + SD 2 −Sδ) (δ = 0,1,…, t)… (32)
Calculate
 加えて、照合要求装置20は、乱数R0, R1, …, Rtのハッシュ値
H(R0)、H(R)、…、H(R)       …(33)
を計算し、これらをレスポンスとして照合装置40に送信する(S116)。
In addition, collation request unit 20, the random number R 0, R 1, ..., hash value of R t
H (R 0 ), H (R 1 ),..., H (R t ) (33)
Are transmitted as a response to the verification device 40 (S116).
 すなわち、照合要求装置20は、照合装置40からのチャレンジと、照合用生体情報のベクトルY=[y1,…,yn]の各要素{yi}(i=1,…,n)に基づき、登録生体情報のベクトルXと照合用生体情報のベクトルYの距離Dを分割(D=D1+D2)した分割値Dと、乱数R, R1,…,Rに基づき、レスポンスとして、
Enc(pk, R0+S(D2-0))、Enc(pk, R1+S(D2-1))、…、Enc(pk, R+S(D2-t))と、ハッシュ値H(R0)、H(R)、…、H(R)を照合装置40に送信する。
In other words, collation requesting device 20 includes a challenge from the verification device 40, a vector Y = the crosscheck biometric information [y 1, ..., y n ] each element {y i} of (i = 1, ..., n ) to based, and the registered biometric dividing the distance D of the vector Y of the vector X and the crosscheck biometric information of the information (D = D 1 + D 2 ) was divided value D 2, the random number R 0, R 1, ..., based on the R t, As a response,
Enc (pk, R 0 + S (D 2 −0)), Enc (pk, R 1 + S (D 2 −1)), ..., Enc (pk, R t + S (D 2 −t)) and hash values H (R 0 ), H (R 1 ),..., H (R t ) are transmitted to the verification device 40.
 照合装置40は、記憶装置30のテンプレートのEnc(pk, D1)に乱数Sをスカラー演算して、Enc(pk,SD1)       …(34)
を求める。
The collation device 40 performs a scalar operation on the random number S on the template Enc (pk, D 1 ) of the storage device 30 to obtain Enc (pk, SD 1 ) (34).
Ask for.
 照合装置40は、照合要求装置20からのレスポンス
Enc(pk, R0+S(D2-0))、
Enc(pk、R1+S(D2-1))、…、
Enc(pk、R+S(D2-t))
と、
Enc(pk,SD1)と、
から、これらを暗号化したまま準同型性を利用して、
Enc(pk, R0+S(D1+D2-0))、
Enc(pk, R1+S(D1+D2-1))、…、
Enc(pk, Rt+S(D1+D2-t))
                      …(35)
を算出する。ただし、
dE 2(X,Y)=D1+D2-=D             …(36)
The verification device 40 receives a response from the verification request device 20.
Enc (pk, R 0 + S (D 2 −0)),
Enc (pk, R 1 + S (D 2 −1)),…
Enc (pk, R t + S (D 2 -t))
When,
Enc (pk, SD 1 ) and
From the above, using the homomorphism while encrypting these,
Enc (pk, R 0 + S (D 1 + D 2 −0)),
Enc (pk, R 1 + S (D 1 + D 2 -1)), ...,
Enc (pk, R t + S (D 1 + D 2 −t))
… (35)
Is calculated. However,
d E 2 (X, Y) = D 1 + D 2- = D… (36)
 さらに、照合装置40は、
Enc(pk, R0+S(D1+D2-0))、
Enc(pk, R1+S(D1+D2-1))、…、
Enc(pk, Rt+S(D1+D2-t))を、照合要求装置20からのレスポンスとして送信されたハッシュ値
H(R0)、H(R1)、…、H(Rt
とともに、クエリとして検証装置50に送信する(S117)。
Furthermore, the verification device 40
Enc (pk, R 0 + S (D 1 + D 2 −0)),
Enc (pk, R 1 + S (D 1 + D 2 -1)), ...,
Hash value transmitted as a response from the verification requesting device 20 with Enc (pk, R t + S (D 1 + D 2 −t))
H (R 0 ), H (R 1 ), ..., H (R t )
At the same time, it is transmitted to the verification device 50 as a query (S117).
 検証装置50では、照合装置40からの前記クエリの前記暗号データ:
Enc(pk, R0+S(D-0))、
Enc(pk, R1+S(D-1))、…、
Enc(pk, Rt+S(D-t))
をそれぞれ秘密鍵(sk)を用いて復号する(S118)。
In the verification device 50, the encrypted data of the query from the verification device 40:
Enc (pk, R 0 + S (D-0)),
Enc (pk, R 1 + S (D-1)), ...
Enc (pk, R t + S (D-t))
Are decrypted using the secret key (sk) (S118).
0=R0+S(D-0)<- Dec(sk, Enc(pk, R0+S(D-0)))
1=R1+S(D-1)<- Dec(sk, Enc(pk, R1+S(D-1)))…、
t=Rt+S(D-t)<- Dec(sk, Enc(pk, Rt+S(D-t)))
                      …(37)
z 0 = R 0 + S (D-0) <-Dec (sk, Enc (pk, R 0 + S (D-0)))
z 1 = R 1 + S (D-1) <-Dec (sk, Enc (pk, R 1 + S (D-1))) ...,
z t = R t + S (D−t) <-Dec (sk, Enc (pk, R t + S (D−t)))
… (37)
 検証装置50では、ハッシュ値
H(R0+S(D-0))、
H(R1+S(D-1))、…、
H(Rt+S(D-t))
                      …(38)
を算出する。
In the verification device 50, the hash value
H (R 0 + S (D-0)),
H (R 1 + S (D-1)), ...
H (R t + S (D-t))
… (38)
Is calculated.
 そして、検証装置50では、
 H(R0+S(D-0))=H(R0)、
 H(R1+S(D-1))=H(R1)、…、
 H(Rt+S(D-t))=H(Rt
                      …(39)
を満たすものがあるかチェックし(S119)、満たすものがあれば、受理する。満たすものがなければ不受理とする。
And in the verification apparatus 50,
H (R 0 + S (D−0)) = H (R 0 ),
H (R 1 + S (D−1)) = H (R 1 ),.
H (R t + S (D−t)) = H (R t )
… (39)
It is checked whether there is any one that satisfies (S119). If there is nothing to satisfy, it will be rejected.
 登録生体情報のベクトルXと照合用生体情報のベクトルYの距離Dが閾値t以下であれば、
D-0=0, 
D-1=0、…、
D-t=0
                    …(40)
のいずれかが成立する。
If the distance D between the registered biometric information vector X and the matching biometric information vector Y is less than or equal to the threshold t,
D-0 = 0,
D-1 = 0, ...
Dt = 0
… (40)
Either of the above holds.
 したがって、任意のS、R0、R1, …、Rtに対して、次のいずれかが成立する。
R0+S(D-0)=R0
R1+S(D-0)=R1、…、
Rt+S(D-0)=Rt
                    …(41)
Therefore, for any S, R 0 , R 1 ,..., Rt, one of the following holds.
R 0 + S (D−0) = R 0 ,
R 1 + S (D−0) = R 1 ,...
R t + S (D−0) = R t ,
… (41)
 S、R0、…、Rtとして独立な乱数を用いることで、R0+S(D-0)、R1+S(D-0)、…、Rt+S(D-0)と、H(R0)、H(R1)、…、H(Rt)から距離Dの漏洩は回避される。 By using independent random numbers as S, R 0 ,..., R t , R 0 + S (D−0), R 1 + S (D−0),..., R t + S (D−0) and H ( Leakage of distance D from R 0 ), H (R 1 ),..., H (R t ) is avoided.
特開2016-111594号公報JP 2016-1111594 A 特開2016-131335号公報JP 2016-131335 A 特開2014-126865公報JP 2014-126865 A 国際公開第2012/114452号International Publication No. 2012/114454
 以下に関連技術の分析を与える。 The following is an analysis of related technologies.
 上記したように、復号者に距離を開示する場合、攻撃者が認証に用いられた生体情報と距離を得られると、ヒルクライミング攻撃により登録された生体情報を復元できる。 As described above, when disclosing the distance to the decryptor, the biometric information registered by the hill climbing attack can be restored if the attacker obtains the biometric information and distance used for authentication.
 非特許文献1では、生体情報として多値ベクトルを対象としている。 In Non-Patent Document 1, multi-value vectors are targeted as biological information.
 二値ベクトル型の生体情報を扱い、復号者と結託する攻撃者によるヒルクライミング攻撃への耐性を持つ手法は未だ提案されていない。 A method that handles binary vector type biometric information and is resistant to hill climbing attacks by attackers colluding with decryptors has not been proposed yet.
 さらに、サーバと結託する攻撃者によるヒルクライミング攻撃への耐性を持つ手法は未だ提案されていない。 Furthermore, no technique has yet been proposed that is resistant to hill climbing attacks by attackers colluding with the server.
 すなわち、復号者に距離を開示せず、サーバが登録生体情報と照合生体情報の距離の操作をできない、という認証システムは未だ提案されていない。 That is, an authentication system that does not disclose the distance to the decryptor and that the server cannot operate the distance between the registered biometric information and the collated biometric information has not been proposed yet.
 本発明は、二値ベクトル型の情報の照合を行うにあたり、少なくとも、三者モデルの復号者と結託する攻撃者によるヒルクライミング攻撃に対して耐性を有するシステム、装置、方法、プログラムを提供することを目的の一つとする。 The present invention provides a system, an apparatus, a method, and a program that are resistant to at least a hill climbing attack by an attacker who collaborates with a decryptor of a three-party model when collating binary vector information. Is one of the purposes.
 また、本発明のさらなる目的の一つは、上記目的に加えて、三者モデルのサーバによる登録生体情報と照合生体情報の距離の操作を不能とするシステム、装置、方法、プログラムを提供することにある。 Another object of the present invention is to provide a system, apparatus, method, and program for disabling the operation of the distance between registered biometric information and collation biometric information by a three-part model server in addition to the above-described object. It is in.
 本発明の1つの側面によれば、照合システムは、登録要求装置から、登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置と、照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する照合装置と、前記照合装置から送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する前記照合要求装置と、検証装置と、を備えている。前記照合装置は、前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、前記距離が予め定められた閾値(t)以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成し、生成した前記暗号データと前記ハッシュ値をクエリとして前記検証装置に送信する。前記検証装置は、前記照合装置から送信された前記クエリを受け、前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する。 According to one aspect of the present invention, the verification system encrypts the first calculation result and the second calculation result relating to the elements of the binary first vector for registration from the registration requesting device with the encryption key, respectively. A storage device that receives and stores the encrypted data, and upon receiving a verification request from the verification requesting device, the encrypted data obtained by the calculation with the first random number while the encrypted data of the first calculation result is encrypted Obtained by calculation with a collation device to be transmitted to the collation request device, and the encrypted data transmitted from the collation device, with the encrypted data encrypted and with the elements of the binary second vector for collation The verification request device that transmits the encrypted data to the verification device, and a verification device are provided. Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the verification device encrypts the first vector and the second vector while encrypting them. Generating encrypted data having a value based on a distance and a predetermined arithmetic expression relating to at least the first random number and the second random number; and a non-negative integer value whose distance is equal to or less than a predetermined threshold (t); If they match, a hash value of the value taken by the arithmetic expression is generated, and the generated encrypted data and the hash value are transmitted as a query to the verification device. The verification device receives the query transmitted from the verification device, decrypts the encrypted data of the query with a decryption key, calculates a hash value of a decrypted value, and among the hash values of the query, the decryption It is determined whether or not there is a value equal to the hash value of the value, and acceptance or non-acceptance is determined.
 本発明の他の1つの側面によれば、登録要求装置から登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置に接続される照合装置が提供される。この照合装置は、照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第1の手段と、
 前記送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する前記照合要求装置から前記暗号データを受信する第2の手段と、
 前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
 前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成する第3の手段と、
 生成した前記暗号データと前記ハッシュ値を前記クエリとして前記検証装置に送信する第4の手段と、
 前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する前記検証装置から検証結果を受信する第5の手段とを備えている。
According to another aspect of the present invention, encrypted data obtained by encrypting a first calculation result and a second calculation result relating to elements of a binary first vector for registration from a registration requesting device with an encryption key, respectively. Is provided that is connected to a storage device that receives and stores the data. When receiving the verification request from the verification requesting device, the verification device transmits the encrypted data obtained by the calculation with the first random number while encrypting the encrypted data of the first calculation result to the verification requesting device. One means,
The verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data A second means for receiving the encrypted data from:
Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the distance between the first vector and the second vector is kept at least as encrypted. Generating encrypted data of a value based on a predetermined arithmetic expression relating to the first random number and the second random number;
A third means for generating a hash value of a value taken by the arithmetic expression when the distance matches a non-negative integer value equal to or less than a predetermined threshold;
A fourth means for transmitting the generated encrypted data and the hash value as the query to the verification device;
Decrypting the encrypted data of the query with a decryption key to calculate a hash value of a decrypted value, and determining whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, And a fifth means for receiving a verification result from the verification device for determining acceptance or non-acceptance.
 本発明のさらに別の側面によれば、登録要求装置から、登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶装置に記憶する第1の工程と、
 照合装置が、照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第2の工程と、
 前記照合要求装置が、前記照合装置から送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する第3の工程と、
 前記照合装置が、前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
 前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成し、
 生成した前記暗号データと前記ハッシュ値をクエリとして前記検証装置に送信する第4の工程と、
 前記検証装置が、前記照合装置から送信された前記クエリを受け、前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する第5の工程と、を含む照合方法が提供される。
According to still another aspect of the present invention, encrypted data obtained by encrypting a first calculation result and a second calculation result related to elements of a binary first vector for registration from a registration requesting device with an encryption key is provided. A first step of receiving and storing in a storage device;
When the collation device receives a collation request from the collation requesting device, the encryption data obtained by the operation with the first random number is transmitted to the collation requesting device while the encrypted data of the first calculation result is encrypted. And the process of
The verification requesting device receives the encrypted data transmitted from the verification device, and encrypts the encrypted data obtained by calculation with the binary second vector element for verification while encrypting the encrypted data. A third step of transmitting to the verification device;
Based on the cipher data transmitted from the collation requesting device and the cipher data of the second calculation result, the collation device encrypts the first vector and the second vector while encrypting them. Generating encrypted data having a value based on a distance and a predetermined arithmetic expression relating to at least the first random number and the second random number;
When the distance matches a non-negative integer value equal to or less than a predetermined threshold value, a hash value of the value taken by the arithmetic expression is generated,
A fourth step of transmitting the generated encrypted data and the hash value as a query to the verification device;
The verification device receives the query transmitted from the verification device, decrypts the encrypted data of the query with a decryption key, calculates a hash value of a decrypted value, and among the hash values of the query, the decryption And a fifth step of determining whether or not there is a value equal to the hash value of the value and determining acceptance or non-acceptance.
 本発明のさらに別の側面によれば、登録要求装置から登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置に接続されるコンピュータに、
 照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第1の処理と、
 前記送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する前記照合要求装置から前記暗号データを受信する第2の処理と、
 前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
 前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成する第3の処理と、
 生成した前記暗号データと前記ハッシュ値を前記クエリとして前記検証装置に送信する第4の処理と、
 前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する前記検証装置から検証結果を受信する第5の処理と、
 を実行させるプログラム、及び、該プログラムを記憶したコンピュータ読み出し可能なプログラム記録媒体が提供される。
According to still another aspect of the present invention, encrypted data obtained by encrypting the first calculation result and the second calculation result relating to the elements of the binary first vector for registration from the registration requesting device with an encryption key is obtained. To a computer connected to a storage device that receives and stores,
A first process for receiving the verification request from the verification requesting device and transmitting the encrypted data obtained by the calculation with the first random number while encrypting the encrypted data of the first calculation result to the verification requesting device;
The verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data A second process for receiving the encrypted data from:
Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the distance between the first vector and the second vector is kept at least as encrypted. Generating encrypted data of a value based on a predetermined arithmetic expression relating to the first random number and the second random number;
A third process of generating a hash value of a value taken by the arithmetic expression when the distance matches a non-negative integer value equal to or less than a predetermined threshold;
A fourth process of transmitting the generated encrypted data and the hash value as the query to the verification device;
Decrypting the encrypted data of the query with a decryption key to calculate a hash value of a decrypted value, and determining whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, A fifth process of receiving a verification result from the verification device for determining acceptance or non-acceptance;
And a computer-readable program recording medium storing the program.
 本発明によれば、上記プログラムを記憶したコンピュータ読み出し可能な記録媒体は、例えばRAM(Random Access Memory)、ROM(Read Only Memory)、又は、EEPROM(Electrically Erasable and Programmable ROM)等の半導体ストレージ、HDD(Hard Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)等のnon-transitory mediumからなる。 According to the present invention, a computer-readable recording medium storing the above program is a semiconductor storage, such as a RAM (Random Access Memory), a ROM (Read Only Memory), or an EEPROM (Electrically, Erasable and Programmable ROM), an HDD, etc. (Hard Disk Drive), CD (Compact Disk), DVD (Digital Versatile Disk) and other non-transitory media.
 本発明の一形態によれば、二値ベクトル型の情報の照合を行うにあたり、例えば三者モデルの復号者と結託する攻撃者によるヒルクライミング攻撃に対して耐性を持たせることができる。また、本発明の他の形態によれば、上記効果に加えて、さらに、三者モデルのサーバによる登録生体情報と照合生体情報の距離の操作を不能とすることができる。 According to one aspect of the present invention, when collating binary vector information, for example, it is possible to provide resistance to a hill climbing attack by an attacker colliding with a decryptor of a three-party model. Moreover, according to the other form of this invention, in addition to the said effect, operation of the distance of registration biometric information and collation biometric information by the server of a three-part model can be made impossible further.
関連技術の三者モデルを説明する図である。It is a figure explaining the three-part model of related technology. ヒルクライミング攻撃を説明する図である。It is a figure explaining a hill climbing attack. ヒルクライミング攻撃を説明する図である。It is a figure explaining a hill climbing attack. ヒルクライミング攻撃を説明する図である。It is a figure explaining a hill climbing attack. 非特許文献1の開示に基づき距離分割方式の三者モデルの動作シーケンスを説明する図である。It is a figure explaining the operation | movement sequence of the three-part model of a distance division | segmentation system based on a nonpatent literature 1 indication. 図3において二値ベクトルのなりすましの例を説明する図である。It is a figure explaining the example of the spoofing of a binary vector in FIG. 本発明の例示的な第1の実施形態のシステム構成を模式的の説明する蓋然図である。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a probability diagram schematically illustrating a system configuration of a first exemplary embodiment of the present invention. 本発明の例示的な第1の実施形態の動作シーケンスの一例を説明する図である。It is a figure explaining an example of the operation | movement sequence of illustrative 1st Embodiment of this invention. 本発明の例示的な第1の実施形態の装置構成の一例を説明する図である。It is a figure explaining an example of an apparatus configuration of a 1st exemplary embodiment of the present invention. 本発明の例示的な第1の実施形態におけるにおける準備フェーズを説明する図である。It is a figure explaining the preparation phase in illustrative 1st Embodiment of this invention. 本発明の例示的な第1の実施形態における登録フェーズを説明する図である。It is a figure explaining the registration phase in illustrative 1st Embodiment of this invention. 本発明の例示的な第1の実施形態における照合フェーズを説明する図である。It is a figure explaining the collation phase in exemplary 1st Embodiment of this invention. 本発明の例示的な第2の実施形態を説明する図である。It is a figure explaining exemplary 2nd Embodiment of this invention. 本発明の例示的な第2の実施形態の動作シーケンスの一例を説明する図である。It is a figure explaining an example of the operation | movement sequence of illustrative 2nd Embodiment of this invention. 本発明の例示的な第2の実施形態における登録フェーズを説明する図である。It is a figure explaining the registration phase in illustrative 2nd Embodiment of this invention. 本発明の例示的な第3の実施形態を説明する図である。It is a figure explaining exemplary 3rd Embodiment of this invention.
 本発明の実施形態を説明する。はじめに、本発明が創案された元となる課題について、図3を参照して説明した照合システムで二値ベクトルを照合する場合を例として説明しておく。 Embodiments of the present invention will be described. First, the problem from which the present invention was created will be described by taking, as an example, a case where a binary vector is collated by the collation system described with reference to FIG.
 前述したように、非特許文献1では、生体情報として多値ベクトルを対象としている。そして、二値ベクトル型の生体情報を扱い、復号者と結託する攻撃者によるヒルクライミング攻撃への耐性を持つ手法は未だ提案されていない。図4は、図3を参照して説明したシステムにおいて二値ベクトルを扱った場合のなりすましの一例を説明する図である。特に制限されないが、図4においても、図3と同様、Modified-Elgamal暗号アルゴリズムを用いるものとする。 As described above, Non-Patent Document 1 deals with multi-value vectors as biological information. A technique that handles binary vector type biometric information and has resistance to hill climbing attacks by an attacker who collaborates with a decryptor has not been proposed yet. FIG. 4 is a diagram for explaining an example of impersonation when a binary vector is handled in the system described with reference to FIG. Although not particularly limited, the Modified-Elgamal encryption algorithm is used in FIG. 4 as in FIG.
 二値ベクトルのハミング距離は多値ベクトルのユークリッド距離と同じ方法で算出できることから、図3を参照して説明した多値ベクトル型の生体情報をユークリッド距離dE 2(X,Y)によって照合するシステムは、二値ベクトル型の生体情報も扱えそうに思われる。 Since the hamming distance of the binary vector can be calculated by the same method as the Euclidean distance of the multi-value vector, the multi-value vector type biological information described with reference to FIG. 3 is collated by the Euclidean distance d E 2 (X, Y). The system seems to be able to handle binary vector type biological information.
 二値ベクトル
X=[x1,…,xn]∈{0,1}nの各要素xiについて、
xi^2=xi (i=1,…,n)      …(42)
が成り立つ。
Binary vector
For each element xi of X = [x 1 ,…, x n ] ∈ {0,1} n ,
x i ^ 2 = x i (i = 1,…, n)… (42)
Holds.
Enc(pk, xi^2)=Enc(pk, xi)      …(43)
となり、照合要求装置20は、ステップS105で受信した
Enc(pk, Sxi) (i=1,…,n)      …(44)
から、
Enc(pk, Sxi^2) (i=1,…,n)      …(45)
を計算することができる。
Enc (pk, x i ^ 2) = Enc (pk, x i )… (43)
The verification requesting device 20 received in step S105
Enc (pk, Sx i ) (i = 1,…, n)… (44)
From
Enc (pk, Sx i ^ 2) (i = 1,…, n)… (45)
Can be calculated.
 すなわち、照合要求装置20は、
Enc(pk, SΣ<i=1,n>xi^2)= Enc(pk, SD1)        …(46)
を計算することができる。
That is, the verification requesting device 20
Enc (pk, SΣ <i = 1, n> x i ^ 2) = Enc (pk, SD 1 )… (46)
Can be calculated.
 照合要求装置20は、Enc(pk, S)に基づき、レスポンスとして、
Enc(pk, R0+S(C-D1-0))、
Enc(pk, R1+S(C-D1-1))、…、
Enc(pk, Rt+S(C-D1-t))
                  …(47)
と、
ハッシュ値
H(R0)、H(R)、…、H(R
                  …(48)
を、照合装置40に送信する(S116A)。ただし、Cはt以下の整数(例えば0)とする。
Based on Enc (pk, S), the verification requesting device 20
Enc (pk, R 0 + S (CD 1 -0)),
Enc (pk, R 1 + S (CD 1 -1)), ...
Enc (pk, R t + S (CD 1 -t))
… (47)
When,
Hash value
H (R 0 ), H (R 1 ),..., H (R t )
… (48)
Is transmitted to the verification device 40 (S116A). However, C is an integer equal to or less than t (for example, 0).
 前述したように照合装置40は、記憶装置30のテンプレートのEnc(pk, D1)に乱数Sをスカラー演算してEnc(pk,SD1)を求める。照合装置40は、照合要求装置20からのレスポンス:
Enc(pk, R0+S(C-D1-0))、
Enc(pk、R1+S(C-D1-1))、…、
Enc(pk、R+S(C-D1-t))と、
暗号データEnc(pk,SD1)と、
から、これらを暗号化したまま準同型性を利用して、
Enc(pk, R0+S(C-D1-0+D1))= Enc(pk, R0+S(C-0))、
Enc(pk、R1+S(C-D1-1+D1))=Enc(pk, R1+S(C-1))、…、
Enc(pk、Rt+S(C-D1-t+D1))=Enc(pk, R+S(C-t))
                  …(49)
を算出し、ハッシュ値
H(R0)、H(R1)、…、H(Rt
                  …(50)
とともに、クエリとして検証装置50に送信する(S117A)。
As described above, the collation device 40 obtains Enc (pk, SD 1 ) by performing a scalar operation on the random number S on the template Enc (pk, D 1 ) of the storage device 30. The verification device 40 sends a response from the verification request device 20:
Enc (pk, R 0 + S (CD 1 -0)),
Enc (pk, R 1 + S (CD 1 -1)), ...
Enc (pk, R t + S (CD 1 -t)),
Encrypted data Enc (pk, SD 1 )
From the above, using the homomorphism while encrypting these,
Enc (pk, R 0 + S (CD 1 -0 + D 1 )) = Enc (pk, R 0 + S (C-0)),
Enc (pk, R 1 + S (CD 1 -1 + D 1 )) = Enc (pk, R 1 + S (C-1)), ...
Enc (pk, R t + S (CD 1 -t + D 1)) = Enc (pk, R t + S (Ct))
… (49)
Calculate the hash value
H (R 0 ), H (R 1 ), ..., H (R t )
… (50)
At the same time, the query is transmitted to the verification device 50 (S117A).
 検証装置50では、照合装置40からの前記クエリの前記暗号データ
Enc(pk, R0+S(C-0))、
Enc(pk, R1+S(C-1))、…、
Enc(pk, R+S(C-t))
を秘密鍵(sk)を用いて復号する(S118A)。
0=R0+S(C-0) <- Dec(sk, Enc(pk, R0+S(C-0)))
1=R1+S(C-1) <- Dec(sk, Enc(pk, R1+S(C-1)))…、
t=Rt+S(C-t) <- Dec(sk, Enc(pk, Rt+S(C-t)))
                  …(51)
In the verification device 50, the encrypted data of the query from the verification device 40
Enc (pk, R 0 + S (C-0)),
Enc (pk, R 1 + S (C-1)), ...
Enc (pk, R t + S (Ct))
Is decrypted using the secret key (sk) (S118A).
z 0 = R 0 + S (C-0) <-Dec (sk, Enc (pk, R 0 + S (C-0)))
z 1 = R 1 + S (C-1) <-Dec (sk, Enc (pk, R 1 + S (C-1))) ...,
z t = R t + S (Ct) <-Dec (sk, Enc (pk, R t + S (Ct)))
… (51)
 検証装置50では、復号値のハッシュ値
H(R0+S(C-0))、
H(R1+S(C-1))、…、
H(Rt+S(C-t))
                  …(52)
を算出する。
In the verification device 50, the hash value of the decrypted value
H (R 0 + S (C-0)),
H (R 1 + S (C-1)), ...
H (R t + S (C-t))
… (52)
Is calculated.
 検証装置50は、
 H(R0+S(C-0))=H(R0)、
 H(R1+S(C-1))=H(R)、…、
 H(Rt+S(C-t))=H(R
                  …(53)
を満たすものがあるかチェックし(S119A)、満たすものがあれば、受理する。
The verification device 50
H (R 0 + S (C-0)) = H (R 0 ),
H (R 1 + S (C−1)) = H (R 1 ),.
H (R t + S (C−t)) = H (R t )
… (53)
It is checked whether or not there is a satisfying condition (S119A).
 ここで、照合要求装置20が、例えばC=0と設定すれば、
 H(R0+S(C-0))=H(R0
                  …(54)
が必ず成立する。C=1やC=tとしても同様である。したがって、なりすましが可能である。
Here, if the verification requesting device 20 sets C = 0, for example,
H (R 0 + S (C-0)) = H (R 0 )
… (54)
Is always true. The same applies to C = 1 and C = t. Therefore, impersonation is possible.
 図4のステップS105において、照合装置40は、チャレンジとして、Enc(pk, S) を送信しなければ、照合要求装置20でEnc(pk, Rδ+S(C-D1-δ))を生成することはできず、なりすましはできない。 In step S105 of FIG. 4, if the verification device 40 does not transmit Enc (pk, S) as a challenge, the verification request device 20 generates Enc (pk, R δ + S (CD 1 -δ)). Cannot impersonate and cannot impersonate.
 本発明によれば、距離分割方式の照合システムにおいて、照合装置から照合要求装置に対して送信するチャレンジに乱数Sの暗号データを単独で送信しない手法を用いることで、上記したなりすましを回避可能としている。 According to the present invention, it is possible to avoid the above-mentioned impersonation by using a method in which the encrypted data of the random number S is not independently transmitted in the challenge transmitted from the verification device to the verification request device in the distance division verification system. Yes.
 本発明の基本的な形態によれば、登録要求装置(図5、図11の110)は登録用の二値の第1のベクトル(X=[x1,…,xn])の要素(xi)に関する第1の演算結果((1-2xi)(i=1,…n))と第2の演算結果(Σ<i=1,n>xi=D1)を暗号鍵でそれぞれ暗号化した暗号データを記憶装置(図5、図11の130)に送信し、記憶装置(図5、図11の130)に記憶する。 According to the basic form of the present invention, the registration requesting device (110 in FIGS. 5 and 11) includes an element (xi) of a binary first vector (X = [x1,..., Xn]) for registration. A first encryption result ((1-2xi) (i = 1,... N)) and a second calculation result (Σ <i = 1, n> xi = D 1 ) encrypted with encryption keys. The data is transmitted to the storage device (130 in FIGS. 5 and 11) and stored in the storage device (130 in FIGS. 5 and 11).
 照合装置(図5、図11の140)は、照合要求装置(図5、図11の120)から照合要求を受けると、前記第1の演算結果の暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置(図5、図11の120)に送信する。 When the collation device (140 in FIGS. 5 and 11) receives the collation request from the collation request device (120 in FIGS. 5 and 11), the first random number remains encrypted with the encrypted data of the first calculation result. The encrypted data obtained by the calculation is transmitted to the verification requesting device (120 in FIGS. 5 and 11).
 照合要求装置(図5、図11の120)は、照合装置(図5、図11の140)から送信された前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを照合装置(図5、図11の140)に送信する。 The verification requesting device (120 in FIGS. 5 and 11) is an element of a binary second vector for verification while the encrypted data transmitted from the verification device (140 in FIGS. 5 and 11) is encrypted. The encrypted data obtained by the calculation is transmitted to the verification device (140 in FIGS. 5 and 11).
 前記照合装置(図5、図11の140)は、照合要求装置(図5、図11の120)から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離(D)と、少なくとも前記第1の乱数(S)および第2の乱数(R)に関する予め定められた演算式に基づく値の暗号データを生成する。前記照合装置(図5、図11の140)は、さらに、前記距離(D)が予め定められた閾値(t)以下の非負整数値(δ)と一致するとした場合に前記演算式がとる値のハッシュ値を生成し、生成した前記暗号データと前記ハッシュ値をクエリとして検証装置(図5、図11の150)に送信する。 The collation device (140 in FIGS. 5 and 11), based on the cipher data transmitted from the collation request device (120 in FIGS. 5 and 11) and the cipher data in the second calculation result, A value based on a predetermined arithmetic expression regarding the distance (D) between the first vector and the second vector and at least the first random number (S) and the second random number (R) while being encrypted. Generate encrypted data. The collation device (140 in FIGS. 5 and 11) further determines the value that the arithmetic expression takes when the distance (D) matches a non-negative integer value (δ) that is equal to or less than a predetermined threshold (t). The hash value is generated, and the generated encrypted data and the hash value are transmitted as a query to the verification device (150 in FIGS. 5 and 11).
 検証装置(図5、図11の150)は、照合装置(図5、図11の140)から送信された前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する。以下、図面を参照して例示的な実装形態について説明する。特に制限されないが、二値のベクトル型の生体情報として虹彩(IrisCode)や掌紋(CompetitiveCode)等であってもよい。 The verification device (150 in FIGS. 5 and 11) calculates the hash value of the decrypted value by decrypting the encrypted data of the query transmitted from the verification device (140 in FIGS. 5 and 11) with a decryption key, It is determined whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, and accept or reject is determined. Hereinafter, exemplary implementations will be described with reference to the drawings. Although not particularly limited, the binary vector type biological information may be an iris (IrisCode), a palm print (CompetitiveCode), or the like.
<第1の実施形態>
 図5は、本発明の例示的な第1の実施形態を説明する図である。図5には、例示的な第1の実施形態の照合システム100の構成が模式的に示されている。図5を参照すると、登録要求装置110、照合要求装置120、記憶装置130、照合装置140、検証装置150は、図1の登録要求装置10、照合要求装置20、記憶装置30、照合装置40、検証装置50にそれぞれ対応しているが、処理、送受するデータが相違している。
<First Embodiment>
FIG. 5 is a diagram for explaining a first exemplary embodiment of the present invention. FIG. 5 schematically illustrates the configuration of the verification system 100 according to the first exemplary embodiment. Referring to FIG. 5, the registration request device 110, the verification request device 120, the storage device 130, the verification device 140, and the verification device 150 are the registration request device 10, the verification request device 20, the storage device 30, the verification device 40, FIG. Although it corresponds to each verification device 50, the data to be processed and transmitted / received are different.
 図5に示すように、登録要求装置110は、第1の乱数(S)を生成する。登録要求装置110は、さらに、複数(t+1個)の第2の乱数(R0, R1,…, Rt)を生成する。ただし、tは一致度判定用に用いられる予め定められた閾値である。 As shown in FIG. 5, the registration requesting device 110 generates a first random number (S). The registration requesting device 110 further generates a plurality (t + 1) of second random numbers (R 0 , R 1 ,..., R t ). However, t is a predetermined threshold value used for determining the degree of coincidence.
 また、登録要求装置110は、複数(例えばt+1個)の第2の乱数(R0, R1,…, Rt)のハッシュ値(H(R0),H(R1),…,H(Rt))を生成する。ハッシュ関数H()として、距離の秘匿のため、好ましくは、準同型性を持つハッシュ関数が用いられる。 In addition, the registration requesting device 110 has a plurality of (for example, t + 1) second random numbers (R 0 , R 1 ,..., R t ) hash values (H (R 0 ), H (R 1 ),. (R t )) is generated. As the hash function H (), a hash function having homomorphism is preferably used in order to conceal the distance.
 位数がκビットの素数qである群Gのある生成元kに対し,ハッシュ関数H()として、
 H(x)=k^x                …(55)
を用いてもよい。なお、Modified Elgamal暗号における公開鍵(g,h)に対して、
k=g、あるいはk=h                …(56)
を用いてもよい。
For a generator k of a group G whose prime is q with κ bits, as a hash function H (),
H (x) = k ^ x… (55)
May be used. In addition, for the public key (g, h) in Modified Elgamal encryption,
k = g or k = h… (56)
May be used.
 k=gやk=hとすると、Modified Elgamal暗号の公開鍵のみを用いてハッシュ値を計算できる。 If k = g or k = h, the hash value can be calculated using only the public key of Modified Elgamal encryption.
 加法準同型暗号として楕円Elgamal暗号を用いる場合、ハッシュ関数H()として、ある元Kに対して、
H(x)=x(*)K                …(57)
を用いてもよい。なお、公開鍵(G,H)に対して、
K=GやK=H
としてもよい。
When using an elliptic Elgamal cipher as an additive homomorphic cipher, as a hash function H (),
H (x) = x (*) K (57)
May be used. For public keys (G, H)
K = G and K = H
It is good.
 K=GやK=Hとすると、公開鍵のみを用いて、ハッシュ値を計算することができる(楕円Elgamal暗号は以下の段落0144でも概説される)。 If K = G or K = H, the hash value can be calculated using only the public key (the elliptic Elgamal cipher is also outlined in paragraph 0144 below).
 図5の示す例示的な第1の実施形態では、サーバ102(記憶装置130、照合装置140)による距離(登録用の二値の第1のベクトルと、照合用の二値の第2のベクトルの距離)の操作も防ぐことができる。 In the first exemplary embodiment shown in FIG. 5, the distance (a first binary vector for registration and a second second vector for verification) by the server 102 (storage device 130, verification device 140). (Distance) can also be prevented.
 登録要求装置110は、公開鍵(pk)で暗号化された二値の第1のベクトル(X=[x1,…,xn])の要素の第1の演算結果(1-2xi)と、第2の演算結果(Σ<i=1,n>xi=D1)を計算し、第1の乱数(S)を、前記第1の演算結果(1-2xi)に乗算した結果を公開鍵(pk)で暗号化したn個の暗号データ:
Enc(pk, S(1-2x1)), Enc(pk, S(1-2x2)),…,Enc(pk, S(1-2xn))        …(58)
(第1のテンプレート)を生成する。
The registration requesting device 110 includes the first calculation result (1-2xi) of the elements of the binary first vector (X = [x1,..., Xn]) encrypted with the public key (pk), and the first 2 calculation result (Σ <i = 1, n> xi = D 1 ), and the result obtained by multiplying the first calculation result (1-2xi) by the first random number (S) is the public key ( n encrypted data encrypted with pk):
Enc (pk, S (1-2x 1 )), Enc (pk, S (1-2x 2 )), ..., Enc (pk, S (1-2x n ))… (58)
(First template) is generated.
 また、登録要求装置110は、
D1-δ(δ=0,…,t)         …(59)
にそれぞれ第1の乱数(S)を乗算した値と、第2の乱数(Rδ)を加算した値を公開鍵(pk)で暗号化した、複数(例えばt+1個)の暗号データ:
Enc(pk, S(D1-0)+R0), 
Enc(pk, S(D1-1)+R2), …, 
Enc(pk, S(D1-t)+Rt)         …(60)
と、準同型性のハッシュ関数H()を用いて、t+1個の第2の乱数(Rδ)のハッシュ値:
H(R0), H(R1), …, H(Rt)         …(61)
を生成する。t+1組の暗号データと第2の乱数(Rδ)のハッシュ値{(Enc(pk, S(D1-δ)+Rδ)、H(Rδ))、(δ=0,…,t)を第2のテンプレートとする。
In addition, the registration request device 110
D 1 -δ (δ = 0,…, t)… (59)
A plurality of (for example, t + 1) pieces of encrypted data obtained by encrypting a value obtained by multiplying each by a first random number (S) and a value obtained by adding a second random number (R δ ) with a public key (pk):
Enc (pk, S (D 1 -0) + R 0 ),
Enc (pk, S (D 1 -1) + R 2 ),…,
Enc (pk, S (D 1 -t) + R t )… (60)
And a hash value of t + 1 second random numbers (R δ ) using a homomorphic hash function H ():
H (R 0 ), H (R 1 ),…, H (R t )… (61)
Is generated. A hash value {(Enc (pk, S (D 1 -δ) + R δ ), H (R δ )), (δ = 0,..., t + 1 sets of encrypted data and the second random number (R δ ) , t) is the second template.
 登録要求装置110は、第1のテンプレート(Enc(pk, S(1-2xi)) ) (i=1,…,n)、と、第2のテンプレート(Enc(pk, S(D1-δ)+Rδ), H(Rδ))、(δ=0,…,t)をあわせたテンプレートを記憶装置(130)に送信する。 The registration requesting device 110 includes a first template (Enc (pk, S (1-2x i ))) (i = 1,..., N) and a second template (Enc (pk, S (D 1 − (δ) + R δ ), H (R δ )) and (δ = 0,..., t) are transmitted to the storage device (130).
 記憶装置130は、登録要求装置110から送信された第1のテンプレートと第2のテンプレートを受け取ると、登録識別子を生成し、該登録識別子Idに対応させて記憶する。 When the storage device 130 receives the first template and the second template transmitted from the registration requesting device 110, the storage device 130 generates a registration identifier and stores it in correspondence with the registration identifier Id.
 照合装置140は、照合要求装置120から照合要求を受けると、第3の乱数(S')を作成し、記憶装置130から、
第1のテンプレート:Enc(pk, S(1-2xi))  (i=1,…,n)と、
第2のテンプレート:Enc(pk, S(D1-0)+R0),Enc(pk, S(D1-1)+R1),…,Enc(pk, S(D1-t)+Rt)、およびハッシュ値:H(R0),H(R1),…,H(Rt
を取得する。
When the verification device 140 receives the verification request from the verification request device 120, the verification device 140 generates a third random number (S ′), and from the storage device 130,
First template: Enc (pk, S (1-2x i )) (i = 1, ..., n)
Second template: Enc (pk, S (D 1 -0) + R 0 ), Enc (pk, S (D 1 -1) + R 1 ), ..., Enc (pk, S (D 1 -t) + R t ), and hash values: H (R 0 ), H (R 1 ), ..., H (R t )
To get.
 照合装置140は、第1のテンプレートの暗号データ:
Enc(pk, S(1-2xi))  (i=1,…,n)          …(62)
に対して、第3の乱数(S')をスカラー演算して求めたn個の暗号データ:
Enc(pk, SS'(1-2xi)) (i=1,…,n)         …(63)
を生成し、照合要求装置120にチャレンジとして送信する。照合装置140は、好ましくは、毎回異なる第3の乱数(S')を選択する。
The verification device 140 uses the encrypted data of the first template:
Enc (pk, S (1-2x i )) (i = 1,…, n)… (62)
In contrast, n pieces of encrypted data obtained by performing a scalar operation on the third random number (S ′):
Enc (pk, SS '(1-2x i )) (i = 1,…, n)… (63)
Is generated and sent to the verification requesting device 120 as a challenge. The verification device 140 preferably selects a different third random number (S ′) each time.
 照合要求装置120は、二値の第2のベクトル(Y=[y1,…,yn])の要素(yi)と、照合装置140からチャレンジとして送信された暗号データ:
Enc(pk, SS'(1-2xi)) (i=1,…,n)
とを乗算した結果:
Enc(pk, SS' (1 - 2xi)yi) (i=1,…,n)          …(64)
の総和(Σ<i=1,n>)を、第1べクトルXと第2のべクトルYのハミング距離(D)の分割値(D2)の暗号データ:
Enc(pk, SS' (Σ<i=1,n> (1 - 2xi)yi))=Enc(pk, SS' D2)        …(65)
として求め、照合装置140にレスポンスとして送信する。
The verification requesting device 120 includes the element (yi) of the binary second vector (Y = [y1,..., Yn)) and the encrypted data transmitted as a challenge from the verification device 140:
Enc (pk, SS '(1-2x i )) (i = 1,…, n)
The result of multiplying with:
Enc (pk, SS '(1-2x i ) y i ) (i = 1,…, n)… (64)
Of the sum (Σ <i = 1, n>) of the divided value (D 2 ) of the Hamming distance (D) of the first vector X and the second vector Y:
Enc (pk, SS '(Σ <i = 1, n> (1-2xi) y i )) = Enc (pk, SS' D 2 )… (65)
Is transmitted to the verification device 140 as a response.
 照合装置140は、照合要求装置120からレスポンスとして送信された暗号データ:
Enc(pk, SS' D2)
を受けると、該暗号データ(Enc(pk, SS' D2))から第3の乱数(S')を外し(除去し)、第1べクトルXと第2のべクトルYのハミング距離(D)の分割値(D2)に関する暗号データ:
Enc(pk, SD2)       …(66)
を求める。
The verification device 140 transmits the encrypted data transmitted as a response from the verification request device 120:
Enc (pk, SS 'D 2 )
The third random number (S ′) is removed (removed) from the encrypted data (Enc (pk, SS ′ D 2 )), and the Hamming distance between the first vector X and the second vector Y ( division value D) (D 2) about the encrypted data:
Enc (pk, SD 2 )… (66)
Ask for.
 照合装置140は、前記ハミング距離(D)の分割値(D2)に関する暗号データ:
Enc(pk, SD2)
と、第2のテンプレートの複数個(例えばt+1個)の暗号データ
Enc(pk, S(D1-δ)+Rδ), (δ=0,…,t)        …(67)
とに基づき、これらを暗号化したまま、第1のベクトルXと第2のべクトルYの距離Dと非負整数値(δ)との差分(D-δ)に、第1の乱数(S)を乗算した値(S(D-δ))にさらに第2の乱数(Rδ)を加算した値(S(D-δ)+Rδ)に、さらに、第4の乱数(bδ)を乗算してなる値:
 bδ(S(D-δ)+Rδ) (δ=0,…,t)     …(68)
の暗号データ:
Enc(pk, bδ(S(D-δ)+Rδ)) (δ=0,…,t)       …(69)
を生成する。
The collation device 140 encrypts data related to the division value (D 2 ) of the Hamming distance (D):
Enc (pk, SD 2 )
And a plurality (for example, t + 1) of encrypted data of the second template
Enc (pk, S (D 1 -δ) + R δ ), (δ = 0,…, t)… (67)
Based on the above, the first random number (S) is converted into the difference (D−δ) between the distance D between the first vector X and the second vector Y and the non-negative integer value (δ) with these being encrypted. (S (D-δ)) multiplied by the second random number (R δ ) and the value (S (D-δ) + R δ ) multiplied by the fourth random number (b δ ) Value to be:
b δ (S (D-δ) + R δ ) (δ = 0,…, t)… (68)
Encrypted data:
Enc (pk, b δ (S (D-δ) + R δ )) (δ = 0,…, t)… (69)
Is generated.
 ここで、暗号データ(Enc(pk,SD1))と、照合要求装置120からレスポンスとして送信された暗号データ(Enc(pk, SS'D2))から第3の乱数(S')を除去した値(Enc(pk, SD2))を準同型加算した暗号データは、二値の第1のベクトルXと二値の第2のベクトルYの間のハミング距離D(=D1+D2)の暗号データ(Enc(pk,SD))を構成する。 Here, the third random number (S ′) is removed from the encrypted data (Enc (pk, SD 1 )) and the encrypted data (Enc (pk, SS′D 2 )) sent as a response from the verification requesting device 120. The cipher data obtained by homomorphically adding the obtained value (Enc (pk, SD 2 )) is the Hamming distance D (= D 1 + D 2) between the binary first vector X and the binary second vector Y. ) Encryption data (Enc (pk, SD)).
D=D1+D2               
D1=Σ<i=1,n>xi        
D2=Σ<i=1,n> (1 - 2xi)yi +Σ<i=1,n>xi 
                    …(70)
D = D 1 + D 2
D 1 = Σ <i = 1, n> x i
D 2 = Σ <i = 1, n> (1-2x i ) y i + Σ <i = 1, n> x i
… (70)
 また、照合装置140は、第2のテンプレートの第2の乱数(Rδ)(δ=0,…,t)のハッシュ値:
H(R0),H(R1),…,H(Rt
に対して、ハッシュ関数H()の準同型性を用いてスカラー演算することで、第2の乱数(Rδ)に第4の乱数(bδ)(δ=0,…,t)を演算した値の複数(例えばt+1個)のハッシュ値:
H(bδRδ)  (δ=0,…,t)        …(71)
を生成する。
In addition, the collation device 140 uses the second random number (R δ ) (δ = 0,..., T) hash value of the second template:
H (R 0 ), H (R 1 ),…, H (R t )
For the second random number (R δ ), the fourth random number (b δ ) (δ = 0,..., T) is calculated by performing a scalar operation using the homomorphism of the hash function H (). A plurality (for example, t + 1) hash values of the obtained values:
H (b δ R δ ) (δ = 0,…, t) (71)
Is generated.
 ここで、ハッシュ関数H()の入力(キー)bδRδは、暗号データ(Enc(pk, bδ(S(D-δ)+Rδ), δ=0,…,t)における距離Dに関する演算式(関数)f:
 f(D)=bδ(S(D-δ)+Rδ)     …(72)
において、D=δとしたときの値f(δ)である。
Here, the input (key) b δ R δ of the hash function H () is the distance D in the encrypted data (Enc (pk, b δ (S (D−δ) + R δ ), δ = 0,..., T)). Equation (function) f:
f (D) = b δ (S (D-δ) + R δ ) (72)
, F (δ) when D = δ.
 上式(69)の暗号データと式(71)のハッシュ値をクエリとして、検証装置150に送信する。 The encrypted data of the above formula (69) and the hash value of the formula (71) are transmitted as a query to the verification device 150.
 検証装置150は、前記照合装置から受信した前記クエリの暗号データ:
Enc(pk, bδ(S(D-δ)+Rδ)), (δ=0,…,t)
を秘密鍵(sk)で復号し、復号値(bδ(S(D-δ)+Rδ))のハッシュ値:
H(bδ(S(D-δ)+Rδ)     …(73)
を計算する。検証装置150は、ハッシュ値(H(bδ(S(D-δ)+Rδ)))とクエリのハッシュ値(H(bδRδ))とが等しいという条件が成り立つ組があるか否かチェックする。
The verification device 150 receives the encrypted data of the query received from the verification device:
Enc (pk, b δ (S (D-δ) + R δ )), (δ = 0,…, t)
Is decrypted with the secret key (sk) and the hash value of the decrypted value (b δ (S (D−δ) + R δ )):
H (b δ (S (D-δ) + R δ ) (73)
Calculate The verification device 150 determines whether or not there is a set that satisfies the condition that the hash value (H (b δ (S (D−δ) + R δ ))) is equal to the hash value (H (b δ R δ )) of the query. To check.
 検証装置150は、前記クエリのうち、前記条件が成り立つ組が存在する場合に、受理とし、前記条件が成り立つ組が存在しない場合に、不受理と判定する。 The verification device 150 accepts the query when there is a set that satisfies the condition, and determines that the query is not accepted when there is no set that satisfies the condition.
 図6は、図5を参照して説明した実施形態の動作シーケンスを説明する図である。この実施形態では、n次元の二値ベクトル
X=[x1,..,xn]∈{0,1}n             …(74)
Y=[y1,..,yn]∈{0,1}n              …(75)
のハミング距離dH(X,Y)を例えば以下のように分割する。
FIG. 6 is a diagram illustrating an operation sequence of the embodiment described with reference to FIG. In this embodiment, an n-dimensional binary vector
X = [x 1 , .., x n ] ∈ {0,1} n … (74)
Y = [y 1 , .., y n ] ∈ {0,1} n … (75)
For example, the Hamming distance d H (X, Y) is divided as follows.
 D=dH(X,Y)=Σ<i=1,n>xi - 2Σ<i=1,n>xiyi + Σ<i=1,n>yi
    =Σ<i=1,n>xi + Σ<i=1,n>(1-2xi)yi           …(76)
D = d H (X, Y) = Σ <i = 1, n> x i -2Σ <i = 1, n> x i y i + Σ <i = 1, n> y i
= Σ <i = 1, n> x i + Σ <i = 1, n> (1-2x i ) y i … (76)
 D1=Σ<i=1,n>xi       …(77)
 D2=Σ<i=1,n>(1-2xi)yi     …(78)
 D1は照合用ベクトルYの値に依らない。
D 1 = Σ <i = 1, n> x i (77)
D 2 = Σ <i = 1, n> (1-2x i ) y i (78)
D 1 does not depend on the value of the matching vector Y.
 距離の秘匿のために、好ましくは、準同型性を持つハッシュ関数が用いられる。加法準同型性を有する暗号方式(アルゴリズム)として、楕円Elgamal暗号を用いる場合、公開鍵(=(G,P)(Gは有限体K上の楕円曲線E(K)の基点、P=x(*)G, xは秘密鍵))に対して、ハッシュ関数H()を、例えば
H(z)=z(*)P      …(79)
とすればよい。
A hash function having homomorphism is preferably used for concealing the distance. When using elliptic Elgamal cryptography as an encryption method (algorithm) having additive homomorphism, the public key (= (G, P) (G is the base point of the elliptic curve E (K) on the finite field K, P = x ( *) G, x is a secret key))
H (z) = z (*) P (79)
And it is sufficient.
 まず、各フェーズにおける処理の概要について説明する。本発明の例示的な第1の実施形態に係る照合システム100では、加法、スカラー演算について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、暗号方式は上記したModified Elgamal暗号を用いる。あるいは楕円Elgamal暗号、あるいは、Paillier暗号を用いてもよい。 First, an overview of processing in each phase will be described. The collation system 100 according to the first exemplary embodiment of the present invention uses a homomorphic encryption method having homomorphism for addition and scalar calculation. For convenience of explanation, the above-mentioned Modified Elgamal encryption is used as the encryption method. Alternatively, elliptic Elgamal encryption or Paillier encryption may be used.
 楕円Elgamal暗号は、有限体上の楕円曲線上の群に対して定義される。 The elliptic Elgamal cipher is defined for a group on an elliptic curve over a finite field.
<鍵生成>:楕円曲線のパラメータa,b,p,q及び楕円曲線上の基点(base point)Gを入力として受け取り、公開鍵pk=(G, H=x(*)G)、及び秘密鍵sk=xを出力する。ただし、メッセージ空間は体Fq={0,1,…,q-1}である。一般的に、qは128ビット以上の素数が選択される。 <Key generation>: Receives elliptic curve parameters a, b, p, q and base point G on the elliptic curve as input, public key pk = (G, H = x (*) G), and secret Output key sk = x. However, the message space is a field Fq = {0, 1,..., Q−1}. In general, a prime number of 128 bits or more is selected for q.
<暗号化>:公開鍵pk及びメッセージm∈Fqを入力として受け取り、乱数r∈Fを選択し、暗号文C=(C[0],C[1])               …(80)
を出力する。ただし、
C[0] = r(*)G,                    …(81)
C[1] = (m (*) G) (+) (r (*) H)            …(82)
すなわち、
C[1] = (m + rx) (*) G                …(83)
を満たす。
<Encryption>: Public key pk and message m∈Fq are received as input, random number r∈F q is selected, and ciphertext C = (C [0], C [1]) (80)
Is output. However,
C [0] = r (*) G,… (81)
C [1] = (m (*) G) (+) (r (*) H)… (82)
That is,
C [1] = (m + rx) (*) G… (83)
Meet.
<復号>:秘密鍵sk及び暗号文
C = (C[0], C[1])     …(84)
を入力として受け取り、
M = C[1] (-) (sk (*) C[0])      …(85)
を出力する。すなわち、
C[1] (-) (sk (*) C[0]) = (m + rx) (*) G (-) x (*) (r (*) G) = m (*)G   …(86)
を満たす。復号アルゴリズムは、メッセージmではなく、m(*)Gを返すもので構わない。
<Decryption>: Secret key sk and ciphertext
C = (C [0], C [1])… (84)
As input,
M = C [1] (-) (sk (*) C [0])… (85)
Is output. That is,
C [1] (-) (sk (*) C [0]) = (m + rx) (*) G (-) x (*) (r (*) G) = m (*) G… (86 )
Meet. The decryption algorithm may return m (*) G instead of the message m.
 上記の各アルゴリズムでは、次の記法を用いている。 In the above algorithms, the following notation is used.
 楕円曲線上の点AとBの加算:A (+) B
 楕円曲線上の点AとBの減算:A (-) B
 楕円曲線上の点Aのz倍:z (*) A
                    …(87)
Adding points A and B on an elliptic curve: A (+) B
Subtraction of points A and B on an elliptic curve: A (-) B
Z times point A on the elliptic curve: z (*) A
… (87)
 図6を参照すると、例えば、準備フェーズにおける公開鍵pk、秘密鍵skの生成(S100)は、前述した通りである。公開鍵pkは記憶装置130にも配送される。 Referring to FIG. 6, for example, the generation of the public key pk and the secret key sk (S100) in the preparation phase is as described above. The public key pk is also delivered to the storage device 130.
 登録要求装置110は、二値ベクトルX=[x1,..,xn]∈{0,1}nを登録するにあたり、第1の乱数(S)を生成し、さらに、例えばt+1個の第2の乱数(R0, R1,…, Rt)を生成し、第2の乱数(R0, R1,…, Rt)のハッシュ値(H(R0),H(R1),…,H(Rt))を生成する。前述したように、ハッシュ関数は距離の秘匿のため,準同型性を持つハッシュ関数が用いられる。二値の第1のベクトル(X=[x1,…,xn])の要素の第1の演算結果(1-2xi)と、第2の演算結果Σ<i=1,n>xi=D1を計算し、前記第1の乱数(S)を、前記第1の演算結果(1-2xi)に乗算した演算結果を公開鍵(pk)で暗号化した暗号データ(第1のテンプレート)(Enc(pk, S(1-2x1)), Enc(pk, S(1-2x2)),…,Enc(pk, S(1-2xn)))と、D1-δ(δ=0,…,t)にそれぞれ第1の乱数(S)を演算した値と、第2の乱数(Rδ)を加算した値を、公開鍵(pk)で暗号化した暗号データと第2の乱数のハッシュ値H(Rδ)の組(第2のテンプレート):
{Enc(pk, S(D1-0)+R0), H(R0)}, 
{Enc(pk, S(D1-1)+R2), H(R1)}, …, 
{Enc(pk, S(D1-t)+Rt), H(Rt)}
を生成する。登録要求装置110は、
第1のテンプレート:Enc(pk, S(1-2xi)) (i=1,…,n)       …(88)
と、
第2のテンプレート:{Enc(pk, S(D1-δ)+Rδ)、H(Rδ)} (δ=0,…,t)   …(89)
をあわせて、記憶装置130に送信する(S121)。
The registration requesting device 110 generates a first random number (S) when registering the binary vector X = [x 1 , .., x n ] ∈ {0,1} n , and further, for example, t + 1 second random number (R 0, R 1, ... , R t) of the individual to generate a second random number (R 0, R 1, ... , R t) hash value (H (R 0), H ( R 1 ),..., H (R t )) are generated. As described above, a hash function having homomorphism is used for hiding the distance. The first calculation result (1-2x i ) of the elements of the binary first vector (X = [x 1 ,..., X n ]) and the second calculation result Σ <i = 1, n> x i = D 1 is calculated, and the first random number (S) is multiplied by the first calculation result (1-2x i ), and the encrypted data (first) is encrypted with the public key (pk). Template) (Enc (pk, S (1-2x 1 )), Enc (pk, S (1-2x 2 )), ..., Enc (pk, S (1-2x n ))) and D 1- Encrypted data obtained by encrypting the value obtained by calculating the first random number (S) and the value obtained by adding the second random number (R δ ) to δ (δ = 0,..., t) with the public key (pk). And the second random number hash value H (R δ ) (second template):
{Enc (pk, S (D 1 -0) + R 0 ), H (R 0 )},
{Enc (pk, S (D 1 -1) + R 2 ), H (R 1 )},…,
{Enc (pk, S (D 1 -t) + R t ), H (R t )}
Is generated. The registration request device 110
First template: Enc (pk, S (1-2x i )) (i = 1,…, n)… (88)
When,
Second template: {Enc (pk, S (D 1 -δ) + R δ ), H (R δ )} (δ = 0, ..., t) (89)
Are transmitted to the storage device 130 (S121).
 記憶装置130は、登録要求装置110から送信された第1のテンプレート:
Enc(pk, S(1-2x1)),
Enc(pk, S(1-2x2)),…,
Enc(pk, S(1-2xn)))と、
第2のテンプレート:
{Enc(pk, S(D1-0)+R0), H(R0)}, 
{Enc(pk, S(D1-1)+R2), H(R1)}, …, 
{Enc(pk, S(D1-t)+Rt), H(Rt)}
を合わせたテンプレートを、登録識別子Idに対応させて記憶する(S122)。
The storage device 130 receives the first template transmitted from the registration requesting device 110:
Enc (pk, S (1-2x 1 )),
Enc (pk, S (1-2x 2 )),…,
Enc (pk, S (1-2x n ))) and
Second template:
{Enc (pk, S (D 1 -0) + R 0 ), H (R 0 )},
{Enc (pk, S (D 1 -1) + R 2 ), H (R 1 )},…,
{Enc (pk, S (D 1 -t) + R t ), H (R t )}
Are stored in correspondence with the registration identifier Id (S122).
 照合装置140は、照合要求装置120から照合要求(照合識別子Idを含む)を受けると(S123)、記憶装置130から該Idに関連して記憶された暗号データ:
Enc(pk, S(1-2x1)), 
Enc(pk, S(1-2x2)),…,
Enc(pk, S(1-2xn)))
と、
{Enc(pk, S(D1-0)+R0), H(R0)}, 
{Enc(pk, S(D1-1)+R2), H(R1)}, …, 
{Enc(pk, S(D1-t)+Rt), H(Rt)}
を受け取る(S124)。
When the verification device 140 receives the verification request (including the verification identifier Id) from the verification request device 120 (S123), the encrypted data stored in association with the Id from the storage device 130:
Enc (pk, S (1-2x 1 )),
Enc (pk, S (1-2x 2 )),…,
Enc (pk, S (1-2x n )))
When,
{Enc (pk, S (D 1 -0) + R 0 ), H (R 0 )},
{Enc (pk, S (D 1 -1) + R 2 ), H (R 1 )},…,
{Enc (pk, S (D 1 -t) + R t ), H (R t )}
Is received (S124).
 さらに、照合装置140は、第3の乱数S’を生成する(S125)。そして、照合装置140は、第3の乱数S’のスカラー演算Scl(S’, Enc(pk, S(1-2xi))) (i=1,…,n)により、
Enc(pk, SS'(1-2xi)) (i=1,…,n)      …(90)
を求め、照合要求装置120に送信する(S126)。照合装置140は、乱数S’の暗号データは照合要求装置120に送信しない。
Furthermore, the collation device 140 generates a third random number S ′ (S125). Then, the collation device 140 performs the scalar operation Scl (S ′, Enc (pk, S (1-2x i ))) (i = 1,..., N) of the third random number S ′.
Enc (pk, SS '(1-2x i )) (i = 1,…, n)… (90)
Is transmitted to the verification requesting device 120 (S126). The verification device 140 does not transmit the encrypted data of the random number S ′ to the verification request device 120.
 照合要求装置120は、Y=[y1,..,yn]∈{0,1}nと、照合装置140から受け取った
Enc(pk, SS'(1-2xi)) (i=1,…,n)  
から、スカラー演算Scl(yi, Enc(pk, SS'(1-2xi)))より、
Enc(pk, SS'(1-2xi)yi) (i=1,…,n)       …(91)
を求める。照合要求装置120は、これらn個(i=1からn)を加算することで、
Σ<i=1,n>Enc(pk, SS' (1 - 2xi)yi)=Enc(pk, SS' (Σ<i=1,n> (1 - 2xi)yi))=Enc(pk, SS' D2)      …(92)
を計算する。照合要求装置120は、Enc(pk, SS' D2)を照合装置140に送信する(S127)。
The verification requesting device 120 receives Y = [y 1 , .., y n ] ∈ {0,1} n from the verification device 140.
Enc (pk, SS '(1-2x i )) (i = 1,…, n)
From the scalar operation Scl (y i , Enc (pk, SS '(1-2x i ))),
Enc (pk, SS '(1-2x i ) y i ) (i = 1,…, n)… (91)
Ask for. The verification requesting device 120 adds these n (i = 1 to n),
Σ <i = 1, n> Enc (pk, SS '(1-2x i ) y i ) = Enc (pk, SS' (Σ <i = 1, n> (1-2x i ) y i )) = Enc (pk, SS 'D 2 )… (92)
Calculate The verification requesting device 120 transmits Enc (pk, SS ′ D 2 ) to the verification device 140 (S127).
 照合装置140は、照合要求装置120にEnc(pk,SS’)を送信しない。よって、照合要求装置120は、Enc(pk, SS' D1)を算出することはできない。このため、クライアントはハミング距離を偽装できない。 The collation device 140 does not transmit Enc (pk, SS ′) to the collation request device 120. Therefore, the verification requesting device 120 cannot calculate Enc (pk, SS ′ D 1 ). For this reason, the client cannot impersonate the Hamming distance.
 照合装置140は、照合要求装置120から送信されたEnc(pk, SS' D2)に対して、乱数S’の逆数S’^(-1)をスカラー演算
Scl(S’^(-1), Enc(pk, SS' D2))        …(93)
することで、
Enc(pk, S D2)       …(94)
を算出する。
The collation device 140 performs a scalar operation on the reciprocal number S ′ ^ (− 1) of the random number S ′ with respect to Enc (pk, SS ′ D 2 ) transmitted from the collation request device 120.
Scl (S '^ (-1), Enc (pk, SS' D 2 ))… (93)
by doing,
Enc (pk, S D 2 )… (94)
Is calculated.
 照合装置140は、このEnc(pk, S D2)と、記憶装置130に登録されたテンプレート
Enc(pk, S(D1-δ)+Rδ) (δ=0,…,t)     …(95)
とを準同型加算することで、第1、第2のベクトルのハミング距離Dに対する非負整数値δ(δ=0,…,t)との差分D-δに第1の乱数Sを乗算した値S(D-δ)に、第2の乱数Rδを加算した値S(D-δ)+Rδの暗号データ(t+1個):
Enc(pk, S(D-δ)+Rδ) (δ=0,…,t)     …(96)
を求める(ただし、D=D1+D2)。
The verification device 140 uses this Enc (pk, S D 2 ) and the template registered in the storage device 130.
Enc (pk, S (D 1 -δ) + R δ ) (δ = 0,…, t)… (95)
Is obtained by multiplying the difference D-δ from the non-negative integer value δ (δ = 0,..., T) with respect to the Hamming distance D of the first and second vectors by the first random number S. S to (D-δ), the second random number value obtained by adding the R δ S (D-δ) + R δ encrypted data (t + 1 pieces):
Enc (pk, S (D-δ) + R δ ) (δ = 0,…, t)… (96)
(Where D = D 1 + D 2 ).
 さらに、照合装置140は、乱数bδ (δ=0, …,t)を生成し、式(96)の
Enc(pk, S(D-δ)+Rδ) (δ=0,…,t)
に対して、乱数bδ (δ=0, …,t)をスカラー演算することで、複数(例えばt+1個)の暗号データ
Enc(pk, bδ(S(D-δ)+Rδ)) (δ=0,…,t)      …(97)
を求める。
Furthermore, the collation device 140 generates a random number b δ (δ = 0,..., T), and the expression (96)
Enc (pk, S (D-δ) + R δ ) (δ = 0,…, t)
In contrast, a plurality of (eg, t + 1) pieces of encrypted data are obtained by performing a scalar operation on the random number b δ (δ = 0,..., T).
Enc (pk, b δ (S (D-δ) + R δ )) (δ = 0,…, t)… (97)
Ask for.
 照合装置140は、さらに、乱数bδと、Rδ(δ=0,…,t)のハッシュ値H(Rδ)から、ハッシュ関数H()の準同型性を用いてスカラー演算により、
H(bδRδ)(δ=0,…,t)     …(98)
を計算する。
The collation device 140 further performs a scalar operation from the random number b δ and the hash value H (R δ ) of R δ (δ = 0,..., T) using the homomorphism of the hash function H ().
H (b δ R δ ) (δ = 0, ..., t) (98)
Calculate
 照合装置140は、式(97)の暗号データEnc(pk, bδ(S(D-δ)+Rδ))と、式(98)のハッシュ値H(bδRδ)(δ=0,…,t)の組をクエリとして、検証装置150に送信する(S128)。なお、照合装置140は、式(97)の暗号データEnc(pk, bδ(S(D-δ)+Rδ))と、式(98)のハッシュ値H(bδRδ)の(t+1)組は、検証装置150への送信の順番を、例えばδ(=0,…,t)に関してランダムな置換を施して送信するようにしてもよい。 The collation device 140 uses the encrypted data Enc (pk, b δ (S (D−δ) + R δ )) in equation (97) and the hash value H (b δ R δ ) (δ = 0) in equation (98). ,..., T) are transmitted as queries to the verification device 150 (S128). Note that the collation device 140 uses the encrypted data Enc (pk, b δ (S (D−δ) + R δ )) in Expression (97) and the hash value H (b δ R δ ) in Expression (98) ( The t + 1) group may be transmitted by performing random substitution on the order of transmission to the verification device 150 with respect to δ (= 0,..., t), for example.
 検証装置150は、照合装置140からクエリとして送信された暗号データ
Enc(pk, bδ(S(D-δ)+Rδ)) (δ=0,…,t) を、秘密鍵skを用いて復号して、
δ=Dec(sk, Enc(pk, bδ(S(D-δ)+Rδ))) =bδ(S(D-δ)+Rδ) (δ=0,…,t)    …(99)
を求める(S129)。
The verification device 150 uses the encrypted data transmitted as a query from the verification device 140.
Enc (pk, b δ (S (D-δ) + R δ )) (δ = 0, ..., t) is decrypted using the secret key sk,
z δ = Dec (sk, Enc (pk, b δ (S (D-δ) + R δ ))) = b δ (S (D-δ) + R δ ) (δ = 0,…, t)… (99)
Is obtained (S129).
 検証装置150は、さらに、復号値のハッシュ値
H(bδ(S(D-δ)+Rδ)) (δ=0,…,t)     …(100)
を求める。なお、ハッシュ関数H()は、サーバ102の記憶装置130及び照合装置140で用いたハッシュ関数H()と同一とされる。
The verification device 150 further includes a hash value of the decrypted value.
H (b δ (S (D-δ) + R δ )) (δ = 0,…, t)… (100)
Ask for. The hash function H () is the same as the hash function H () used in the storage device 130 and the collation device 140 of the server 102.
 検証装置150は、復号値のハッシュ値H(bδ(S(D-δ)+Rδ)) (δ=0,…,t)と、クエリとして送信されたハッシュ値H(bδRδ)(δ=0,…,t)の各組について、
 H(b0(S(D-0)+R0))=H(b0R0),
 H(b1(S(D-1)+R1))=H(b1R1),…,
 H(bt(S(D-t)+Rt))=H(btRt)
          …(101)
を満たす組があるか否かチェックする(S130)。
The verification device 150, the hash value H of the decoded value (b δ (S (D- δ) + R δ)) (δ = 0, ..., t) and, transmitted as a query hash value H (b [delta] R [delta] ) (Δ = 0, ..., t)
H (b 0 (S (D-0) + R 0 )) = H (b 0 R 0 ),
H (b 1 (S (D-1) + R 1 )) = H (b 1 R 1 ), ...,
H (b t (S (Dt) + R t )) = H (b t R t )
… (101)
It is checked whether there is a set satisfying (S130).
 検証装置150は、上記等式を満たすものが1つあれば、受理し、上記等式を満たすものが一つもなければ、不受理とする。検証装置150での検証結果(受理、不受理)は照合装置140、照合要求装置120に送信される(S131)。 The verification device 150 accepts if there is one that satisfies the above equation, and rejects if there is no one that satisfies the above equation. The verification result (acceptance, rejection) in the verification device 150 is transmitted to the verification device 140 and the verification request device 120 (S131).
<第1の実施形態の装置構成>
 図7は、例示的な第1の実施形態の各装置の構成の一例を説明する図である。照合システム100は、コンピュータシステム等による情報処理システムから構成される。例示的な第1の実施形態に係る照合システム100は、登録要求装置110と、記憶装置130と、照合要求装置120と、照合装置140と、検証装置150とを有する。
<Apparatus configuration of the first embodiment>
FIG. 7 is a diagram illustrating an example of the configuration of each device according to the first exemplary embodiment. The collation system 100 includes an information processing system such as a computer system. The collation system 100 according to the first exemplary embodiment includes a registration request device 110, a storage device 130, a collation request device 120, a collation device 140, and a verification device 150.
 登録要求装置110は、登録情報抽出部111と、テンプレート生成部112、通信部113とを有する。 The registration request device 110 includes a registration information extraction unit 111, a template generation unit 112, and a communication unit 113.
 記憶装置130は、情報を記憶するストレージデバイスを備えるほか、情報を処理する演算部を備えている。すなわち、記憶装置130は識別子管理部131と、登録データ生成部132と、登録データ記憶部133と、登録データ検索部134と、通信部135を有する。 The storage device 130 includes a storage device that stores information, and also includes a calculation unit that processes information. That is, the storage device 130 includes an identifier management unit 131, a registration data generation unit 132, a registration data storage unit 133, a registration data search unit 134, and a communication unit 135.
 照合要求装置120は、照合要求生成部121と、照合情報抽出部122と、レスポンス生成部123と、通信部124を有する。 The verification request device 120 includes a verification request generation unit 121, a verification information extraction unit 122, a response generation unit 123, and a communication unit 124.
 照合装置140は、登録データ取得部141と、乱数生成部142と、暗号データ生成部143と、暗号化距離計算部144と、クエリ生成部145と、通信部146を有する。 The collation device 140 includes a registration data acquisition unit 141, a random number generation unit 142, an encrypted data generation unit 143, an encrypted distance calculation unit 144, a query generation unit 145, and a communication unit 146.
 検証装置150は、鍵生成部151と、復号鍵記憶部152と、クエリ検証部153と、検証結果出力部154と、通信部155を有する。クエリ検証部153は、復号部1531、ハッシュ値生成部1532、一致判定部1533を備えている。 The verification device 150 includes a key generation unit 151, a decryption key storage unit 152, a query verification unit 153, a verification result output unit 154, and a communication unit 155. The query verification unit 153 includes a decryption unit 1531, a hash value generation unit 1532, and a match determination unit 1533.
 例えば、登録要求装置110と記憶装置130間、記憶装置130と照合装置140間、照合要求装置120と照合装置140間、照合装置140と検証装置150間は、各装置の通信部(不図示の送信機(インタフェース)と受信機(インタフェース)を備える)と、通信網(例えば、構内ネットワーク(Local Area Network : LAN)、あるいは、広域ネットワーク(Wide Area Network :WAN)等)を介して通信接続する構成としてもよい。あるいは、登録要求装置110、記憶装置130、照合装置140、照合要求装置120、検証装置150のうち、複数の装置を一つのユニットに実装し、各装置をユニット内のバス(装置間バスや装置内バス)で結合する構成としてもよい。また、登録要求装置110、記憶装置130、照合装置140、照合要求装置120は、検証装置150が公開した公開鍵(例えば検証装置150が作成した準同型暗号方式の暗号化鍵と復号鍵のペアのうちの前記暗号化鍵)を取得可能に構成されている。 For example, between the registration request device 110 and the storage device 130, between the storage device 130 and the verification device 140, between the verification request device 120 and the verification device 140, and between the verification device 140 and the verification device 150, a communication unit (not shown) Communication connection between transmitter (interface) and receiver (interface)) and communication network (for example, local network (Local Area Network: LAN) or wide area network (Wide Area Network: WAN)) It is good also as a structure. Alternatively, among the registration request device 110, the storage device 130, the verification device 140, the verification request device 120, and the verification device 150, a plurality of devices are mounted in one unit, and each device is connected to a bus (inter-device bus or device). It is good also as a structure couple | bonded by an internal bus. In addition, the registration request device 110, the storage device 130, the verification device 140, and the verification request device 120 include a public key published by the verification device 150 (for example, a pair of an encryption key and a decryption key of the homomorphic encryption method created by the verification device 150). Among the above-mentioned encryption keys).
 なお、照合システム100においては、登録要求装置110と、照合要求装置120とをまとめて、「第1ノード」と表してもよい。照合システム100においては、記憶装置130と、照合装置140とをまとめて、「第2ノード」と表してもよい。また、照合システム100においては、検証装置150を、「第3ノード」と表してもよい。例えば登録要求装置110と照合要求装置120はクライアント装置、記憶装置130と照合装置140はサーバ装置、検証装置150はサーバ装置に通信接続する復号装置として構成してもよい。 In the verification system 100, the registration request device 110 and the verification request device 120 may be collectively represented as “first node”. In the verification system 100, the storage device 130 and the verification device 140 may be collectively referred to as “second node”. In the verification system 100, the verification device 150 may be represented as “third node”. For example, the registration request device 110 and the verification request device 120 may be configured as a client device, the storage device 130 and the verification device 140 as a server device, and the verification device 150 as a decryption device connected to the server device.
 本実施形態に係る照合システム100の動作について説明する。本発明の例示的な第1の実施形態に係る照合システム100における処理について説明する。 The operation of the verification system 100 according to the present embodiment will be described. Processing in the collation system 100 according to the first exemplary embodiment of the present invention will be described.
 特に制限されるものではないが、照合システム100における処理は、例えば、
・準備フェーズ、
・登録フェーズ、及び、
・照合フェーズを含んでもよい。
Although not particularly limited, the processing in the matching system 100 is, for example,
・ Preparation phase,
・ Registration phase, and
-It may include a verification phase.
 図8は、準備フェーズにおいて、例示的な第1の実施形態に係る照合システム100が実行する処理の一例を示すフローチャートである。図8を参照して、本実施形態に係る照合システム100が、準備フェーズにて実行する処理について説明する。 FIG. 8 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the preparation phase. With reference to FIG. 8, the process which the collation system 100 which concerns on this embodiment performs in a preparation phase is demonstrated.
 検証装置150における鍵生成部151は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、例えば、鍵生成アルゴリズムに従い、暗号鍵(公開鍵)pk、及び、復号鍵(秘密鍵)skを生成する(ステップA1)。なお、生成される公開鍵、及び、復号鍵は、加法及びスカラー乗算に関して準同型性を有する公開鍵暗号方式(例えばModified Elgamal暗号)に準拠する。 The key generation unit 151 in the verification device 150 receives the security parameter, and generates an encryption key (public key) pk and a decryption key (secret key) sk using the received security parameter, for example, according to a key generation algorithm. (Step A1). The generated public key and decryption key conform to a public key cryptosystem (for example, ModifiedModElgamal cipher) having homomorphism with respect to addition and scalar multiplication.
 鍵生成部151は、生成した公開鍵pkを、照合システム100において公開する(ステップA2)。 The key generation unit 151 discloses the generated public key pk in the verification system 100 (step A2).
 鍵生成部151は、生成した復号鍵skを、復号鍵記憶部152に格納する(ステップA3)。 The key generation unit 151 stores the generated decryption key sk in the decryption key storage unit 152 (step A3).
 なお、本実施形態に係る照合システム100において、準備フェーズにて実行する処理は、図8に例示した様態に制限されるものでないことは勿論である。 Of course, in the verification system 100 according to the present embodiment, the processing executed in the preparation phase is not limited to the mode illustrated in FIG.
 図9は、登録フェーズにおいて、例示的な第1の実施形態に係る照合システム100が実行する処理の一例を示すフローチャートである。図9を参照して、第1の実施形態に係る照合システム100が登録フェーズにて実行する処理について説明する。 FIG. 9 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the registration phase. With reference to FIG. 9, the process which the collation system 100 which concerns on 1st Embodiment performs in a registration phase is demonstrated.
 登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」とも称呼される)
 X=[x[1],…,x[n]]
を抽出する(ステップB1)。なお、前記第1の実施形態と同様、単に演算式の明確化のため、xi (i=1,…,n)の添え字iを角括弧内とした表記x[i](i=1,…,n)で表す。
The registration information extraction unit 111 in the registration request device 110 receives biometric information (also referred to as “registration vector”) from a biometric subject to registration.
X = [x [1],…, x [n]]
Is extracted (step B1). Incidentally, as in the first embodiment, merely for clarity arithmetic expressions, x i (i = 1, ..., n) notation was subscript i in the square brackets x [i] (i = 1 , ..., n).
 次に、登録要求装置110におけるテンプレート生成部112は、乱数S∈Fqを生成する(B2-1)。 Next, the template generation unit 112 in the registration request apparatus 110 generates a random number SεFq (B2-1).
 テンプレート生成部112は、二値の登録ベクトル(X=[x1,…,xn])の要素の第1の演算結果(1-2x[i])と、第2の演算結果Σ<i=1,n>x[i]=D1を計算し、前記第1の乱数(S)を、前記第1の演算結果(1-2x[i])に乗算した演算結果を公開鍵(pk)で暗号化した暗号データ(第1のテンプレート):

Enc(pk, S(1-2x[1])), Enc(pk, S(1-2x[2])),…, Enc(pk, S(1-2x[n])))を生成する(B2-2)。
The template generation unit 112 outputs the first calculation result (1-2x [i]) of the elements of the binary registration vector (X = [x 1 ,..., X n ]) and the second calculation result Σ <i = 1, n> x [i] = D1, and the first random number (S) is multiplied by the first calculation result (1-2x [i]) to obtain the public key (pk) Encrypted data encrypted with (first template):

Enc (pk, S (1-2x [1])), Enc (pk, S (1-2x [2])), ..., Enc (pk, S (1-2x [n]))) (B2-2).
 また、テンプレート生成部112は、複数の第2の乱数(R[0], R[1],…, R[t])を生成する(B3-1)。なお、ステップB3-1の処理はステップB2-1で行うようにしてもよい。 Further, the template generation unit 112 generates a plurality of second random numbers (R [0], R [1],..., R [t]) (B3-1). Note that the processing in step B3-1 may be performed in step B2-1.
 テンプレート生成部112は、複数(例えばt+1個)の第2の乱数(R[0], R[1],…, R[t])のハッシュ演算値:
H(R[0]), H(R[1]),…, H(R[t])を生成する(B3-2)。
The template generation unit 112 performs hash operation values of a plurality of (for example, t + 1) second random numbers (R [0], R [1],..., R [t]):
H (R [0]), H (R [1]),..., H (R [t]) are generated (B3-2).
 テンプレート生成部112は、D1(=Σ<i=1,n>x[i])-δ(δ=0,…,t)にそれぞれ第1の乱数(S)を乗算した値と、第2の乱数(R[δ])を加算した値を公開鍵(pk)で暗号化した暗号データと、第2の乱数のハッシュ値H(R[δ])の組(第2のテンプレート):
{Enc(pk, S(D1-0)+R[0]), H(R[0])}, 
{Enc(pk, S(D1-1)+R[1]), H(R[1])}, …, 
{Enc(pk, S(D1-t)+R[t]), H(R[t])}を生成する(B3-3)。
The template generation unit 112 multiplies D1 (= Σ <i = 1, n> x [i]) − δ (δ = 0,..., T) by the first random number (S), A set of encryption data obtained by encrypting a value obtained by adding the random number (R [δ]) of the public key (pk) and the hash value H (R [δ]) of the second random number (second template):
{Enc (pk, S (D 1 -0) + R [0]), H (R [0])},
{Enc (pk, S (D 1 -1) + R [1]), H (R [1])},…,
{Enc (pk, S (D 1 -t) + R [t]), H (R [t])} is generated (B3-3).
 テンプレート生成部112は、第1のテンプレート(Enc(pk, S(1-2x[i]))  (i=1,…,n))と第2のテンプレート({Enc(pk, S(D1-δ)+R[δ]),H(R[δ])}(δ=0,…,t))をあわせたテンプレートを生成し(B4)、通信部113を介して、記憶装置130に送信する(B5)。 The template generation unit 112 includes a first template (Enc (pk, S (1-2x [i])) (i = 1,..., N)) and a second template ({Enc (pk, S (D 1 -δ) + R [δ]), H (R [δ])} (δ = 0,..., t)) are generated (B4) and stored in the storage device 130 via the communication unit 113. Transmit (B5).
 記憶装置130は、登録要求装置110から送信された第1のテンプレートと第2のテンプレートを受け(B6)、識別子管理部131で登録識別子Idを生成し(B7)、登録識別子Idを登録要求装置110に送信する。登録データ生成部132は、{第1のテンプレート、第2のテンプレート、登録識別子Id}を登録データ記憶部133に記憶する。 The storage device 130 receives the first template and the second template transmitted from the registration request device 110 (B6), generates a registration identifier Id in the identifier management unit 131 (B7), and uses the registration identifier Id as the registration request device. 110. The registration data generation unit 132 stores {first template, second template, registration identifier Id} in the registration data storage unit 133.
Enc(pk,S(1-2x[1]])(=C1[1]と表す)   …(102-1)
    …,
Enc(pk,S(1-2x[n]])(=C1[n]と表す)   …(102-n)
Enc(pk, S(D1-0)+R[δ])(=C2[1]と表す)   …(103-1)
    …,
Enc(pk, S(D1-t)+R[t])(=C2[t]と表す)   …(103-t)
Enc (pk, S (1-2x [1]]) (represented as = C1 [1])… (102-1)
…,
Enc (pk, S (1-2x [n]]) (represented as = C1 [n])… (102-n)
Enc (pk, S (D 1 -0) + R [δ]) (= C2 [1])… (103-1)
…,
Enc (pk, S (D 1 -t) + R [t]) (represented as = C2 [t])… (103-t)
 Modified-Elgamal暗号では、テンプレート生成部112はZの中から複数の数rr1[1],…,r1[n]、及び、rr1を選ぶ。 In Modified-Elgamal cryptography, template generator 112 a plurality of number rr1 [1] from the Z q, ..., r1 [n ], and to select the rr1.
 テンプレート生成部112は公開鍵pkから、生成元gと、値hとを読み取り、二値ベクトルXに関して以下の暗号文を作成する。 The template generation unit 112 reads the generation source g and the value h from the public key pk, and creates the following ciphertext regarding the binary vector X.
(g^{r1[1]}, g^{S(1-2x[1])}×h^{r1[1]})=(C1[1][0], C1[1][1]) (=C1[1])     …(104-1)
   …,
(g^{r1[n]}, g^{S(1-2x[n])}×h^{r1[n]}) =(C1[n][0], C1[n][1])(=C1[n])     …(104-n)
(g ^ {r1 [1]}, g ^ {S (1-2x [1])} × h ^ {r1 [1]}) = (C1 [1] [0], C1 [1] [1] ) (= C1 [1])… (104-1)
…,
(g ^ {r1 [n]}, g ^ {S (1-2x [n])} × h ^ {r1 [n]}) = (C1 [n] [0], C1 [n] [1] ) (= C1 [n])… (104-n)
 次に、登録要求装置110の通信部113は、記憶装置130から登録識別子idを受け取る(ステップB9)。 Next, the communication unit 113 of the registration request device 110 receives the registration identifier id from the storage device 130 (step B9).
 登録要求装置110は、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップB10)。あるいは、登録要求装置110は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。 The registration request device 110 displays the received registration identifier id on a user interface (UI) such as a display (step B10). Alternatively, 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.
 次に、記憶装置130における登録データ生成部132は、登録データを生成する(B11)。 Next, the registration data generation unit 132 in the storage device 130 generates registration data (B11).
 記憶装置130における登録データ記憶部133に、上記登録識別子Idに対応させたテンプレートを格納する(ステップB12)。 The template corresponding to the registration identifier Id is stored in the registration data storage unit 133 in the storage device 130 (step B12).
 なお、本実施形態に係る照合システム100が登録フェーズにて実行する処理は、図7に例示された様態に限定されない。例えば、ステップB8に先だってステップB11とステップB12とが実行されてもよい。すなわち、記憶装置130は、登録識別子idを登録要求装置110に送信する前に、登録データを登録データ記憶部133に、上記登録データを格納するようにしてもよい。 In addition, the process which the collation system 100 which concerns on this embodiment performs in a registration phase is not limited to the aspect illustrated in FIG. For example, step B11 and step B12 may be executed prior to step B8. That is, the storage device 130 may store the registration data in the registration data storage unit 133 before transmitting the registration identifier id to the registration request device 110.
 次に、第1の実施形態に係る照合システム100が実行する照合フェーズの処理について図10を参照して説明する。 Next, the verification phase process executed by the verification system 100 according to the first embodiment will be described with reference to FIG.
 照合要求装置120は、照合(認証)対象の持つ識別子(「照合識別子」と呼ぶ)を受け取る(ステップC1)。 The collation requesting device 120 receives an identifier (referred to as “collation identifier”) possessed by the collation (authentication) (step C1).
 次に、照合要求装置120における照合要求生成部121は、受け取った照合識別子を含む照合要求を生成する(ステップC2)。 Next, the verification request generator 121 in the verification request device 120 generates a verification request including the received verification identifier (step C2).
 照合要求装置120の通信部124は、照合要求を照合装置140に送信する(ステップC3)。 The communication unit 124 of the verification requesting device 120 transmits a verification request to the verification device 140 (step C3).
 照合装置140の通信部146は、照合要求装置120から照合要求を受け取る(ステップC4)。 The communication unit 146 of the verification device 140 receives the verification request from the verification request device 120 (step C4).
 次に、照合装置140における登録データ取得部141は、照合要求装置120から送信された照合要求に含まれる照合識別子を含む登録データ要求を生成する(ステップC5)。 Next, the registration data acquisition unit 141 in the verification device 140 generates a registration data request including the verification identifier included in the verification request transmitted from the verification request device 120 (step C5).
 照合装置140の通信部146は、登録データ要求を記憶装置130に送信する(ステップC6)。 The communication unit 146 of the verification device 140 transmits a registration data request to the storage device 130 (step C6).
 次に、記憶装置130の通信部135は、照合装置140から登録データ要求を受け取る(ステップC7)。 Next, the communication unit 135 of the storage device 130 receives a registration data request from the verification device 140 (step C7).
 記憶装置130における登録データ検索部134は、登録データ記憶部133に格納されている、一つまたは複数の登録データのうち、登録データ要求に含まれる照合識別子を含む登録データ(「対象テンプレート」ともいう)を特定する(ステップC8)。 The registration data search unit 134 in the storage device 130 includes registration data (also referred to as “target template”) including a verification identifier included in the registration data request among one or a plurality of registration data stored in the registration data storage unit 133. (Step C8).
 記憶装置130の通信部135は、当該テンプレート:
Enc(pk, S(1-2x[1])), 
Enc(pk, S(1-2x[2])),…,
Enc(pk,S(1-2x[n])),
Enc(pk, S(D1-0)+R[0]), 
Enc(pk, S(D1-1)+R[1]), 
Enc(pk, S(D1-2)+R[2]), …, 
Enc(pk, S(D1-t)+R[t])と、複数(例えばt+1個)のハッシュ値:
H(R[0]), H(R[1]),…, H(R[t])
を照合装置140に送信する(ステップC9)。
The communication unit 135 of the storage device 130 includes the template:
Enc (pk, S (1-2x [1])),
Enc (pk, S (1-2x [2])), ...,
Enc (pk, S (1-2x [n])),
Enc (pk, S (D 1 -0) + R [0]),
Enc (pk, S (D 1 -1) + R [1]),
Enc (pk, S (D 1 -2) + R [2]),…,
Enc (pk, S (D 1 -t) + R [t]) and multiple (eg, t + 1) hash values:
H (R [0]), H (R [1]), ..., H (R [t])
Is transmitted to the verification device 140 (step C9).
 照合装置140の通信部146は、記憶装置130から対象テンプレートを受け取る(ステップC10)。 The communication unit 146 of the verification device 140 receives the target template from the storage device 130 (step C10).
 照合装置140の乱数生成部142は、疑似乱数生成手順に従い整数(乱数)S'∈Fqを生成する(ステップC11)。 The random number generation unit 142 of the verification device 140 generates an integer (random number) S′εFq according to a pseudo-random number generation procedure (step C11).
 乱数生成部142は、好ましくは、照合要求のたびに毎回異なる乱数S’を生成する。 The random number generator 142 preferably generates a different random number S ′ every time a collation request is made.
 次に、照合装置140における暗号データ生成部143は、加法準同型のスカラー演算則から、上式(102-1)~(102-n)のn個の第1のテンプレート:
Enc(pk,S(1-2x[1]))(=C1[1])
     …,
Enc(pk,S(1-2x[n]))(=C1[n]) 
に対するS’のスカラー演算Scl(S’, Enc(pk,S(1-2x[1]))),…, Scl(S, Enc(pk,S(1-2x[n])))
より、n個の暗号データ(「チャレンジ」ともいう):
Enc(pk,SS'(1-2x[1]))(C3[1]と表す)      …(105-1)
    …
Enc(pk, SS'(1-2x[n]))(C3[n]と表す)      …(105-n)
を生成する(ステップC12)。
Next, the cipher data generation unit 143 in the collation device 140 calculates n first templates of the above formulas (102-1) to (102-n) from an additive homomorphic scalar operation rule:
Enc (pk, S (1-2x [1])) (= C1 [1])
…,
Enc (pk, S (1-2x [n])) (= C1 [n])
S 'scalar operation on Scl (S', Enc (pk, S (1-2x [1]))), ..., Scl (S, Enc (pk, S (1-2x [n])))
Therefore, n encrypted data (also called “challenge”):
Enc (pk, SS '(1-2x [1])) (denoted as C3 [1])… (105-1)
...
Enc (pk, SS '(1-2x [n])) (denoted as C3 [n])… (105-n)
Is generated (step C12).
 照合装置140の通信部146は、暗号データ (C3[1],…,C3[n])を照合要求装置120に送信する(ステップC13)。 The communication unit 146 of the verification device 140 transmits the encrypted data (C3 [1],..., C3 [n]) to the verification request device 120 (step C13).
 照合要求装置120は、照合装置140がステップC13で送信した暗号データ(C3[1],…,C3[n])を受け取る(ステップC14)。 The verification requesting device 120 receives the encrypted data (C3 [1],..., C3 [n]) transmitted by the verification device 140 in step C13 (step C14).
 次に、照合要求装置120における照合情報抽出部122は、認証対象の生体から照合ベクトル(第2のベクトル)
 Y=(y[1],y[2],…,y[n])          …(106)
を抽出する(ステップC15)。
Next, the collation information extraction unit 122 in the collation requesting device 120 generates a collation vector (second vector) from the biometric subject to be authenticated.
Y = (y [1], y [2],…, y [n])… (106)
Is extracted (step C15).
 次に、照合要求装置120におけるレスポンス生成部123は、チャレンジ:
Enc(pk,SS'(1-2x[1]))(C3[1]),…
,Enc(pk, SS'(1-2x[n]))(C3[n])         …(107)
に対する、第2のベクトルY=(y[1],y[2],…,y[n])の要素y[i]のスカラー演算
Scl(y[i], Enc(pk, SS'(1-2x[i])))(i=1,…,n)        …(108)
により、
Enc(pk, SS'(1-2x[i])y[i])) (i=1,…,n)         …(109)
を生成する。
Next, the response generation unit 123 in the verification requesting device 120 performs the challenge:
Enc (pk, SS '(1-2x [1])) (C3 [1]), ...
, Enc (pk, SS '(1-2x [n])) (C3 [n])… (107)
Scalar operation of element y [i] of second vector Y = (y [1], y [2], ..., y [n])
Scl (y [i], Enc (pk, SS '(1-2x [i]))) (i = 1,…, n)… (108)
By
Enc (pk, SS '(1-2x [i]) y [i])) (i = 1,…, n)… (109)
Is generated.
 そして、レスポンス生成部123は、加法準同型を用いて、
Enc(pk, Σ<i=1,n>SS'(1-2x[i])y[i])=Enc(pk,SS'D2)(=CC3)     …(110)
を生成する(ステップC16)。
Then, the response generation unit 123 uses the additive homomorphism,
Enc (pk, Σ <i = 1, n> SS '(1-2x [i]) y [i]) = Enc (pk, SS'D2) (= CC3)… (110)
Is generated (step C16).
 次に、照合要求装置120の通信部124は上記レスポンスCC2を照合装置140に送信する(ステップC17)。 Next, the communication unit 124 of the verification requesting device 120 transmits the response CC2 to the verification device 140 (step C17).
 次に、照合装置140は、照合要求装置120から、上記レスポンス
Enc(pk,SS'D2)(=CC3) 
を受け取る(ステップC18)。
Next, the verification device 140 receives the response from the verification request device 120.
Enc (pk, SS'D 2 ) (= CC3)
Is received (step C18).
 次に、照合装置140の暗号化距離計算部144は、照合要求装置120から送信されたEnc(pk,SS'D2)(=CC3)に対して、乱数S’の逆数S’^(-1)をスカラー演算
Scl(S’^(-1), Enc(pk, SS' D2))     …(111)
することで、
Enc(pk, SD2)     …(112)
を算出する。
Next, the encryption distance calculation unit 144 of the verification device 140 performs the reciprocal S ′ ^ (− 1 of the random number S ′ with respect to Enc (pk, SS′D2) (= CC3) transmitted from the verification request device 120. ) Scalar operation
Scl (S '^ (-1), Enc (pk, SS' D 2 ))… (111)
by doing,
Enc (pk, SD 2 )… (112)
Is calculated.
 照合装置140の暗号化距離計算部144は、この暗号データEnc(pk, SD2)に、記憶装置130に登録された第2のテンプレートのEnc(pk, S(D1-δ)+R[δ])(δ=0,…,t)を準同型加算することで、
Enc(pk, S(D-δ)+ R[δ]) (δ=0,…,t)      …(113)
を求める。
The encryption distance calculation unit 144 of the collation device 140 adds the second template Enc (pk, S (D 1 -δ) + R [registered in the storage device 130 to the encrypted data Enc (pk, SD 2 ). δ]) (δ = 0, ..., t)
Enc (pk, S (D-δ) + R [δ]) (δ = 0,…, t)… (113)
Ask for.
 照合装置140の暗号化距離計算部144は、さらに、Enc(pk, S(D-δ)+ R[δ]に、乱数b[δ] (δ=0, …,t)を求め、スカラー演算することで、複数(例えばt+1個)の暗号データ
Enc(pk, b[δ] (S(D-δ)+ R[δ]))  (δ=0,…,t)     …(114)
を求める。
The encryption distance calculation unit 144 of the verification device 140 further obtains a random number b [δ] (δ = 0,..., T) from Enc (pk, S (D−δ) + R [δ], and performs a scalar calculation. By doing so, multiple (eg, t + 1) encrypted data
Enc (pk, b [δ] (S (D-δ) + R [δ])) (δ = 0,…, t)… (114)
Ask for.
 照合装置140の暗号化距離計算部144は、ハッシュ値H(R[δ])と乱数b[δ] (δ=0, …,t)から、ハッシュ関数H()の準同型性を用いて、b[δ]をハッシュ値H(R[δ])に対してスカラー演算することで、t+1個のハッシュ値
H(b[δ]R[δ]) (δ=0,…,t)     …(115)
を計算する。
The encryption distance calculation unit 144 of the verification device 140 uses the homomorphism of the hash function H () from the hash value H (R [δ]) and the random number b [δ] (δ = 0,..., T). , B [δ] by performing a scalar operation on the hash value H (R [δ]), t + 1 hash values
H (b [δ] R [δ]) (δ = 0, ..., t) (115)
Calculate
 照合装置140のクエリ生成部145は、上式(112)のt+1個の暗号データ:
Enc(pk, b[δ] (S(D-δ)+ R[δ])) (δ=0,…,t)と、
上式(113)のt+1個のハッシュ値:
H(b[δ]R[δ]) (δ=0,…,t)
と、を含むクエリを生成し、通信部146を介して、該クエリを検証装置150に送信する(ステップC21)。
The query generation unit 145 of the verification device 140 performs t + 1 pieces of encrypted data of the above formula (112):
Enc (pk, b [δ] (S (D-δ) + R [δ])) (δ = 0, ..., t),
T + 1 hash values of the above formula (113):
H (b [δ] R [δ]) (δ = 0,…, t)
Are generated and transmitted to the verification device 150 via the communication unit 146 (step C21).
 検証装置150では、通信部155を介してクエリを受け取る(ステップC22)。 The verification device 150 receives the query via the communication unit 155 (step C22).
 検証装置150の復号部1531は、前記クエリの前記暗号データ:
Enc(pk, R[0]+S(D-0))、
Enc(pk, R[1]+S(D-1))、…、
Enc(pk, R[t]+S(D-t))
を秘密鍵(sk)を用いて復号し、複数(例えばt+1個)の復号値z[0]、…、z[t]を得る(ステップC23)。
The decryption unit 1531 of the verification device 150 uses the encrypted data of the query:
Enc (pk, R [0] + S (D-0)),
Enc (pk, R [1] + S (D-1)), ...
Enc (pk, R [t] + S (Dt))
Are decrypted using the secret key (sk) to obtain a plurality of (for example, t + 1) decrypted values z [0],..., Z [t] (step C23).
z[δ]= b[δ] (S(D-δ)+ R[δ]) <- Dec(sk, Enc(pk, b[δ] (S(D-δ)+ R[δ])),  (δ=0,…,t)
    …(116)
z [δ] = b [δ] (S (D-δ) + R [δ]) <-Dec (sk, Enc (pk, b [δ] (S (D-δ) + R [δ])) , (δ = 0,…, t)
… (116)
 検証装置150のハッシュ値生成部1532は、t+1個の復号値z[0]、…、z[t]のハッシュ値
H(b[δ] (S(D-δ)+ R[δ]))  (δ=0,…,t)    …(117)
を算出する(ステップC24)。
The hash value generation unit 1532 of the verification device 150 uses the hash values of t + 1 decrypted values z [0], ..., z [t].
H (b [δ] (S (D-δ) + R [δ])) (δ = 0,…, t)… (117)
Is calculated (step C24).
 検証装置150の一致判定部1533は、複数(t+1個)の復号値z[0]、…、z[t]のハッシュ値H(b[δ] (S(D-δ)+ R[δ]))(δ=1,…,t) と、クエリのハッシュ値H(b[δ]R[δ]) (δ=0,…,t)のt+1組の条件:
 H(b[0] (S(D-0)+ R[0]))=H(R[0])     …(118-1)
 H(b[1] (S(D-1)+ R[1]))=H(R[1])     …(118-2)
,…,
 H(b[t] (S(D-t)+ R[t]))=H(R[t])     …(118-t)
のうち、成立するものがあるか否かをチェックする(C25)。
The match determination unit 1533 of the verification apparatus 150 uses a plurality (t + 1) of decrypted values z [0],..., Z [t] hash values H (b [δ] (S (D−δ) + R [δ]). )) (Δ = 1,..., T) and the hash value H (b [δ] R [δ]) of the query (δ = 0,.
H (b [0] (S (D-0) + R [0])) = H (R [0])… (118-1)
H (b [1] (S (D-1) + R [1])) = H (R [1])… (118-2)
, ...,
H (b [t] (S (Dt) + R [t])) = H (R [t]) (118-t)
Among these, it is checked whether or not there is an established one (C25).
 検証結果出力部154は、一致判定部1533の判定結果に基づき、t+1組の条件のうち条件が成立する組が何もない場合には、不受理とし、条件が成立する組が一組あれば(ハミング距離は0~tのいずれか)、受理とする検証結果を生成し、通信部155を介して出力する。 Based on the determination result of the match determination unit 1533, the verification result output unit 154 rejects if there is no set that satisfies the condition among t + 1 sets of conditions, and if there is one set that satisfies the condition, (The Hamming distance is any one of 0 to t), a verification result to be accepted is generated and output via the communication unit 155.
 本実施形態によれば、照合装置140から照合要求装置120に対して送信するチャレンジには、登録用の第1のベクトルの要素に対して演算された乱数(S)単体の暗号データを含めることはない(乱数(S)単体の暗号データはチャレンジとして送信されない)。このため、照合要求装置120等によるなりすまし攻撃に対する耐性を高めることができる。さらに、サーバ102における照合装置140、検証装置150等において、距離D(二値の第1のベクトルと第2のベクトルの距離)を算出することはできない。すなわち、三者モデルのサーバによる登録生体情報と照合生体情報の距離の操作を不能としている。このため、前述したなりすまし攻撃やヒルクライミング攻撃等に対する耐性向上に寄与するところは極めて大である。 According to the present embodiment, the challenge transmitted from the verification device 140 to the verification request device 120 includes the encrypted data of a single random number (S) calculated for the elements of the first vector for registration. (Random number (S) alone encrypted data is not sent as a challenge). For this reason, the tolerance with respect to the spoofing attack by the collation request | requirement apparatus 120 grade | etc., Can be improved. Furthermore, the distance D (distance between the binary first vector and the second vector) cannot be calculated by the collation device 140, the verification device 150, or the like in the server 102. That is, the operation of the distance between the registered biometric information and the verification biometric information by the three-part model server is disabled. For this reason, the place which contributes to the tolerance improvement with respect to the impersonation attack, hill climbing attack, etc. which were mentioned above is very large.
<第2の実施形態>
 図11は、本発明の第2の実施形態を説明する図である。図11を参照すると、例示的な第2の実施形態の照合システム100の構成は、図5を参照して説明した例示的な第1の実施形態の照合システム100の構成と同一である(ただし、登録要求装置110、照合要求装置120、記憶装置130、照合装置140、検証装置150における処理が相違している)。以下では、相違点を中心に説明する。
<Second Embodiment>
FIG. 11 is a diagram for explaining a second embodiment of the present invention. Referring to FIG. 11, the configuration of the verification system 100 according to the second exemplary embodiment is the same as the configuration of the verification system 100 according to the first exemplary embodiment described with reference to FIG. 5 (however, The processes in the registration request device 110, the verification request device 120, the storage device 130, the verification device 140, and the verification device 150 are different. Below, it demonstrates centering around difference.
 登録要求装置110は、二値の第1のベクトル(X=[x1,…,xn])の要素の第1の演算結果を公開鍵(pk)で暗号化した暗号データ:
Enc(pk, (1-2xi)))  (i=1,…,n)
と、第2の演算結果(Σ<i=1,n>xi=D1)を公開鍵(pk)で暗号化した暗号データ:
Enc(pk,Σ<i=1,n>xi)=Enc(pk,D1))
を記憶装置130に送信する。
The registration requesting device 110 encrypts the first operation result of the elements of the binary first vector (X = [x1,..., Xn]) with the public key (pk):
Enc (pk, (1-2x i ))) (i = 1,…, n)
And encrypted data obtained by encrypting the second calculation result (Σ <i = 1, n> x i = D 1 ) with the public key (pk):
Enc (pk, Σ <i = 1, n> x i ) = Enc (pk, D 1 ))
Is transmitted to the storage device 130.
 記憶装置130は、登録要求装置110から送信された暗号データ(Enc(pk,(1-2xi))
  (i=1,…,n))と第2の演算結果(Enc(pk,Σ<i=1,n>xi)=Enc(pk,D1))を第1、第2のテンプレートとしてまとめて登録識別子Idに関連付けて記憶する。
The storage device 130 encrypts data (Enc (pk, (1-2x i )) transmitted from the registration request device 110.
(I = 1, ..., n)) and the second calculation result (Enc (pk, Σ <i = 1, n> x i ) = Enc (pk, D 1 )) as the first and second templates Collectively, store in association with the registration identifier Id.
 照合装置140は、照合要求装置120から照合要求を受けると、第1の乱数(S)を作成し、記憶装置130から第1のテンプレート:
Enc(pk, 1-2xi)  (i=1,…,n)
と第2のテンプレート:
Enc(pk, D1)
を取得する。
When the verification device 140 receives the verification request from the verification request device 120, the verification device 140 generates a first random number (S) and stores the first template from the storage device 130:
Enc (pk, 1-2x i ) (i = 1,…, n)
And the second template:
Enc (pk, D 1 )
To get.
 そして、照合装置140は、第1のテンプレートの暗号データ(Enc(pk,(1-2xi)を暗号化したまま第1の乱数(S)を演算した暗号データ:
Enc(pk, S(1-2xi)) (i=1,…,n)       …(119)
をチャレンジとして前記照合要求装置120に送信する。
The collation device 140 then encrypts the first template encrypted data (encrypted data obtained by calculating the first random number (S) while encrypting Enc (pk, (1-2xi):
Enc (pk, S (1-2x i )) (i = 1,…, n)… (119)
Is sent to the verification requesting device 120 as a challenge.
 照合要求装置120は、二値の前記第2のベクトル(Y=[y1,…,yn])の要素(yi) (i=1,…,n)
と、チャレンジとして送信された暗号データ
Enc(pk, S(1-2xi))  (i=1,…,n)
との演算結果:
Enc(pk, S (1 - 2xi)yi)
)の総和(Σ<i=1,n>)を、第1べクトル(X)と第2のべクトル(Y)のハミング距離Dの分割値の暗号データ:
Enc(pk, S(Σ<i=1,n> (1 - 2xi)yi)) =Enc(pk, SD2)       …(120)
として求める。照合要求装置120は、暗号データEnc(pk, SD2)を照合装置140にレスポンスとして送信する。
The verification requesting device 120 uses the element (yi) (i = 1,..., N) of the binary second vector (Y = [y 1 ,..., Y n ]).
And encrypted data sent as a challenge
Enc (pk, S (1-2x i )) (i = 1,…, n)
Operation result with:
Enc (pk, S (1-2x i ) y i )
) (Σ <i = 1, n>), the encrypted data of the division value of the Hamming distance D of the first vector (X) and the second vector (Y):
Enc (pk, S (Σ <i = 1, n> (1-2x i ) yi)) = Enc (pk, SD 2 )… (120)
Asking. The verification requesting device 120 transmits the encrypted data Enc (pk, SD 2 ) to the verification device 140 as a response.
 照合装置140は、照合要求装置120からのレスポンスの暗号データ(Enc(pk, S D2))を受けると、第2のテンプレート(Enc(pk, SD1))との準同型加算:
Enc(pk, SD1)+Enc(pk, SD2)=Enc(pk, SD)       …(121)
により、第1のベクトル(X)と第2のベクトル(Y)のハミング距離(D)に関する暗号データ(Enc(pk, SD))を算出する。
When the verification device 140 receives the encrypted data (Enc (pk, S D 2 )) of the response from the verification request device 120, the homomorphic addition with the second template (Enc (pk, SD 1 )):
Enc (pk, SD 1 ) + Enc (pk, SD 2 ) = Enc (pk, SD)… (121)
Thus, encryption data (Enc (pk, SD)) related to the Hamming distance (D) between the first vector (X) and the second vector (Y) is calculated.
 照合装置140は、第2の乱数(R)を作成し、これを公開鍵(pk)で暗号化した暗号データ:
Enc(pk,R)        …(122)
を生成する。照合装置140は、第1のベクトル(X)と第2のベクトル(Y)のハミング距離(D)に関する暗号データ(Enc(pk, SD))と第2の乱数(R)の暗号データ(Enc(pk,R))との準同型加算:
Enc(pk, SD)+Enc(pk, R)=Enc(pk, SD+R)
により、クエリ用の暗号データ:
Enc(pk, SD+R)        …(123)
を作成する。
The verification device 140 creates a second random number (R) and encrypts the encrypted data with the public key (pk):
Enc (pk, R)… (122)
Is generated. The collation device 140 uses the encrypted data (Enc (pk, SD)) related to the Hamming distance (D) between the first vector (X) and the second vector (Y) and the encrypted data (Enc) of the second random number (R). Homomorphic addition with (pk, R)):
Enc (pk, SD) + Enc (pk, R) = Enc (pk, SD + R)
By encryption data for query:
Enc (pk, SD + R)… (123)
Create
 また、照合装置140は、0~閾値tまでの範囲の非負整数値δに関して、第1の乱数(S)と第2の乱数(R)を用いて、ハミング距離(D)に関する算法(SD+R)と同じ算法による値Sδ+Rを求め、クエリ用のハッシュ値:
H(Sδ+R)  (δ=0,..,t)      …(124)
を求める。なお、第2の実施形態では、ハッシュ関数H()は、前記第1の実施形態のような準同型性を持つ必要はない。
Further, the collation device 140 uses the first random number (S) and the second random number (R) for the non-negative integer value δ in the range from 0 to the threshold t, and uses the arithmetic (SD + R) finds the value Sδ + R using the same algorithm as the hash value for the query:
H (Sδ + R) (δ = 0, .., t)… (124)
Ask for. In the second embodiment, the hash function H () need not have homomorphism as in the first embodiment.
 ハッシュ関数H()の入力:Sδ+Rは、クエリの暗号データにおけるハミング距離Dの演算式:
 f(D)=SD+R       …(125)
におけるD=δのときの値f(δ)に対応している。
Input of the hash function H (): Sδ + R is an arithmetic expression of the Hamming distance D in the encrypted data of the query:
f (D) = SD + R (125)
Corresponds to the value f (δ) when D = δ.
 照合装置140は、距離(D)に関する暗号データ(Enc(pk, SD+R))と、ハッシュ値H(Sδ+R)(δ=0,…t)をクエリとして、検証装置150に送信する。 The verification device 140 transmits the encrypted data (Enc (pk, SD + R)) regarding the distance (D) and the hash value H (Sδ + R) (δ = 0,... T) to the verification device 150 as a query. .
 検証装置150は、暗号データEnc(pk, SD+R)を復号鍵(sk)で復号した復号値SD+Rのハッシュ値:
H(SD+R)      …(126)
を計算する。
The verification device 150 uses a hash value of the decrypted value SD + R obtained by decrypting the encrypted data Enc (pk, SD + R) with the decryption key (sk):
H (SD + R)… (126)
Calculate
 検証装置150は、復号値SD+Rのハッシュ値H(SD+R)に関して、照合装置140からクエリとして送信された複数(t+1個)のハッシュ値:
H(Sδ+R)(δ=0,…t)     …(127)
のうち
H(SD+R)=H(Sδ+R)    …(128)
が成り立つものがあるか否かをチェックする。検証装置150は、一致するものがある場合には、受理、一致するものがない場合、不受理を決定する構成としてもよい。
The verification device 150, regarding the hash value H (SD + R) of the decrypted value SD + R, a plurality (t + 1) of hash values transmitted as a query from the verification device 140:
H (Sδ + R) (δ = 0, ... t) (127)
Out of
H (SD + R) = H (Sδ + R) (128)
Check if there is something that holds. The verification device 150 may be configured to accept if there is a match, and to determine non-acceptance if there is no match.
 例示的な第2の実施形態によれば、二値ベクトル型の生体情報を扱う場合、復号者(検証装置)に距離を開示しない照合システムを実現可能としている。 According to the second exemplary embodiment, when binary vector biometric information is handled, a collation system that does not disclose the distance to a decryptor (verification device) can be realized.
 例示的な第2の実施形態に係る照合システム100では、加法、スカラー演算について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、暗号方式は上記したModified Elgamal暗号を用いる。あるいは楕円Elgamal暗号、あるいは、Paillier暗号を用いてもよい。 The collation system 100 according to the second exemplary embodiment uses a homomorphic encryption method having homomorphism for addition and scalar calculation. For convenience of explanation, the above-mentioned Modified Elgamal encryption is used as the encryption method. Alternatively, elliptic Elgamal encryption or Paillier encryption may be used.
 図12は、図11を参照して説明した第2の実施形態の動作シーケンスを説明する図である。図12において、準備フェーズにおける公開鍵pk、秘密鍵skの生成(S100)は、図6を参照して説明した通りである。 FIG. 12 is a diagram for explaining the operation sequence of the second embodiment described with reference to FIG. In FIG. 12, the generation of the public key pk and the secret key sk (S100) in the preparation phase is as described with reference to FIG.
 登録要求装置110は、二値ベクトルX=[x1,..,xn]∈{0,1}nの要素に関する第1の演算結果(1-2xi)(i=1,…,n)を暗号化した第1のテンプレート:
Enc(pk, 1-2x1),…,
Enc(pk, 1-2xn)    …(129)
と、第1の演算結果(Σ<i=1,n>xi)を暗号化した第2のテンプレート:
Enc(pk, Σ<i=1,n>xi)    …(130)
を記憶装置130に送信する(S141)。
Registration request unit 110, a binary vector X = [x 1, .., x n] ∈ {0,1} n elements for a first calculation result of (1-2x i) (i = 1 , ..., n ) Encrypted first template:
Enc (pk, 1-2x 1 ),…,
Enc (pk, 1-2x n )… (129)
And a second template obtained by encrypting the first calculation result (Σ <i = 1, n> x i ):
Enc (pk, Σ <i = 1, n> x i )… (130)
Is transmitted to the storage device 130 (S141).
 記憶装置130は、第1、第2のテンプレート:
Enc(pk, 1-2xi)  (i=1,…,n)と、
Enc(pk, Σ<i=1,n>xi)= Enc(pk, D1)
を登録識別子idに対応させて記憶する。
The storage device 130 includes first and second templates:
Enc (pk, 1-2x i ) (i = 1,…, n)
Enc (pk, Σ <i = 1, n> x i ) = Enc (pk, D 1 )
Is stored in correspondence with the registration identifier id.
 照合装置140は、照合要求装置120から照合要求(登録識別子idを含む)を受けると(S142)、記憶装置130から、登録識別子idに対応する第1のテンプレート:
Enc(pk, 1-2xi) (i=1,…,n)と、第2のテンプレート:
Enc(pk, D1)を読み出す(S143)。
When the verification device 140 receives the verification request (including the registration identifier id) from the verification request device 120 (S142), the first template corresponding to the registration identifier id from the storage device 130:
Enc (pk, 1-2x i ) (i = 1, ..., n) and the second template:
Enc (pk, D 1 ) is read (S143).
 照合装置140は、第1の乱数(S)を生成し(S144)、第1、第2のテンプレートに対して、スカラー演算則を用いて
Enc(pk, S(1-2xi))  (i=1,…,n)     …(131)
を生成し、さらに
Enc(pk, SD1)             …(132)
を生成する。
The collation device 140 generates a first random number (S) (S144), and uses a scalar operation rule for the first and second templates.
Enc (pk, S (1-2x i )) (i = 1,…, n)… (131)
Produces further
Enc (pk, SD 1 )… (132)
Is generated.
 照合装置140は、暗号データ:
Enc(pk, S(1-2x1)),…,
Enc(pk, S(1-2xn))    …(133)
を照合要求装置120に送信する(S145)。
The collation device 140 is encrypted data:
Enc (pk, S (1-2x 1 )), ...,
Enc (pk, S (1-2x n ))… (133)
Is transmitted to the verification requesting device 120 (S145).
 照合要求装置120は、Y=[y1,..,yn]∈{0,1}nと、照合装置140から受け取った暗号データ:
Enc(pk, S(1-2xi))   (i=1,…,n)から、スカラー演算Scl(yi, Enc(pk, S(1-2xi)))より、
Enc(pk, S(1-2xi)yi)  (i=1,…,n)       …(134)
を求め、これらn個(i=1からn)を加算することで、
Σ<i=1,n>Enc(pk, S(1 - 2xi)yi)
   =Enc(pk, S(Σ<i=1,n> (1 - 2xi)yi))
   =Enc(pk, SD2)      …(135)
を計算する。照合要求装置120は、Enc(pk, SD2)を照合装置140に送信する(S146)。
The verification requesting device 120 has Y = [y 1 , .., y n ] ∈ {0,1} n and the encrypted data received from the verification device 140:
From Enc (pk, S (1-2x i )) (i = 1, ..., n), scalar operation Scl (y i , Enc (pk, S (1-2x i )))
Enc (pk, S (1-2x i ) y i ) (i = 1,…, n)… (134)
And adding these n (i = 1 to n)
Σ <i = 1, n> Enc (pk, S (1-2x i ) y i )
= Enc (pk, S (Σ <i = 1, n> (1-2x i ) y i ))
= Enc (pk, SD 2 )… (135)
Calculate The verification requesting device 120 transmits Enc (pk, SD 2 ) to the verification device 140 (S146).
 照合装置140は、第1の乱数(S)単独の暗号データは照合要求装置120に送信しない。よって、照合要求装置120は、Enc(pk, SD1)を算出することはできない。このため、クライアントはハミング距離を偽装できない。 The verification device 140 does not transmit the encrypted data of the first random number (S) alone to the verification request device 120. Therefore, the verification requesting device 120 cannot calculate Enc (pk, SD 1 ). For this reason, the client cannot impersonate the Hamming distance.
 照合装置140は、照合要求装置120から送信されたEnc(pk, SD2)に対して、第2のテンプレート(Enc(pk, SD1))との準同型加算:
Enc(pk, SD1)+Enc(pk, SD2)=Enc(pk, SD)      …(136)
により、第1、第2のベクトルの距離(D)に関する暗号データ(Enc(pk, SD))を算出する。
The collation device 140 adds homomorphism with the second template (Enc (pk, SD 1 )) to Enc (pk, SD 2 ) transmitted from the collation request device 120:
Enc (pk, SD 1 ) + Enc (pk, SD 2 ) = Enc (pk, SD)… (136)
Thus, the encryption data (Enc (pk, SD)) relating to the distance (D) between the first and second vectors is calculated.
 照合装置140は、第2の乱数(R)を作成する(S147)。照合装置140は、第2の乱数(R)を公開鍵(pk)で暗号化した暗号データ(Enc(pk,R))を生成する。そして、照合装置140は、距離(D)に関する暗号データ(Enc(pk, SD))と第2の乱数(R)の暗号データ(Enc(pk, R))とを準同型加算して、クエリ用の暗号データ
Enc(pk, SD+R)        …(137)
を作成する。照合装置140は、0~閾値tまでの範囲の値(非負整数)δに関して、第1の乱数(S)と第2の乱数(R)を用いて、クエリの前記暗号データの距離に関する算法(SD+R)と同じ算法による値Sδ+R(演算式(SD+R)においてDがδのときの値)を求め、該値のハッシュ値:
H(Sδ+R)       …(138)
を求める。照合装置140は、距離(D)に関する暗号データEnc(pk, SD+R)と、ハッシュ値H(Sδ+R)(δ=0,…t)を前記クエリとして、検証装置150に送信する(S148)。
The collation device 140 creates a second random number (R) (S147). The verification device 140 generates encrypted data (Enc (pk, R)) obtained by encrypting the second random number (R) with the public key (pk). Then, the verification device 140 performs homomorphic addition of the encrypted data (Enc (pk, SD)) regarding the distance (D) and the encrypted data (Enc (pk, R)) of the second random number (R) to obtain a query. Encryption data
Enc (pk, SD + R)… (137)
Create The collation device 140 uses a first random number (S) and a second random number (R) for a value (non-negative integer) δ in the range from 0 to a threshold t, and uses a calculation method regarding the distance of the encrypted data in the query ( The value Sδ + R (the value when D is δ in the arithmetic expression (SD + R)) is obtained by the same algorithm as SD + R), and the hash value of the value:
H (Sδ + R)… (138)
Ask for. The verification device 140 transmits the encrypted data Enc (pk, SD + R) regarding the distance (D) and the hash value H (Sδ + R) (δ = 0,... T) to the verification device 150 as the query ( S148).
 検証装置150は、暗号データEnc(pk, SD+R)を復号鍵(sk)で復号する(S149)。
z=Dec(Enc(SD+R))=SD+R        …(139)
 次に、検証装置150は、暗号データEnc(pk, SD+R)を復号した値:
z=SD+R 
のハッシュ値:
H(z)=H(SD+R)      …(140)
を計算する。そして、検証装置150は、照合装置140から受け取ったt+1個のハッシュ値:
H(Sδ+R)(δ=0,…t)    …(141)
の中に、H(SD+R)と等しいものがあるかチェックする(S150)。チェックの結果、H(SD+R)と等しいH(Sδ+R)がある場合には、検証装置150は、受理、等しい組がない場合、不受理を決定する。検証装置150での検証結果(受理、不受理)は照合装置140、照合要求装置120に送信される(S151)。
The verification device 150 decrypts the encrypted data Enc (pk, SD + R) with the decryption key (sk) (S149).
z = Dec (Enc (SD + R)) = SD + R… (139)
Next, the verification device 150 decrypts the encrypted data Enc (pk, SD + R):
z = SD + R
Hash value:
H (z) = H (SD + R)… (140)
Calculate The verification device 150 then receives t + 1 hash values received from the verification device 140:
H (Sδ + R) (δ = 0, ... t) (141)
Is checked to see if there is any equal to H (SD + R) (S150). As a result of the check, if there is H (Sδ + R) equal to H (SD + R), the verification device 150 determines acceptance or non-acceptance if there is no equal pair. The verification result (acceptance, rejection) in the verification device 150 is transmitted to the verification device 140 and the verification request device 120 (S151).
<第2の実施形態の装置構成>
 例示的な第2の実施形態の各装置の構成は、図7を参照して説明した前記第1の実施形態と同様である。第2の実施形態に係る照合システム100の動作は、第1の実施形態と、登録フェーズの処理が相違している。
<Apparatus configuration of the second embodiment>
The configuration of each device of the exemplary second embodiment is the same as that of the first embodiment described with reference to FIG. The operation of the verification system 100 according to the second embodiment is different from the first embodiment in the process of the registration phase.
 図13は、登録フェーズにおいて、例示的な第1の実施形態に係る照合システム100が実行する処理の一例を示すフローチャートである。図13を参照して、第2の実施形態に係る照合システム100が登録フェーズにて実行する処理について説明する。 FIG. 13 is a flowchart illustrating an example of processing executed by the verification system 100 according to the first exemplary embodiment in the registration phase. With reference to FIG. 13, the process which the collation system 100 which concerns on 2nd Embodiment performs in a registration phase is demonstrated.
 登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
 X=[x[1],…,x[n]]      …(142)
を抽出する(ステップB1)。なお、前記第1の実施形態と同様、単に演算式の明確化のため、xi (i=1,…,n)の添え字iを角括弧内とした表記x[i](i=1,…,n)で表す。
The registration information extraction unit 111 in the registration request device 110 receives biometric information (referred to as “registration vector”) from the biometric subject to registration.
X = [x [1],…, x [n]]… (142)
Is extracted (step B1). As in the first embodiment, the notation x [i] (i = 1, i, i) ..., n)
 次に、登録要求装置110におけるテンプレート生成部112は、公開鍵pkを用いて、1-2xi(i=1,…,n)を暗号化したn個の暗号文
Enc(pk, 1-2x[1]),…, Enc(pk, 1-2x[n])          …(143)
を生成する。ステップB2で生成した暗号データを第1テンプレートという。
Next, the template generation unit 112 in the registration request device 110 encrypts 1-2xi (i = 1,..., N) using the public key pk and n ciphertexts.
Enc (pk, 1-2x [1]), ..., Enc (pk, 1-2x [n]) ... (143)
Is generated. The encrypted data generated in step B2 is referred to as a first template.
 次に、登録要求装置110におけるテンプレート生成部112は、公開鍵pkを用いて、x[1]+,…+x[n]を暗号化した暗号文を生成する(ステップB3)。
Enc(pk, x[1]+,…+x[n])               …(144)
Next, the template generation unit 112 in the registration request apparatus 110 generates a ciphertext obtained by encrypting x [1] +,... + X [n] using the public key pk (step B3).
Enc (pk, x [1] +,… + x [n])… (144)
 ステップB3で生成した暗号データを第2テンプレートという。 The encrypted data generated in step B3 is called a second template.
Enc(pk,1-2x[1])(=C1[1]と表す)   …(145-1)
    …,
Enc(pk,1-2x[n])(=C1[n]と表す)   …(145-n)
Enc(pk, x[1]+…+x[n])(CC1と表す)     …(146)
Enc (pk, 1-2x [1]) (represented as = C1 [1])… (145-1)
…,
Enc (pk, 1-2x [n]) (= C1 [n])… (145-n)
Enc (pk, x [1] +… + x [n]) (represented as CC1)… (146)
 Modified-Elgamal暗号では、テンプレート生成部112はZの中から複数の数rr1[1],…,r1[n]、及び、rr1を選ぶ。 In Modified-Elgamal cryptography, template generator 112 a plurality of number rr1 [1] from the Z q, ..., r1 [n ], and to select the rr1.
 テンプレート生成部112は公開鍵pkから、生成元gと、値hとを読み取り、二値ベクトルXに関して以下の暗号文を作成する。 The template generation unit 112 reads the generation source g and the value h from the public key pk, and creates the following ciphertext regarding the binary vector X.
(g^{r1[1]}, g^{1-2x[1]}×h^{r1[1]})=(C1[1][0], C1[1][1]) (=C1[1])   …(147-1)
   …,
(g^{r1[n]}, g^{1-2x[n]}×h^{r1[n]}) =(C1[n][0], C1[n][1])(=C1[n])}})   …(147-n)
(g{rr1}, g{ x[1]+…+x[n]}×h{rr1}))=(CC1[0],CC1[1]) (=CC1)     …(148)
(g ^ {r1 [1]}, g ^ {1-2x [1]} × h ^ {r1 [1]}) = (C1 [1] [0], C1 [1] [1]) (= C1 [1])… (147-1)
…,
(g ^ {r1 [n]}, g ^ {1-2x [n]} × h ^ {r1 [n]}) = (C1 [n] [0], C1 [n] [1]) (= C1 [n])}})… (147-n)
(g {rr1} , g { x [1] +… + x [n]} × h {rr1} )) = (CC1 [0], CC1 [1]) (= CC1)… (148)
 次に、登録要求装置110におけるテンプレート生成部112は、第1テンプレートと第2テンプレートをまとめ、テンプレート(C1[1],…, C1[n], CC1)とする(ステップB4)。 Next, the template generation unit 112 in the registration requesting apparatus 110 collects the first template and the second template into a template (C1 [1],..., C1 [n], CC1) (step B4).
 登録要求装置110の通信部113は、テンプレート
(C1[1],…,C1[n],CC1)     …(149)
を記憶装置130に送信する(ステップB5)。
The communication unit 113 of the registration request device 110 is a template
(C1 [1],…, C1 [n], CC1)… (149)
Is transmitted to the storage device 130 (step B5).
 記憶装置130の通信部135は、登録要求装置110から、テンプレートを受け取る(ステップB6)。 The communication unit 135 of the storage device 130 receives the template from the registration request device 110 (step B6).
 記憶装置130における識別子管理部131は、登録要求装置110から受け取ったテンプレートに固有の識別子である登録識別子idを決定する(ステップB7)。 The identifier management unit 131 in the storage device 130 determines a registration identifier id that is an identifier unique to the template received from the registration requesting device 110 (step B7).
 記憶装置130の通信部135は、登録識別子idを登録要求装置110に送信する(ステップB8)。 The communication unit 135 of the storage device 130 transmits the registration identifier id to the registration request device 110 (step B8).
 次に、登録要求装置110の通信部113は、記憶装置130から登録識別子idを受け取る(ステップB9)。 Next, the communication unit 113 of the registration request device 110 receives the registration identifier id from the storage device 130 (step B9).
 次に、記憶装置130における登録データ生成部132は、登録データを生成する(B11)。
 記憶装置130における登録データ記憶部133に、上記登録識別子Idに対応させたテンプレートを格納する(ステップB12)。
Next, the registration data generation unit 132 in the storage device 130 generates registration data (B11).
A template corresponding to the registration identifier Id is stored in the registration data storage unit 133 in the storage device 130 (step B12).
 照合フェーズでは、図10のステップC19―25の処理が前記第1の実施形態と相違している。 In the collation phase, the processing in step C19-25 in FIG. 10 is different from that in the first embodiment.
 ステップC19では、照合装置140は、第2の乱数(R)を作成し、これを公開鍵(pk)で暗号化した暗号データ(Enc(pk,R))を生成する。また、登録用の第1のベクトル(X)と照合用の第2のベクトルYのハミング距離(D)に関する暗号データ(Enc(pk, SD))と第2の乱数(R)の暗号データ(Enc(pk,R))を準同型加算して、クエリ用の暗号データ(Enc(pk, SD+R))を作成する。 In step C19, the verification device 140 generates a second random number (R) and generates encrypted data (Enc (pk, R)) obtained by encrypting the second random number (R) with the public key (pk). Also, encryption data (Enc (pk, SD)) and encryption data of the second random number (R) regarding the Hamming distance (D) between the first vector (X) for registration and the second vector Y for verification ( Enc (pk, R)) is homomorphically added to create encrypted data for query (Enc (pk, SD + R)).
 ステップC20では、照合装置140は、閾値t以下の非負整数値δに関して、第1の乱数(S)と第2の乱数(R)を用いて、クエリの前記暗号データにおける距離Dに関する算法(SD+R)と同じ算法による値Sδ+Rを求め、該値のハッシュ値H(Sδ+R)を求める。 In step C20, the collation device 140 uses the first random number (S) and the second random number (R) for the non-negative integer value δ that is equal to or less than the threshold t, and uses the arithmetic (SD for the distance D in the encrypted data of the query) A value Sδ + R is calculated by the same algorithm as + R), and a hash value H (Sδ + R) of the value is obtained.
 ステップC21では、照合装置140は、登録用の第1のベクトル(X)と照合用の第2のベクトルYのハミング距離(D)に関する暗号データEnc(pk, SD+R)と、ハッシュ値H(Sδ+R)(δ=0,…t)を前記クエリとして、検証装置150に送信し、ステップC22では、検証装置150が該クエリを受信する。 In step C21, the collation device 140 includes the encrypted data Enc (pk, SD + R) relating to the Hamming distance (D) between the first vector (X) for registration and the second vector Y for collation, and the hash value H (Sδ + R) (δ = 0,... T) is transmitted as the query to the verification device 150, and in step C22, the verification device 150 receives the query.
 ステップC23では、検証装置150は、暗号データEnc(pk, SD+R)を復号鍵(sk)で復号する。 In step C23, the verification device 150 decrypts the encrypted data Enc (pk, SD + R) with the decryption key (sk).
 ステップC24では、検証装置150は、復号値SD+Rのハッシュ値(H(SD+R))を計算する。 In step C24, the verification device 150 calculates a hash value (H (SD + R)) of the decrypted value SD + R.
 ステップC25では、クエリのハッシュ値(H(Sδ+R)(δ=0,…t)のうち計算したハッシュ値(H(SD+R))と等しいものがあるかチェックし、一致する組がある場合には、受理し、等しい組がない場合、不受理を決定する。第2の実施形態によれば、二値ベクトル型の情報の照合を行うシステムにおいて、三者モデルの復号者と結託する攻撃者によるヒルクライミング攻撃に対する耐性を持たせることができる。 In step C25, it is checked whether there is a query hash value (H (Sδ + R) (δ = 0,... T) that is equal to the calculated hash value (H (SD + R)). In some cases, accept and decide not to accept if there is no equal set, according to the second embodiment, in a system for matching binary vector type information, collaborate with a three-party model decryptor. It is possible to provide resistance against hill climbing attacks by attackers.
<第3の実施形態>
 図14に示すように、照合装置140は、コンピュータ装置(システム)200に実装してもよい。図14を参照すると、サーバコンピュータ等のコンピュータ装置200は、プロセッサ(CPU(Central Processing Unit)、データ処理装置)201、半導体メモリ(例えばRAM(Random Access Memory)、ROM(Read Only Memory)、又は、EEPROM(Electrically Erasable and Programmable ROM)等)、HDD(Hard Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)等の少なくともいずれかを含む記憶装置202と、表示装置203と、通信インタフェース204を備えている。通信インタフェース204は、登録要求装置110、照合要求装置120、記憶装置130、検証装置150と通信接続する。記憶装置202に、前記実施形態で説明した照合装置140の機能を実現するプログラムを記憶しておき、プロセッサ201が、該プログラムを読み出して実行することで、前記実施形態の照合装置140の機能を実現するようにしてもよい。あるいは、記憶装置202と、例えば図7等の記憶装置130の登録データ記憶部133を同一の記憶装置とし、プロセッサ201で、図7等の記憶装置130の識別子管理部131、登録データ生成部132、登録データ検索部134の処理をさらに実行するようにしてもよい。コンピュータ装置200はクラウドサービスとしてクライアントに提供するクラウドサーバとして実装するようにしてもよい。
<Third Embodiment>
As shown in FIG. 14, the verification device 140 may be mounted on a computer device (system) 200. Referring to FIG. 14, a computer apparatus 200 such as a server computer includes a processor (CPU (Central Processing Unit), data processing apparatus) 201, a semiconductor memory (for example, RAM (Random Access Memory), ROM (Read Only Memory), or A storage device 202 including at least one of an EEPROM (Electrically Erasable and Programmable ROM), an HDD (Hard Disk Drive), a CD (Compact Disc), a DVD (Digital Versatile Disc), a display device 203, and a communication interface 204 It has. The communication interface 204 is communicatively connected to the registration request device 110, the verification request device 120, the storage device 130, and the verification device 150. The storage device 202 stores a program that realizes the function of the collation device 140 described in the above embodiment, and the processor 201 reads out and executes the program, so that the function of the collation device 140 in the embodiment is performed. It may be realized. Alternatively, the storage device 202 and, for example, the registration data storage unit 133 of the storage device 130 shown in FIG. 7 are the same storage device, and the processor 201 uses the identifier management unit 131 and the registration data generation unit 132 of the storage device 130 shown in FIG. The processing of the registration data search unit 134 may be further executed. The computer device 200 may be implemented as a cloud server provided to a client as a cloud service.
 登録要求装置110も、図14に示すように、プログラム制御されるコンピュータ装置200として実装してもよい。また前記実施形態の照合要求装置120も、コンピュータ装置200として実装してもよい。登録要求装置110と照合要求装置120は別々のコンピュータシステムであってもよいし、登録と照合を同一箇所で行う構成としてもよい。記憶装置202に、図5、図11等の登録要求装置110、照合要求装置120の機能を実現するプログラムを記憶しておき、プロセッサ201が、該プログラムを読み出して実行することで、上記した各実施形態の登録要求装置110、照合要求装置120を実現するようにしてもよい。登録要求装置110、照合要求装置120のプロセッサ201は、通信インタフェース204を介して不図示のセンサから指紋等の生体情報を取得し、取得した生体情報から、それぞれ二値の特徴ベクトルX、Yを抽出するようにしてもよい。なお、前記実施形態の検証装置150も、図14と同様、コンピュータ上で実行されるプログラムで実現してもよいことは勿論である。 The registration request device 110 may also be implemented as a computer device 200 that is program-controlled as shown in FIG. The collation requesting device 120 of the above embodiment may also be implemented as the computer device 200. The registration request device 110 and the verification request device 120 may be separate computer systems, or may be configured to perform registration and verification at the same location. Programs that realize the functions of the registration request device 110 and the verification request device 120 shown in FIGS. 5 and 11 are stored in the storage device 202, and the processor 201 reads out and executes the programs so that each of the above-described programs is executed. You may make it implement | achieve the registration request | requirement apparatus 110 and the collation request | requirement apparatus 120 of embodiment. The processor 201 of the registration request device 110 and the verification request device 120 acquires biometric information such as a fingerprint from a sensor (not shown) via the communication interface 204, and uses binary feature vectors X and Y respectively from the acquired biometric information. You may make it extract. Needless to say, the verification apparatus 150 of the embodiment may be realized by a program executed on a computer, as in FIG.
 なお、上記の特許文献1-4、非特許文献1の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 It should be noted that the disclosures of Patent Documents 1-4 and Non-Patent Document 1 described above are incorporated herein by 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.
10、110 登録要求装置
100 照合システム
102 サーバ
111 登録情報抽出部
112 テンプレート生成部
113 通信部
114 変換値生成部
20、120 照合要求装置
121 照合要求生成部
122 照合情報抽出部
123 レスポンス生成部
124 通信部
30、130 記憶装置
131 識別子管理部
132 登録データ生成部
133 登録データ記憶部
134 登録データ検索部
135 通信部
136 乱数生成部
137 暗号データ生成部
138 ハッシュ値生成部
40、140 照合装置
141 登録データ取得部
142 乱数生成部
143 暗号データ生成部
144 暗号化距離計算部
145 クエリ生成部
146 通信部
147 変換係数生成部
148 ハッシュ値生成部
50、150 検証装置
151 鍵生成部
152 復号鍵記憶部
153 クエリ検証部
154 検証結果出力部
155 通信部
156 登録データチェック部
200 コンピュータシステム(コンピュータ装置)
201 プロセッサ
202 記憶装置
203 表示装置
204 通信インタフェース
1531 復号部
1532 ハッシュ値生成部
1533 一致判定部
10, 110 Registration request device 100 Collation system 102 Server 111 Registration information extraction unit 112 Template generation unit 113 Communication unit 114 Conversion value generation unit 20, 120 Verification request device 121 Verification request generation unit 122 Verification information extraction unit 123 Response generation unit 124 Communication Units 30, 130 storage device 131 identifier management unit 132 registration data generation unit 133 registration data storage unit 134 registration data search unit 135 communication unit 136 random number generation unit 137 encryption data generation unit 138 hash value generation unit 40, 140 collation device 141 registration data Acquisition unit 142 Random number generation unit 143 Encryption data generation unit 144 Encryption distance calculation unit 145 Query generation unit 146 Communication unit 147 Conversion coefficient generation unit 148 Hash value generation unit 50, 150 Verification device 151 Key generation unit 152 Decryption key storage unit 153 Query Validation Unit 154 verification result output unit 155 communication unit 156 registration data check unit 200 computer system (computer device)
201 Processor 202 Storage Device 203 Display Device 204 Communication Interface 1531 Decoding Unit 1532 Hash Value Generation Unit 1533 Match Determination Unit

Claims (20)

  1.  登録要求装置から、登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置と、
     照合要求装置から照合要求を受けると、前記記憶装置に記憶された前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する照合装置と、
     前記照合装置から送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する前記照合要求装置と、
     検証装置と、
     を備え、
     前記照合装置は、
     前記照合要求装置から送信された前記暗号データと、前記記憶装置に記憶された前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
     前記距離が予め定められた閾値以下の非負整数値と一致する場合に前記演算式がとる値のハッシュ値を生成し、
     生成した前記暗号データと前記ハッシュ値をクエリとして前記検証装置に送信し、
     前記検証装置は、
     前記照合装置から送信された前記クエリを受け、前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する、ことを特徴とする照合システム。
    A storage device that receives and stores encrypted data obtained by encrypting the first calculation result and the second calculation result with respect to the elements of the first binary vector for registration from the registration requesting device;
    When a verification request is received from the verification requesting device, the encrypted data obtained by the calculation with the first random number is transmitted to the verification requesting device while the encrypted data of the first calculation result stored in the storage device is encrypted. A matching device to
    The encrypted data transmitted from the verification device is received, and the encrypted data obtained by the calculation with the binary second vector element for verification is transmitted to the verification device while the encrypted data is encrypted. A verification requesting device;
    A verification device;
    With
    The verification device is
    Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result stored in the storage device, the first vector and the second Generating encrypted data having a value based on a vector distance and a predetermined arithmetic expression relating to at least the first random number and the second random number;
    When the distance matches a non-negative integer value equal to or less than a predetermined threshold, a hash value of a value that the arithmetic expression takes is generated,
    Send the generated encrypted data and the hash value as a query to the verification device,
    The verification device includes:
    Receiving the query transmitted from the verification device, decrypting the encrypted data of the query with a decryption key to calculate a hash value of a decrypted value, and among the hash values of the query, a hash value of the decrypted value and A collation system characterized by determining whether or not there is an equal thing and determining acceptance or non-acceptance.
  2.  前記第1の乱数と、複数の前記第2の乱数を生成し、
     前記第1のベクトルの要素に関する前記第1の演算結果に前記第1の乱数を演算した演算結果を前記暗号鍵で暗号化した第1群の暗号データからなる第1のテンプレートと、
     前記第1のベクトルの要素に関する前記第2の演算結果と前記非負整数値と前記第1の乱数を演算した値にさらに前記第2の乱数を演算した値を、前記暗号鍵で暗号化した第2群の暗号データと、複数の前記第2の乱数のハッシュ値を対応させた第2のテンプレートと、
     を生成し、
     前記第1、第2のテンプレートを前記記憶装置に送信する前記登録要求装置を備え、
     前記記憶装置が、前記第1、第2のテンプレートを記憶部に記憶する、ことを特徴とする請求項1に記載の照合システム。
    Generating the first random number and a plurality of the second random numbers;
    A first template consisting of a first group of encrypted data obtained by encrypting an operation result obtained by calculating the first random number to the first operation result relating to the element of the first vector with the encryption key;
    A value obtained by further encrypting a value obtained by calculating the second random number to a value obtained by calculating the second operation result relating to the element of the first vector, the non-negative integer value, and the first random number is encrypted with the encryption key. A second template in which two groups of encrypted data are associated with a plurality of hash values of the second random numbers;
    Produces
    The registration requesting device for transmitting the first and second templates to the storage device;
    The collation system according to claim 1, wherein the storage device stores the first and second templates in a storage unit.
  3.  前記照合装置は、
     前記照合要求装置から照合要求を受けると、第3の乱数を作成し、
     前記記憶装置から、前記第1、第2のテンプレートを取得し、
     前記第1のテンプレートの前記第1群の暗号データに前記第3の乱数を演算した第3群の暗号データを生成して前記照合要求装置に送信し、
     前記照合要求装置は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のべクトルと前記第2のべクトルの距離の分割値に関する第4の暗号データとして求め、
     前記第4の暗号データを前記照合装置にレスポンスとして送信し、
     前記照合装置は、
     前記照合要求装置から送信された前記第4の暗号データから求めた暗号データと、前記第2のテンプレートの前記第2群の暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの距離と前記非負整数値との差分に、前記第1の乱数を演算した値に、前記第2の乱数を加算した値に、さらに、第4の乱数を演算して求まる前記演算式の値の暗号データである第5群の暗号データと、
     前記第5群の暗号データの各暗号データに対応させて、前記第2の乱数と前記第4の乱数との演算値であって、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値と、
     を生成し、
     生成した前記第5群の暗号データの各暗号データと、前記各暗号データに対応する前記ハッシュ値との組を含む前記クエリを、前記検証装置に送信し、
     前記検証装置は、
     前記照合装置から受信した前記クエリの前記第5群の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と、前記クエリの前記ハッシュ値とが等しいという条件が成り立つか否かチェックし、
     前記クエリのうち前記条件が成り立つ組が存在する場合に、受理とし、前記条件が成り立つ組が存在しない場合に、不受理とする、ことを特徴とする請求項2に記載の照合システム。
    The verification device is
    When a verification request is received from the verification requesting device, a third random number is generated,
    Obtaining the first and second templates from the storage device;
    Generating a third group of cipher data obtained by calculating the third random number in the first group of cipher data of the first template and transmitting the generated data to the verification requesting device;
    The verification requesting device includes:
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is related to the division value of the distance between the first vector and the second vector. As fourth encryption data,
    Sending the fourth encrypted data as a response to the verification device;
    The verification device is
    Based on the encrypted data obtained from the fourth encrypted data transmitted from the verification requesting device and the second group of encrypted data of the second template, the first vector is kept encrypted. And a difference between the distance between the second vector and the non-negative integer value, a value obtained by adding the second random number to a value obtained by calculating the first random number, and further calculating a fourth random number. A fifth group of encrypted data, which is encrypted data of the value of the arithmetic expression obtained by:
    The calculation value of the second random number and the fourth random number corresponding to each encrypted data of the fifth group of encrypted data, wherein the distance matches the non-negative integer value A hash value of the value taken by the expression,
    Produces
    Transmitting the query including a set of each encrypted data of the generated fifth group of encrypted data and the hash value corresponding to each encrypted data to the verification device;
    The verification device includes:
    The fifth group of encrypted data of the query received from the verification device is decrypted with the decryption key to calculate a hash value of the decrypted value, and the hash value of the decrypted value is equal to the hash value of the query Check whether the condition
    The collation system according to claim 2, wherein, when there is a set that satisfies the condition in the query, the query is accepted, and when there is no set that satisfies the condition, the query is not accepted.
  4.  前記照合装置は、前記照合要求装置からレスポンスとして送信された前記第4の暗号データから前記第3の乱数を外した暗号データと、前記第2のテンプレートの前記第2群の暗号データとを準同型演算して求めた暗号データを暗号化したまま前記第4の乱数を演算して、前記第5群の暗号データを求め、
     前記第2のテンプレートの前記第2の乱数のハッシュ値と、前記第4の乱数との準同型演算により前記第2の乱数と前記第4の乱数の演算値のハッシュ値を求める、ことを特徴とする請求項3に記載の照合システム。
    The collation device applies the cipher data obtained by removing the third random number from the fourth cipher data transmitted as a response from the collation request device, and the second group of cipher data of the second template. The fourth random number is calculated while encrypting the encrypted data obtained by the same type operation to obtain the fifth group of encrypted data,
    A hash value of the operation value of the second random number and the fourth random number is obtained by a homomorphic operation of the hash value of the second random number of the second template and the fourth random number. The collation system according to claim 3.
  5.  前記第1のベクトルの要素の前記第1の演算結果を暗号鍵で暗号化した第1群の暗号データと、第2の演算結果を暗号鍵で暗号化した第2の暗号データを、第1、第2のテンプレートとして前記記憶装置に送信する前記登録要求装置を備え、
     前記記憶装置は、前記登録要求装置から送信された前記第1、第2のテンプレートを記憶する、ことを特徴とする請求項1に記載の照合システム。
    A first group of encrypted data obtained by encrypting the first operation result of the element of the first vector with an encryption key, and second encrypted data obtained by encrypting the second operation result with an encryption key, The registration requesting device for transmitting to the storage device as a second template,
    The collation system according to claim 1, wherein the storage device stores the first and second templates transmitted from the registration requesting device.
  6.  前記照合装置は、
     前記照合要求装置から照合要求を受けると、前記第1の乱数を作成し、前記記憶装置から第1のテンプレートと前記第2のテンプレートを取得し、
     前記第1のテンプレートの前記第1群の暗号データに前記第1の乱数を演算した第3群の暗号データを前記照合要求装置に送信し、
     前記照合要求装置は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のベクトルと前記第2のべクトルの距離の分割値の第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信し、
     前記照合装置は、前記照合要求装置から前記第4の暗号データを受けると、前記第2の乱数を生成し、
     前記第2のテンプレートの前記第2の暗号データに前記第1の乱数を演算した暗号データと前記第4の暗号データから、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの前記距離と、前記第1の乱数と、前記第2の乱数を前記演算式にしたがって演算した第5の暗号データを作成し、前記第1の乱数と前記第2の乱数と前記非負整数値とから、前記距離が前記非負整数値と一致する場合に前記演算式がとる値のハッシュ値を求め、
     前記第5の暗号データと前記ハッシュ値を前記クエリとして、前記検証装置に送信し、
     前記検証装置は、
     前記照合装置から受信した前記クエリの前記第5の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、
     前記復号値のハッシュ値と等しい前記クエリの前記ハッシュ値が存在する場合、受理とし、存在しない場合、不受理とする、ことを特徴とする請求項5に記載の照合システム。
    The verification device is
    Upon receiving a verification request from the verification requesting device, the first random number is created, and the first template and the second template are acquired from the storage device,
    Transmitting the third group of encrypted data obtained by calculating the first random number to the first group of encrypted data of the first template to the verification requesting device;
    The verification requesting device includes:
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is the first of the division values of the distance between the first vector and the second vector. 4 is obtained as encrypted data, and the fourth encrypted data is transmitted as a response to the verification device,
    When the verification device receives the fourth encrypted data from the verification request device, the verification device generates the second random number,
    From the encrypted data obtained by calculating the first random number on the second encrypted data of the second template and the fourth encrypted data, the first vector and the second vector are encrypted without being encrypted. The fifth encrypted data obtained by computing the distance of the kuttle, the first random number, and the second random number according to the arithmetic expression is created, and the first random number, the second random number, and the non-negative integer are created. From the numerical value, when the distance matches the non-negative integer value, obtain a hash value of the value that the arithmetic expression takes,
    Sending the fifth encrypted data and the hash value as the query to the verification device;
    The verification device includes:
    Decrypting the fifth encrypted data of the query received from the verification device with the decryption key to calculate a hash value of the decrypted value;
    The collation system according to claim 5, wherein if the hash value of the query equal to the hash value of the decrypted value exists, it is accepted, and if it does not exist, it is rejected.
  7.  登録要求装置から登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置に接続される照合装置であって、
     照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第1の手段と、
     前記送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する前記照合要求装置から前記暗号データを受信する第2の手段と、
     前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
     前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成する第3の手段と、
     生成した前記暗号データと前記ハッシュ値をクエリとして検証装置に送信する第4の手段と、
     前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する前記検証装置から検証結果を受信する第5の手段と、
     を備えた、ことを特徴とする照合装置。
    A collation connected to a storage device that receives and stores encrypted data obtained by encrypting the first and second operation results with respect to elements of the first binary vector for registration from the registration requesting device with an encryption key. A device,
    A first means for receiving the verification request from the verification requesting device and transmitting the encrypted data obtained by the calculation with the first random number while encrypting the encrypted data of the first calculation result to the verification requesting device;
    The verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data A second means for receiving the encrypted data from:
    Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the distance between the first vector and the second vector is kept at least as encrypted. Generating encrypted data of a value based on a predetermined arithmetic expression relating to the first random number and the second random number;
    A third means for generating a hash value of a value taken by the arithmetic expression when the distance matches a non-negative integer value equal to or less than a predetermined threshold;
    A fourth means for transmitting the generated encrypted data and the hash value as a query to a verification device;
    Decrypting the encrypted data of the query with a decryption key to calculate a hash value of a decrypted value, and determining whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, Fifth means for receiving a verification result from the verification device for determining acceptance or non-acceptance;
    A collation device characterized by comprising:
  8.  前記記憶装置は、前記登録要求装置で生成された第1、第2のテンプレートを記憶し、 前記第1のテンプレートは、
     前記第1の乱数と、複数の前記第2の乱数と、前記第1のベクトルの要素に関する前記第1の演算結果に前記第1の乱数を演算した演算結果を前記暗号鍵で暗号化した第1群の暗号データを含み、
     前記第2のテンプレートは、
     前記第1のベクトルの要素に関する前記第2の演算結果と前記非負整数値と前記第1の乱数を演算した値にさらに前記第2の乱数を演算した値を、前記暗号鍵で暗号化した第2群の暗号データと、前記第2の乱数のハッシュ値を含み、
     前記第1の手段は、
     前記照合要求装置から照合要求を受けると、第3の乱数を作成し、前記記憶装置から、前記第1、第2のテンプレートを取得し、
     前記第1のテンプレートの前記第1群の暗号データに前記第3の乱数を演算した第3群の暗号データを生成して前記照合要求装置に送信し、
     前記第2の手段は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のべクトルと前記第2のべクトルの距離の分割値に関する第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信する前記照合要求装置から前記第4の暗号データを受信し、
     前記第3の手段は、
     前記照合要求装置から送信された前記第4の暗号データから求めた暗号データと、前記第2のテンプレートの前記第2群の暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの距離と前記非負整数値との差分に前記第1の乱数を演算した値に前記第2の乱数を加算した値に、さらに、第4の乱数を演算して求まる前記演算式の値の暗号データである第5群の暗号データと、
     前記第5群の暗号データの各暗号データに対応して、前記第2の乱数と前記第4の乱数との演算値であって、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値と、
     を生成し、
     前記第4の手段は、
     前記第3の手段が生成した前記第5群の暗号データの各暗号データと前記ハッシュ値との組を含む前記クエリを、前記検証装置に送信し、
     前記第5の手段は、
     前記クエリの前記第5群の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と前記クエリの前記ハッシュ値とが等しいという条件が成り立つか否かチェックし、前記クエリのうち、前記条件が成り立つ組が存在する場合に、受理とし、前記条件が成り立つ組が存在しない場合に、不受理と判定する前記検証装置から検証結果を受信する、ことを特徴とする請求項7に記載の照合装置。
    The storage device stores the first and second templates generated by the registration requesting device, and the first template is:
    The first random number, a plurality of the second random numbers, and the first operation result related to the elements of the first vector are encrypted with the encryption key, and the operation result obtained by calculating the first random number is encrypted. Including a group of encrypted data,
    The second template is
    A value obtained by further encrypting a value obtained by calculating the second random number to a value obtained by calculating the second operation result relating to the element of the first vector, the non-negative integer value, and the first random number is encrypted with the encryption key. Including two groups of encrypted data and a hash value of the second random number;
    The first means includes
    When a verification request is received from the verification request device, a third random number is created, and the first and second templates are acquired from the storage device,
    Generating a third group of cipher data obtained by calculating the third random number in the first group of cipher data of the first template and transmitting the generated data to the verification requesting device;
    The second means includes
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is related to the division value of the distance between the first vector and the second vector. Obtaining the fourth encrypted data from the verification requesting device that transmits the fourth encrypted data as a response to the verification device;
    The third means includes
    Based on the encrypted data obtained from the fourth encrypted data transmitted from the verification requesting device and the second group of encrypted data of the second template, the first vector is kept encrypted. And a difference between the distance between the second vector and the non-negative integer value, a value obtained by adding the second random number to a value obtained by calculating the first random number, and further calculating a fourth random number. A fifth group of encrypted data that is encrypted data of the value of the arithmetic expression;
    When the distance is equal to the non-negative integer value corresponding to each encrypted data of the fifth group of encrypted data, the calculated value is the second random number and the fourth random number. A hash value of the value taken by the expression,
    Produces
    The fourth means includes
    Transmitting the query including a set of each cryptographic data of the fifth group of cryptographic data generated by the third means and the hash value to the verification device;
    The fifth means includes
    Whether the fifth group of encrypted data of the query is decrypted with the decryption key to calculate a hash value of the decrypted value, and whether or not the condition that the hash value of the decrypted value is equal to the hash value of the query is satisfied Checking, and receiving a verification result from the verification device that determines accepting when there is a set that satisfies the condition in the query, and determining that it is unacceptable when there is no set that satisfies the condition. The collation apparatus according to claim 7, wherein the collation apparatus is characterized.
  9.  前記第3の手段は、
     前記照合要求装置からレスポンスとして送信された前記第4の暗号データから前記第3の乱数を外した暗号データと、前記第2のテンプレートの前記第2群の暗号データとを準同型演算して求めた暗号データを暗号化したまま前記第4の乱数を演算して、前記第5群の暗号データを求め、
     前記第2のテンプレートの前記第2の乱数のハッシュ値と、前記第4の乱数との準同型演算により前記第2の乱数と前記第4の乱数の演算値のハッシュ値を求める、ことを特徴とする請求項8に記載の照合装置。
    The third means includes
    Obtained by performing a homomorphic operation on encrypted data obtained by removing the third random number from the fourth encrypted data transmitted as a response from the verification requesting device and the second group of encrypted data of the second template. The fourth random number is calculated while encrypting the encrypted data to obtain the fifth group of encrypted data,
    A hash value of the operation value of the second random number and the fourth random number is obtained by a homomorphic operation of the hash value of the second random number of the second template and the fourth random number. The verification device according to claim 8.
  10.  前記記憶装置は、前記登録要求装置で生成された第1、第2のテンプレートを記憶し、 前記第1のテンプレートは、
     前記第1のベクトルの要素の前記第1の演算結果を暗号鍵で暗号化した第1群の暗号データを含み、
     前記第2のテンプレートは、
     前記第1のベクトルの要素の前記第2の演算結果を暗号鍵で暗号化した第2の暗号データを含み、
     前記第1の手段は、
     前記照合要求装置から照合要求を受けると、前記第1の乱数を作成し、前記記憶装置から第1のテンプレートと前記第2のテンプレートを取得し、前記第1のテンプレートの前記第1群の暗号データに前記第1の乱数を演算した第3群の暗号データを前記照合要求装置に送信し、
     前記第2の手段は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のベクトルと前記第2のべクトルの距離の分割値の第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信する前記照合要求装置から前記第4の暗号データを受信し、
     前記第3の手段は、
     前記照合要求装置から前記第4の暗号データを受けると、前記第2の乱数を生成し、前記第2のテンプレートの前記第2の暗号データに前記第1の乱数を演算した暗号データと前記第4の暗号データから、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの前記距離と、前記第1の乱数と、前記第2の乱数を前記演算式にしたがって演算した第5の暗号データを作成し、前記第1の乱数と前記第2の乱数と前記非負整数値とから、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を求め、
     前記第4の手段は、
     前記第5の暗号データと前記ハッシュ値を前記クエリとして、前記検証装置に送信し、
     前記第5の手段は、
     前記クエリの前記第5の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と等しい前記クエリの前記ハッシュ値が存在する場合、受理とし、存在しない場合、不受理を決定する前記検証装置から検証結果を受信する、ことを特徴とする請求項7に記載の照合装置。
    The storage device stores the first and second templates generated by the registration requesting device, and the first template is:
    A first group of encrypted data obtained by encrypting the first operation result of the elements of the first vector with an encryption key;
    The second template is
    Second encrypted data obtained by encrypting the second operation result of the element of the first vector with an encryption key;
    The first means includes
    Upon receipt of a collation request from the collation requesting device, the first random number is generated, the first template and the second template are acquired from the storage device, and the first group of ciphers of the first template is obtained. Transmitting the third group of encrypted data obtained by calculating the first random number to the data to the verification requesting device;
    The second means includes
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is the first of the division values of the distance between the first vector and the second vector. 4 and receiving the fourth encrypted data from the verification requesting device that transmits the fourth encrypted data as a response to the verification device;
    The third means includes
    When the fourth encrypted data is received from the verification requesting device, the second random number is generated, and the first encrypted data obtained by calculating the first random number on the second encrypted data of the second template and the second From the encryption data of 4, the distance between the first vector and the second vector, the first random number, and the second random number are calculated according to the arithmetic expression while being encrypted. A hash value of a value that the arithmetic expression takes when the fifth encrypted data is created and the distance matches the non-negative integer value from the first random number, the second random number, and the non-negative integer value Seeking
    The fourth means includes
    Sending the fifth encrypted data and the hash value as the query to the verification device;
    The fifth means includes
    The fifth encrypted data of the query is decrypted with the decryption key to calculate a hash value of a decrypted value, and if the hash value of the query equal to the hash value of the decrypted value exists, it is accepted and does not exist The verification apparatus according to claim 7, wherein a verification result is received from the verification apparatus that determines non-acceptance.
  11.  登録要求装置から、登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶装置に記憶する第1の工程と、
     照合装置が、照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第2の工程と、
     前記照合要求装置が、前記照合装置から送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを前記照合装置に送信する第3の工程と、
     前記照合装置が、前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
     前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成し、
     生成した前記暗号データと前記ハッシュ値をクエリとして検証装置に送信する第4の工程と、
     前記検証装置が、前記照合装置から送信された前記クエリを受け、前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する第5の工程と、
     を含む、ことを特徴とする照合方法。
    First, the encrypted data obtained by encrypting the first calculation result and the second calculation result relating to the elements of the first binary vector for registration from the registration requesting device with the encryption key is received and stored in the storage device. Process,
    When the collation device receives a collation request from the collation requesting device, the encryption data obtained by the operation with the first random number is transmitted to the collation requesting device while the encrypted data of the first calculation result is encrypted. And the process of
    The verification requesting device receives the encrypted data transmitted from the verification device, and encrypts the encrypted data obtained by calculation with the binary second vector element for verification while encrypting the encrypted data. A third step of transmitting to the verification device;
    Based on the cipher data transmitted from the collation requesting device and the cipher data of the second calculation result, the collation device encrypts the first vector and the second vector while encrypting them. Generating encrypted data having a value based on a distance and a predetermined arithmetic expression relating to at least the first random number and the second random number;
    When the distance matches a non-negative integer value equal to or less than a predetermined threshold value, a hash value of the value taken by the arithmetic expression is generated,
    A fourth step of transmitting the generated encrypted data and the hash value as a query to a verification device;
    The verification device receives the query transmitted from the verification device, decrypts the encrypted data of the query with a decryption key, calculates a hash value of a decrypted value, and among the hash values of the query, the decryption A fifth step of determining whether there is a value equal to the hash value of the value and determining acceptance or non-acceptance;
    The collation method characterized by including.
  12.  前記第1の工程において、
     前記登録要求装置は、前記第1の乱数と、複数の前記第2の乱数を生成し、前記第1のベクトルの要素に関する前記第1の演算結果に前記第1の乱数を演算した演算結果を前記暗号鍵で暗号化した第1群の暗号データからなる第1のテンプレートと、
     前記第1のベクトルの要素に関する前記第2の演算結果と前記非負整数値と前記第1の乱数を演算した値にさらに前記第2の乱数を演算した値を、前記暗号鍵で暗号化した第2群の暗号データと、前記第2の乱数のハッシュ値を対応させた第2のテンプレートを生成し、前記記憶装置に送信し、
     前記記憶装置が、前記第1、第2のテンプレートを記憶部に記憶する、ことを特徴とする請求項11に記載の照合方法。
    In the first step,
    The registration requesting device generates the first random number and a plurality of the second random numbers, and calculates a calculation result obtained by calculating the first random number as the first calculation result related to an element of the first vector. A first template comprising a first group of encrypted data encrypted with the encryption key;
    A value obtained by further encrypting a value obtained by calculating the second random number to a value obtained by calculating the second operation result relating to the element of the first vector, the non-negative integer value, and the first random number is encrypted with the encryption key. Generating a second template in which two groups of encrypted data and the hash value of the second random number are associated with each other, and transmitting the second template to the storage device;
    The collation method according to claim 11, wherein the storage device stores the first and second templates in a storage unit.
  13.  前記第2の工程において、
     前記照合装置は、前記照合要求装置から照合要求を受けると、第3の乱数を作成し、前記記憶装置から、前記第1、第2のテンプレートを取得し、
     前記第1のテンプレートの前記第1群の暗号データに前記第3の乱数を演算した第3群の暗号データを生成して前記照合要求装置に送信し、
     前記第3の工程において、
     前記照合要求装置は、前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のべクトルと前記第2のべクトルの距離の分割値に関する第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信し、
     前記第4の工程において、
     前記照合装置は、前記照合要求装置から送信された前記第4の暗号データから求めた暗号データと、前記第2のテンプレートの前記第2群の暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの距離と前記非負整数値との差分に前記第1の乱数を演算した値に前記第2の乱数を加算した値に、さらに、第4の乱数を演算して求まる前記演算式の値の暗号データである第5群の暗号データと、
     前記第2の乱数と前記第4の乱数との演算値であり、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値と、を生成し、
     生成した前記第5群の暗号データの各暗号データと対応する前記ハッシュ値との組を含む前記クエリを、前記検証装置に送信し、
     前記第5の工程において、
     前記検証装置は、前記照合装置から受信した前記クエリの前記第5群の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と前記クエリの前記ハッシュ値とが等しいという条件が成り立つか否かチェックし、
     前記クエリのうち、前記条件が成り立つ組が存在する場合に、受理とし、前記条件が成り立つ組が存在しない場合に、不受理と判定する、ことを特徴とする請求項12に記載の照合方法。
    In the second step,
    When receiving the verification request from the verification requesting device, the verification device creates a third random number, acquires the first and second templates from the storage device,
    Generating a third group of cipher data obtained by calculating the third random number in the first group of cipher data of the first template and transmitting the generated data to the verification requesting device;
    In the third step,
    The collation requesting device calculates the sum of the operation results of the second vector element and the third group of encrypted data transmitted from the collating device as the first vector and the second vector. As the fourth encrypted data related to the division value of the distance, and transmits the fourth encrypted data as a response to the verification device,
    In the fourth step,
    The collation device is based on the cipher data obtained from the fourth cipher data transmitted from the collation request device and the second group of cipher data of the second template, and encrypts them, A value obtained by adding the second random number to a value obtained by calculating the first random number to the difference between the distance between the first vector and the second vector and the non-negative integer value, and a fourth random number Encryption data of the fifth group, which is encryption data of the value of the arithmetic expression obtained by calculating
    A calculation value of the second random number and the fourth random number, and a hash value of a value taken by the calculation formula when the distance matches the non-negative integer value,
    Transmitting the query including a set of the hash data corresponding to each encrypted data of the generated fifth group of encrypted data to the verification device;
    In the fifth step,
    The verification device decrypts the encrypted data of the fifth group of the query received from the verification device with the decryption key to calculate a hash value of the decrypted value, and the hash value of the decrypted value and the hash of the query Check whether the condition is equal to the value,
    The collation method according to claim 12, wherein, in the query, accepting is performed when there is a set that satisfies the condition, and determining non-acceptance when there is no set that satisfies the condition.
  14.  前記第4の工程において、
     前記照合装置は、前記照合要求装置からレスポンスとして送信された前記第4の暗号データから前記第3の乱数を外した暗号データと、前記第2のテンプレートの前記第2群の暗号データとを準同型演算して求めた暗号データを暗号化したまま前記第4の乱数を演算して、前記第5群の暗号データを求め、
     前記第2のテンプレートの前記第2の乱数のハッシュ値と、前記第4の乱数との準同型演算により前記第2の乱数と前記第4の乱数の演算値のハッシュ値を求める、ことを特徴とする請求項13に記載の照合方法。
    In the fourth step,
    The collation device applies the cipher data obtained by removing the third random number from the fourth cipher data transmitted as a response from the collation request device, and the second group of cipher data of the second template. The fourth random number is calculated while encrypting the encrypted data obtained by the same type operation to obtain the fifth group of encrypted data,
    A hash value of the operation value of the second random number and the fourth random number is obtained by a homomorphic operation of the hash value of the second random number of the second template and the fourth random number. The collation method according to claim 13.
  15.  前記第1の工程において、
     前記登録要求装置は、前記第1のベクトルの要素の前記第1の演算結果を暗号鍵で暗号化した第1群の暗号データと、第2の演算結果を暗号鍵で暗号化した第2の暗号データを、第1、第2のテンプレートとして前記記憶装置に送信し、
     前記記憶装置は、前記登録要求装置から送信された前記第1、第2のテンプレートを記憶する、ことを特徴とする請求項11に記載の照合方法。
    In the first step,
    The registration requesting device includes a first group of encrypted data obtained by encrypting the first operation result of the first vector element with an encryption key, and a second group obtained by encrypting a second operation result with the encryption key. Sending the encrypted data as the first and second templates to the storage device;
    The collation method according to claim 11, wherein the storage device stores the first and second templates transmitted from the registration requesting device.
  16.  前記第2の工程において、
     前記照合装置は、前記照合要求装置から照合要求を受けると、前記第1の乱数を作成し、前記記憶装置から第1のテンプレートと前記第2のテンプレートを取得し、前記第1のテンプレートの前記第1群の暗号データに前記第1の乱数を演算した第3群の暗号データを前記照合要求装置に送信し、
     前記第3の工程において、
     前記照合要求装置は、前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のベクトルと前記第2のべクトルの距離の分割値の第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信し、
     前記第4の工程において、
     前記照合装置は、前記照合要求装置から前記第4の暗号データを受けると、前記第2の乱数を生成し、前記第2のテンプレートの前記第2の暗号データに前記第1の乱数を演算した暗号データと前記第4の暗号データから、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの前記距離と、前記第1の乱数と、前記第2の乱数を前記演算式にしたがって演算した第5の暗号データを作成し、前記第1の乱数と前記第2の乱数と前記非負整数値とから、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を求め、
     前記第5の暗号データと前記ハッシュ値を前記クエリとして、前記検証装置に送信し、
     前記第5の工程において、
     前記検証装置は、
     前記照合装置から受信した前記クエリの前記第5の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、
     前記復号値のハッシュ値と等しい前記クエリの前記ハッシュ値が存在する場合、受理とし、存在しない場合、不受理を決定すると、ことを特徴とする請求項15に記載の照合方法。
    In the second step,
    When the verification device receives a verification request from the verification request device, the verification device creates the first random number, acquires the first template and the second template from the storage device, and stores the first template in the first template. Transmitting the third group of encrypted data obtained by calculating the first random number to the first group of encrypted data to the verification requesting device;
    In the third step,
    The verification requesting device calculates the sum of the operation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device, and calculates the sum of the first vector and the second vector. Obtained as fourth encrypted data of the distance division value, and transmits the fourth encrypted data as a response to the verification device;
    In the fourth step,
    When the verification device receives the fourth encrypted data from the verification requesting device, the verification device generates the second random number, and calculates the first random number for the second encrypted data of the second template. From the encrypted data and the fourth encrypted data, the calculation is performed by calculating the distance between the first vector and the second vector, the first random number, and the second random number while encrypting them. When the fifth encrypted data calculated according to the formula is created, and the distance matches the non-negative integer value from the first random number, the second random number, and the non-negative integer value, the calculation formula is Find the hash value of the value
    Sending the fifth encrypted data and the hash value as the query to the verification device;
    In the fifth step,
    The verification device includes:
    Decrypting the fifth encrypted data of the query received from the verification device with the decryption key to calculate a hash value of the decrypted value;
    The collation method according to claim 15, wherein if the hash value of the query that is equal to the hash value of the decrypted value exists, the query is accepted, and if it does not exist, non-acceptance is determined.
  17.  登録要求装置から登録用の二値の第1のベクトルの要素に関する第1の演算結果と第2の演算結果を暗号鍵でそれぞれ暗号化した暗号データを受け取って記憶する記憶装置に接続されるコンピュータに、
     照合要求装置から照合要求を受けると、前記第1の演算結果の前記暗号データを暗号化したまま第1の乱数との演算で得た暗号データを照合要求装置に送信する第1の処理と、
     前記送信された前記暗号データを受け、前記暗号データを暗号化したまま、照合用の二値の第2のベクトルの要素との演算で得た暗号データを照合装置に送信する前記照合要求装置から前記暗号データを受信する第2の処理と、
     前記照合要求装置から送信された前記暗号データと前記第2の演算結果の前記暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のベクトルの距離と、少なくとも前記第1の乱数および第2の乱数に関する予め定められた演算式に基づく値の暗号データを生成し、さらに、
     前記距離が予め定められた閾値以下の非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を生成する第3の処理と、
     生成した前記暗号データと前記ハッシュ値をクエリとして検証装置に送信する第4の処理と、
     前記クエリの前記暗号データを復号鍵で復号して復号値のハッシュ値を計算し、前記クエリの前記ハッシュ値のうち、前記復号値のハッシュ値と等しいものが存在するか否かを判定し、受理、不受理を決定する前記検証装置から検証結果を受信する第5の処理と、
     を実行させるプログラム。
    A computer connected to a storage device that receives and stores encrypted data obtained by encrypting the first calculation result and the second calculation result with respect to the elements of the first binary vector for registration from the registration requesting device with an encryption key. In addition,
    A first process for receiving the verification request from the verification requesting device and transmitting the encrypted data obtained by the calculation with the first random number while encrypting the encrypted data of the first calculation result to the verification requesting device;
    From the verification request device that receives the transmitted encrypted data and transmits the encrypted data obtained by the calculation with the binary second vector element for verification to the verification device while encrypting the encrypted data. A second process of receiving the encrypted data;
    Based on the encrypted data transmitted from the verification requesting device and the encrypted data of the second calculation result, the distance between the first vector and the second vector is kept at least as encrypted. Generating encrypted data of a value based on a predetermined arithmetic expression relating to the first random number and the second random number;
    A third process of generating a hash value of a value taken by the arithmetic expression when the distance matches a non-negative integer value equal to or less than a predetermined threshold;
    A fourth process of transmitting the generated encrypted data and the hash value as a query to a verification device;
    Decrypting the encrypted data of the query with a decryption key to calculate a hash value of a decrypted value, and determining whether there is a hash value equal to the hash value of the decrypted value among the hash values of the query, A fifth process of receiving a verification result from the verification device for determining acceptance or non-acceptance;
    A program that executes
  18.  前記記憶装置は、前記登録要求装置で生成された第1、第2のテンプレートを記憶し、 前記第1のテンプレートは、
     前記第1の乱数と、複数の前記第2の乱数と、前記第1のベクトルの要素に関する前記第1の演算結果に前記第1の乱数を演算した演算結果を前記暗号鍵で暗号化した第1群の暗号データを含み、
     前記第2のテンプレートは、
     前記第1のベクトルの要素に関する前記第2の演算結果と前記非負整数値と前記第1の乱数を演算した値にさらに前記第2の乱数を演算した値を、前記暗号鍵で暗号化した第2群の暗号データと、
     前記第2の乱数のハッシュ値を含み、
     前記第1の処理は、
     前記照合要求装置から照合要求を受けると、第3の乱数を作成し、前記記憶装置から、前記第1、第2のテンプレートを取得し、
     前記第1のテンプレートの前記第1群の暗号データに前記第3の乱数を演算した第3群の暗号データを生成して前記照合要求装置に送信し、
     前記第2の処理は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のべクトルと前記第2のべクトルの距離の分割値に関する第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信する前記照合要求装置から前記第4の暗号データを受信し、
     前記第3の処理は、
     前記照合要求装置から送信された前記第4の暗号データから求めた暗号データと、前記第2のテンプレートの前記第2群の暗号データとに基づき、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの距離と前記非負整数値との差分に前記第1の乱数を演算した値に前記第2の乱数を加算した値に、さらに、第4の乱数を演算して求まる前記演算式の値の暗号データである第5群の暗号データと、
     前記第5群の暗号データの各暗号データに対応して、前記第2の乱数と前記第4の乱数との演算値であって、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値と、
     を生成し、
     前記第4の処理は、
     前記第3の処理が生成した前記第5群の暗号データの各暗号データと前記ハッシュ値との組を含む前記クエリを、前記検証装置に送信し、
     前記第5の処理は、
     前記クエリの前記第5群の暗号データの各暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と前記クエリの前記ハッシュ値とが等しいという条件が成り立つか否かチェックし、前記クエリのうち、前記条件が成り立つ組が存在する場合に、受理とし、前記条件が成り立つ組が存在しない場合に、不受理と判定する前記検証装置から検証結果を受信する、請求項17に記載のプログラム。
    The storage device stores the first and second templates generated by the registration requesting device, and the first template is:
    The first random number, a plurality of the second random numbers, and the first operation result related to the elements of the first vector are encrypted with the encryption key, and the operation result obtained by calculating the first random number is encrypted. Including a group of encrypted data,
    The second template is
    A value obtained by further encrypting a value obtained by calculating the second random number to a value obtained by calculating the second operation result relating to the element of the first vector, the non-negative integer value, and the first random number is encrypted with the encryption key. Two groups of encrypted data;
    Including a hash value of the second random number;
    The first process includes
    When a verification request is received from the verification request device, a third random number is created, and the first and second templates are acquired from the storage device,
    Generating a third group of cipher data obtained by calculating the third random number in the first group of cipher data of the first template and transmitting the generated data to the verification requesting device;
    The second process includes
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is related to the division value of the distance between the first vector and the second vector. Obtaining the fourth encrypted data from the verification requesting device that transmits the fourth encrypted data as a response to the verification device;
    The third process includes
    Based on the encrypted data obtained from the fourth encrypted data transmitted from the verification requesting device and the second group of encrypted data of the second template, the first vector is kept encrypted. And a difference between the distance between the second vector and the non-negative integer value, a value obtained by adding the second random number to a value obtained by calculating the first random number, and further calculating a fourth random number. A fifth group of encrypted data that is encrypted data of the value of the arithmetic expression;
    When the distance is equal to the non-negative integer value corresponding to each encrypted data of the fifth group of encrypted data, the calculated value is the second random number and the fourth random number. A hash value of the value taken by the expression,
    Produces
    The fourth process includes
    Transmitting the query including a set of each encrypted data and the hash value of the fifth group of encrypted data generated by the third process to the verification device;
    The fifth process includes
    Each encrypted data of the fifth group of encrypted data of the query is decrypted with the decryption key to calculate a hash value of a decrypted value, and a condition that the hash value of the decrypted value and the hash value of the query are equal Check whether the condition is satisfied, and accept the verification result when there is a pair that satisfies the condition, and receive the verification result from the verification device that determines that the condition is not satisfied when the combination that satisfies the condition does not exist The program according to claim 17.
  19.  前記第3の処理は、
     前記照合要求装置からレスポンスとして送信された前記第4の暗号データから前記第3の乱数を外した暗号データと、前記第2のテンプレートの前記第2群の暗号データとを準同型演算して求めた暗号データを暗号化したまま前記第4の乱数を演算して、前記第5群の暗号データを求め、
     前記第2のテンプレートの前記第2の乱数のハッシュ値と、前記第4の乱数との準同型演算により前記第2の乱数と前記第4の乱数の演算値のハッシュ値を求める、ことを特徴とする請求項18に記載のプログラム。
    The third process includes
    Obtained by performing a homomorphic operation on encrypted data obtained by removing the third random number from the fourth encrypted data transmitted as a response from the verification requesting device and the second group of encrypted data of the second template. The fourth random number is calculated while encrypting the encrypted data to obtain the fifth group of encrypted data,
    A hash value of the operation value of the second random number and the fourth random number is obtained by a homomorphic operation of the hash value of the second random number of the second template and the fourth random number. The program according to claim 18.
  20.  前記記憶装置は、前記登録要求装置で生成された第1、第2のテンプレートを記憶し、 前記第1のテンプレートは、
     前記第1のベクトルの要素の前記第1の演算結果を暗号鍵で暗号化した第1群の暗号データを含み、
     前記第2のテンプレートは、
     前記第1のベクトルの要素の前記第2の演算結果を暗号鍵で暗号化した第2の暗号データを含み、
     前記第1の処理は、
     前記照合要求装置から照合要求を受けると、前記第1の乱数を作成し、前記記憶装置から第1のテンプレートと前記第2のテンプレートを取得し、前記第1のテンプレートの前記第1群の暗号データに前記第1の乱数を演算した第3群の暗号データを前記照合要求装置に送信し、
     前記第2の処理は、
     前記第2のベクトルの要素と、前記照合装置から送信された前記第3群の暗号データとの演算結果の和を、前記第1のベクトルと前記第2のべクトルの距離の分割値の第4の暗号データとして求め、前記第4の暗号データを前記照合装置にレスポンスとして送信する前記照合要求装置から前記第4の暗号データを受信し、
     前記第3の処理は、
     前記照合要求装置から前記第4の暗号データを受けると、前記第2の乱数を生成し、前記第2のテンプレートの前記第2の暗号データに前記第1の乱数を演算した暗号データと前記第4の暗号データから、これらを暗号化したまま、前記第1のベクトルと前記第2のべクトルの前記距離と、前記第1の乱数と、前記第2の乱数を前記演算式にしたがって演算した第5の暗号データを作成し、前記第1の乱数と前記第2の乱数と前記非負整数値とから、前記距離が前記非負整数値と一致するとした場合に前記演算式がとる値のハッシュ値を求め、
     前記第4の処理は、
     前記第5の暗号データと前記ハッシュ値を前記クエリとして、前記検証装置に送信し、
     前記第5の処理は、
     前記クエリの前記第5の暗号データを前記復号鍵で復号して復号値のハッシュ値を計算し、前記復号値のハッシュ値と等しい前記クエリの前記ハッシュ値が存在する場合、受理とし、存在しない場合、不受理を決定する前記検証装置から検証結果を受信する、ことを特徴とする請求項17に記載のプログラム。
    The storage device stores the first and second templates generated by the registration requesting device, and the first template is:
    A first group of encrypted data obtained by encrypting the first operation result of the elements of the first vector with an encryption key;
    The second template is
    Second encrypted data obtained by encrypting the second operation result of the element of the first vector with an encryption key;
    The first process includes
    Upon receipt of a collation request from the collation requesting device, the first random number is generated, the first template and the second template are acquired from the storage device, and the first group of ciphers of the first template is obtained. Transmitting the third group of encrypted data obtained by calculating the first random number to the data to the verification requesting device;
    The second process includes
    The sum of the calculation results of the elements of the second vector and the third group of encrypted data transmitted from the verification device is the first of the division values of the distance between the first vector and the second vector. 4 and receiving the fourth encrypted data from the verification requesting device that transmits the fourth encrypted data as a response to the verification device;
    The third process includes
    When the fourth encrypted data is received from the verification requesting device, the second random number is generated, and the first encrypted data obtained by calculating the first random number on the second encrypted data of the second template and the second From the encryption data of 4, the distance between the first vector and the second vector, the first random number, and the second random number are calculated according to the arithmetic expression while being encrypted. A hash value of a value that the arithmetic expression takes when the fifth encrypted data is created and the distance matches the non-negative integer value from the first random number, the second random number, and the non-negative integer value Seeking
    The fourth process includes
    Sending the fifth encrypted data and the hash value as the query to the verification device;
    The fifth process includes
    The fifth encrypted data of the query is decrypted with the decryption key to calculate a hash value of a decrypted value, and if the hash value of the query equal to the hash value of the decrypted value exists, it is accepted and does not exist 18. The program according to claim 17, wherein a verification result is received from the verification device that determines non-acceptance.
PCT/JP2018/011049 2017-03-21 2018-03-20 Collating system, method, device, and program WO2018174063A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-054406 2017-03-21
JP2017054406 2017-03-21

Publications (1)

Publication Number Publication Date
WO2018174063A1 true WO2018174063A1 (en) 2018-09-27

Family

ID=63585433

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/011049 WO2018174063A1 (en) 2017-03-21 2018-03-20 Collating system, method, device, and program

Country Status (1)

Country Link
WO (1) WO2018174063A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220131698A1 (en) * 2020-10-23 2022-04-28 Visa International Service Association Verification of biometric templates for privacy preserving authentication
WO2022130528A1 (en) * 2020-12-16 2022-06-23 日本電気株式会社 Recovery verification system, collation system, recovery verification method, and non-temporary computer readable medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365229A1 (en) * 2013-02-01 2015-12-17 Morpho Method of xor homomorphic encryption and secure calculation of a hamming distance
JP2016118984A (en) * 2014-12-22 2016-06-30 富士通株式会社 Information processing method, information processing program, and information processing apparatus
JP2016131335A (en) * 2015-01-14 2016-07-21 富士通株式会社 Information processing method, information processing program and information processing device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150365229A1 (en) * 2013-02-01 2015-12-17 Morpho Method of xor homomorphic encryption and secure calculation of a hamming distance
JP2016118984A (en) * 2014-12-22 2016-06-30 富士通株式会社 Information processing method, information processing program, and information processing apparatus
JP2016131335A (en) * 2015-01-14 2016-07-21 富士通株式会社 Information processing method, information processing program and information processing device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIGO, HARUNA ET AL.: "Privacy-preserving biometric authentication method of dealing with binary vector-type biometric information", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, 2017, pages 1 - 7 *
ISSHIKI, TOSHIYUKI ET AL.: "Effective privacy-preserving biometric authentication method having resistance against hill-climbing attack", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, January 2017 (2017-01-01), pages 1 - 7 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220131698A1 (en) * 2020-10-23 2022-04-28 Visa International Service Association Verification of biometric templates for privacy preserving authentication
US11546164B2 (en) * 2020-10-23 2023-01-03 Visa International Service Association Verification of biometric templates for privacy preserving authentication
US20230120343A1 (en) * 2020-10-23 2023-04-20 Visa International Service Association Verification of biometric templates for privacy preserving authentication
US11831780B2 (en) 2020-10-23 2023-11-28 Visa International Service Association Verification of biometric templates for privacy preserving authentication
WO2022130528A1 (en) * 2020-12-16 2022-06-23 日本電気株式会社 Recovery verification system, collation system, recovery verification method, and non-temporary computer readable medium

Similar Documents

Publication Publication Date Title
JP7127543B2 (en) Matching system, method, device and program
JP5562687B2 (en) Securing communications sent by a first user to a second user
US8930704B2 (en) Digital signature method and system
US20190116180A1 (en) Authentication system, authentication method, and program
JP6229716B2 (en) Verification system, node, verification method and program
JP6451938B2 (en) Ciphertext verification system, method, and program
WO2020121460A1 (en) Check system, client and server
US10503915B2 (en) Encrypted text verification system, method and recording medium
JP7231023B2 (en) Verification system, client and server
JPWO2014185450A1 (en) Verification system, node, verification method and program
Tbatou et al. A New Mutuel Kerberos Authentication Protocol for Distributed Systems.
JP6738061B2 (en) Ciphertext verification system, method, and recording medium
CN112351037A (en) Information processing method and device for secure communication
Li et al. Privacy-aware secure anonymous communication protocol in CPSS cloud computing
Pathak et al. Secure authentication using zero knowledge proof
WO2018174063A1 (en) Collating system, method, device, and program
Sharma et al. Multiuser searchable encryption with token freshness verification
KR101217491B1 (en) A method for searching keyword based on public key
JP5799635B2 (en) ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM
CN116055136A (en) Secret sharing-based multi-target authentication method
Rasmussen et al. Weak and strong deniable authenticated encryption: on their relationship and applications
CN112511544A (en) Optimization method for authentication protocol in multi-server environment
WO2017170780A1 (en) Cryptogram collation system, node device, cryptogram collation method, and program
Chaudhari et al. Secure and Verifiable Multi-Party Computation Using Indistinguishability Obfuscation
Wang et al. CPPABK: conditional privacy-preserving authentication scheme for VANETs based on the key derivation algorithm

Legal Events

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

Ref document number: 18771134

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18771134

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP