WO2020121459A1 - 認証システム、クライアントおよびサーバ - Google Patents

認証システム、クライアントおよびサーバ Download PDF

Info

Publication number
WO2020121459A1
WO2020121459A1 PCT/JP2018/045777 JP2018045777W WO2020121459A1 WO 2020121459 A1 WO2020121459 A1 WO 2020121459A1 JP 2018045777 W JP2018045777 W JP 2018045777W WO 2020121459 A1 WO2020121459 A1 WO 2020121459A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
server
information
certificate
client
Prior art date
Application number
PCT/JP2018/045777
Other languages
English (en)
French (fr)
Inventor
春菜 福田
寿幸 一色
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2018/045777 priority Critical patent/WO2020121459A1/ja
Priority to US17/311,475 priority patent/US11909892B2/en
Priority to JP2020559624A priority patent/JP7235055B2/ja
Publication of WO2020121459A1 publication Critical patent/WO2020121459A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Definitions

  • the present invention relates to an authentication system, an authentication method, and a client, a server, a client program, and a server program applied to the authentication system.
  • Biometric authentication is an example of authentication. "Biometric authentication” is a method of personal authentication that checks whether the registered person and the authenticated person match by comparing the registered person's biological information with the authenticated person's biological information. is there.
  • biological information is data extracted from some characteristics of an individual regarding the body or behavior, or data generated by converting the extracted data. This data is sometimes called a feature amount.
  • the “template” is data that is stored in advance for biometric authentication and that is generated from biometric information of the registered person (hereinafter referred to as registration information).
  • FIDO Fast Identity Online
  • FIDO can be said to be authentication that performs verification regarding biometric information and verification regarding possession of a signature key (that is, authentication using two factors).
  • the server In the authentication using two factors such as FIDO, the server succeeds in authenticating the person to be authenticated even if the client does not actually determine whether the matching information and the registration information match. It may happen that a decision is made.
  • the present invention in the case of performing authentication using two factors, it is determined that the authentication of the person to be authenticated has succeeded, although it has not been determined whether the matching information and the registration information match. It is an object of the present invention to provide an authentication system, an authentication method, and a client, a server, a client program, and a server program applied to the authentication system that can prevent such a situation.
  • An authentication system is an authentication system including a client, and based on a concealment index obtained by concealing an index indicating proximity of registration information and verification information calculated by the client, the verification information and Using a determination unit that determines whether or not the registration information matches, a message transmission unit that transmits a message to the client, a first verification key, the message, and a signature generated in the client, If the signature determination unit that determines whether the signature is a correct signature and the verification information and the registration information match each other, and if the signature is determined to be a correct signature, authentication is performed.
  • An authentication determination unit that determines that the client has succeeded, the client is a confidential information storage unit that stores the confidential information that is the secret of the registration information, the collation information, and based on the confidential information, It is characterized by comprising a confidentiality index calculating unit for calculating the confidentiality index and a signature generation unit for generating the signature based on the message using a signature key.
  • the client according to the present invention is based on the confidential information storage unit for storing the confidential information in which the registered information is confidential, the collation information input for collating the registered information, and the confidential information.
  • the concealment index calculation unit that calculates a concealment index that conceals the index indicating the proximity of the registration information and the verification information, and the verification information and the registration information based on the concealment index.
  • the server determines that they match, the server determines that the signature generation unit that generates a signature based on the given message using the signature key and the verification information and the registration information match.
  • a signature output unit that outputs the certificate generated by the server and the signature.
  • the server determines whether or not the collation information and the registration information match based on a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information calculated by the client.
  • a certificate generation unit that generates a certificate using a certification key when it is determined that the collation information and the registration information match.
  • the server when the message sending unit that sends a message to the client and the matching information and the registration information are determined to match, the client creates a signature generated based on the message using the signature key.
  • a signature determination unit that acquires and uses the first verification key, the message, and the signature to determine whether the signature is a correct signature, and the verification information and the registration information are determined to match.
  • the certificate is generated, a certificate generated by using the certification key is acquired, and the second verification key and the certificate are used to determine whether the certificate is a correct certificate or not.
  • an authentication determining unit that determines that the authentication is successful when the certificate is determined to be a correct certificate and the signature is determined to be a correct signature.
  • the server determines whether or not the collation information and the registration information match based on a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information calculated by the client.
  • a determination unit that determines whether or not the message, a message transmission unit that transmits a message to the client, and if the client determines that the collation information and the registration information match, the client generates a signature key based on the message.
  • a signature determination unit that determines whether the signature is a correct signature by using the verification key, the message, and the signature, and that the verification information and the registration information match. Further, when it is determined that the signature is a correct signature, the authentication determination unit determines that the authentication is successful.
  • the server determines whether or not the collation information and the registration information match based on a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information calculated by the client. And a determination unit that determines whether or not a signature generated by the client based on a message given from a predetermined server is determined to match the verification information and the registration information. And a signature sending unit for sending to the.
  • the client provided with the confidential information storage unit that stores the confidential information in which the registration information is confidential is input by the client for collation with the registration information, and the confidential information. And calculating a concealment index by concealing an index indicating the proximity of the registration information and the verification information based on the information, and a predetermined server, based on the concealment index, the verification information and the registration.
  • the client determines that the collation information and the registration information are If it is determined that they match, a signature key is used to generate a signature based on the message, and the predetermined server, or a server different from the predetermined server, receives the first verification key and the message.
  • the signature is used to determine whether the signature is a correct signature, and when it is determined that the verification information and the registration information match, and the signature is determined to be a correct signature. It is characterized in that the authentication is determined to be successful.
  • a client program is a client program that is installed in a computer that operates as a client and that includes a confidential information storage unit that stores confidential information in which registration information is confidential, Concealment for calculating a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information based on the collation information input for collation with the registration information and the concealment information.
  • Encryption index calculation processing a signature for generating a signature based on a given message using a signature key when the server determines that the collation information and the registration information match based on the anonymity index Generating a certificate generated by the server and a signature output process for outputting the signature when the server determines that the collation information and the registration information match. ..
  • the server program according to the present invention is a server program installed in a computer that operates as a server, in which an index indicating the closeness of registration information and collation information calculated by a client is concealed in the computer. Based on the encrypted anonymity index, a determination process of determining whether the matching information and the registration information match, and a proof key when it is determined that the matching information and the registration information match. It is characterized in that a certificate generation process for generating a certificate by using is executed.
  • the server program according to the present invention is a server program installed in a computer that operates as a server, and it is determined that the transmission process for transmitting a message to the client and the matching information and the registration information match with the computer.
  • the client uses the signature key to obtain a signature generated based on the message
  • the client uses the first verification key, the message, and the signature to determine whether the signature is a correct signature.
  • Signature determination processing for determining, obtaining a certificate generated using a proof key when it is determined that the collation information and the registration information match, using the second verification key and the certificate, Certificate determination processing for determining whether the certificate is a correct certificate, and when the certificate is determined to be a correct certificate, and the signature is determined to be a correct signature
  • the authentication determination process is performed to determine that the authentication is successful.
  • the server program according to the present invention is a server program installed in a computer that operates as a server, in which an index indicating the closeness of registration information and collation information calculated by a client is concealed in the computer.
  • the server program according to the present invention is a server program installed in a computer that operates as a server, in which an index indicating the closeness of registration information and collation information calculated by a client is concealed in the computer. Based on the encrypted anonymity index, a determination process of determining whether the collation information and the registration information match, and a signature generated by the client based on a message given from a predetermined server, On the condition that it is determined that the collation information and the registration information match, a signature transmission process for transmitting to the predetermined server is executed.
  • the present invention in the case of performing authentication using two elements, it is determined that authentication of the authenticated person has succeeded, even though it has not been determined whether the matching information and the registration information match. Can be prevented.
  • FIG. 9 is a flowchart showing an example of the processing progress from the input of the biometric information Y of the person to be authenticated to the client 10 until the client 10 receives the certificate generated in the second server 40.
  • 9 is a flowchart showing an example of the processing result after the client 10 receives the determination result that the biometric information X and the biometric information Y match, and the certificate from the second server 40.
  • 9 is a flowchart showing an example of the processing progress after the determination unit 43 determines that the biometric information X and the biometric information Y match in the second embodiment.
  • It is a block diagram which shows the structural example of the authentication system of the 3rd Embodiment of this invention.
  • It is a flowchart which shows the example of a process progress of 3rd Embodiment.
  • It is a block diagram which shows the outline of the authentication system of this invention.
  • FIG. 1 is a schematic diagram showing an example of a client server system to which FIDO is applied.
  • the system illustrated in FIG. 1 includes a client 801 and a server 901.
  • the client 801 includes a collating unit 802 and a signature generating unit 803.
  • the server 901 includes a challenge transmission unit 902 and a verification unit 903.
  • the collation unit 802 determines whether or not the registration information and the collation information input to the client 801 match using a template held in advance by the client 801. If the collation information and the registration information do not match, the process ends. When it is determined that the collation information and the registration information match, the signature generation unit 803 uses the signature key held in advance by the client 801 to generate a signature based on the challenge-response challenge. The challenge is transmitted to the client 801 by the challenge transmitting unit 902.
  • the client 801 sends the generated signature to the server 901 as a response.
  • the verification unit 903 verifies the signature using the verification key held by the server 901, the message sent to the client 801, and the signature received from the client 801. Specifically, the verification unit 903 determines whether or not the signature is generated by the signature key paired with the verification key held by the server 901, based on the message transmitted by the server 901.
  • the signature generated by the signature key paired with the verification key held by the server based on the message sent by the server will be referred to as a correct signature.
  • a signature that does not correspond to a correct signature is described as an invalid signature.
  • the verification unit 903 determines that the signature is a correct signature, the verification unit 903 determines that the authentication target has succeeded, and when the signature is an invalid signature, it verifies the authentication target. Determined as failed.
  • the client 801 determines whether the matching information and the registration information match. Then, when it is determined that the matching information and the registration information match, the server 901 determines whether the signature generated by the client 801 is a correct signature.
  • FIG. 2 is a schematic diagram showing a problem of the system shown in FIG.
  • malware 804 (or malicious application software) may be incorporated in the client 801. Even if the matching unit 802 does not determine whether the matching information and the registration information match, the malware 804 informs the signature generating unit 803 that the matching information and the registration information match. If given, the signature generation unit 803 may generate a signature, and the verification unit 903 of the server 901 may determine that authentication of the authenticated person has succeeded. That is, even if the client 801 does not actually determine whether the collation information and the registration information match, the server 901 may determine that the authentication of the person to be authenticated has succeeded.
  • the present invention solves such a problem.
  • each embodiment of the present invention will be described.
  • FIG. 3 is a block diagram showing a configuration example of the authentication system according to the first embodiment of this invention.
  • the authentication system includes a client 10, a first server 30, and a second server 40.
  • FIG. 3 illustrates one client 10, a plurality of clients 10 may exist.
  • the client 10, the first server 30, and the second server 40 can communicate with each other via a communication network.
  • the client 10 includes a public key storage unit 11, a registration information input unit 12, a concealment unit 13, a concealment information storage unit 14, a collation information input unit 15, a concealment index calculation unit 16, and a concealment index.
  • the transmission unit 17, the result reception unit 18, the message reception unit 19, the signature key storage unit 20, the signature generation unit 21, and the signature transmission unit 22 are provided.
  • the first server 30 includes a message transmission unit 31, a signature reception unit 32, a first verification key storage unit 33, a signature determination unit 34, a second verification key storage unit 35, and a certificate determination unit 36. And an authentication determination unit 37.
  • the second server 40 includes a secret key storage unit 41, a concealment index reception unit 42, a determination unit 43, a certification key storage unit 44, a certificate generation unit 45, and a result transmission unit 46.
  • the public key storage unit 11 is a storage device that stores a public key (referred to as pk) generated by the second server 40 and transmitted from the second server 40.
  • pk public key
  • the second server 40 includes means for generating a public key pk and a secret key (denoted as sk). Data that has been encrypted with the public key pk can be unlocked with the private key sk.
  • the client 10 may receive the public key from the second server 40 and store it in the public key storage unit 11.
  • the second server 40 also stores the secret key sk in the secret key storage unit 41.
  • the public key pk and the secret key sk may be generated by a device other than the second server 40.
  • the registration information input unit 12 receives input of registration information.
  • the biometric information of the registered person is input to the registration information input unit 12 as the registration information.
  • the registration information input unit 12 may be any input device according to the registration information.
  • the registration information input unit 12 is an input device that reads the fingerprint, extracts a vector serving as the registration information from the fingerprint, and accepts the input of the vector. Good.
  • the registration information input unit 12 may be an input device to which a vector serving as registration information is directly input.
  • the biometric information may be extracted from the iris, retina, face, blood vessel (vein), palm print, voice print, or a combination thereof, in addition to the fingerprint.
  • the biometric information may be extracted from other information that can identify the living body, other than the example described above.
  • a vector corresponding to the biometric information (registration information) of the registered person, which is input to the registration information input unit 12, is denoted by X.
  • the concealment unit 13 conceals the biometric information X of the registered person input to the registration information input unit 12, and conceals the biometric information X (hereinafter referred to as concealment information) from the concealment information storage unit 14. To memorize.
  • the anonymity information storage unit 14 is a storage device that stores anonymity information.
  • This confidential information is data that is stored in advance for biometric authentication and is generated from the biometric information of the registered person. Therefore, this anonymity information is a template. Since the public key pk stored in the public key storage unit 11 is not data generated from the biometric information of the registered person, the public key pk is not a template.
  • encryption will be described as a specific example of concealment. That is, the anonymity providing unit 13 encrypts the biometric information X of the registered person input to the registration information input unit 12 with the public key pk described above, and encrypts the biometric information X (referred to as Enc(X)). Is stored in the concealed information storage unit 14.
  • the anonymity providing unit 13 encrypts the biometric information X of the registered person by an encryption method having additive homomorphism
  • the public key pk is a public key in a public key cryptosystem having additive homomorphism.
  • Enc(pk,m) the ciphertext obtained by encrypting the plaintext m with the public key pk. Further, when Enc(pk,m) is represented by another symbol (for example, c), it is described as Enc(pk,m) ⁇ c.
  • x and y are plaintext numerical values
  • z is a plaintext integer.
  • the ciphertext c 1 of x with the public key pk that is, Enc(pk,x) ⁇ c 1
  • the ciphertext c 2 of y with the public key pk that is, Enc( It is possible to calculate the ciphertext Enc(pk, x+y) of x+y from pk, y) ⁇ c 2 ).
  • this operation It is represented by. That is, the following expression (1) is established.
  • an encryption method having additive homomorphism there is, for example, the ECELgamal encryption. Therefore, in the present invention, the ECELgamal cipher may be adopted. However, the ECElgamal encryption is an example, and in the present invention, an encryption method having additive homomorphism may be adopted.
  • the concealed information storage unit 14 stores Enc(X) obtained by encrypting the biometric information X of the registrant with the public key pk in the public key cryptosystem having additive homomorphism as a template. ..
  • the collation information input unit 15 receives input of collation information.
  • the biometric information of the person to be authenticated is input to the matching information input unit 15 as the matching information.
  • the registration information and the collation information are represented by a vector having a common dimension.
  • the collation information input unit 15 may be any input device according to the collation information.
  • the collation information input unit 15 is an input device that reads the fingerprint, extracts a vector serving as the collation information from the fingerprint, and accepts the input of the vector.
  • the matching information input unit 15 may be an input device to which a vector serving as matching information is directly input.
  • the registration information input unit 12 and the matching information input unit 15 may be a common input device.
  • a vector corresponding to the biometric information (verification information) of the person to be authenticated, which is input to the verification information input unit 15, is denoted by Y.
  • the anonymity index calculation unit 16 calculates the biometric information X based on the biometric information Y of the person to be authenticated and the template (that is, Enc(X) obtained by encrypting the biometric information X of the person to be registered).
  • the encrypted data (hereinafter, referred to as the concealment index) in which the index indicating the closeness between the biometric information Y and the biometric information Y is encrypted is calculated.
  • the anonymity index calculating unit 16 calculates an anonymity index without decoding the template Enc(X).
  • the inner product of X and Y is adopted as an index indicating the closeness between the biometric information X and the biometric information Y will be described as an example.
  • the inner product is an example, and the above index is not limited to the inner product of X and Y.
  • an example of processing when the index is an inner product is shown below.
  • the symbol i represents 1,..., N.
  • the inner product of the biometric information X and the biometric information Y is ⁇ x i ⁇ y i .
  • the anonymity providing unit 13 encrypts each element x 1 to x n of X with the public key pk when the biometric information X is input. Then, the anonymity providing unit 13 causes the anonymity information storage unit 14 to store each encrypted data as a template.
  • the data obtained by encrypting x i is referred to as Enc(x i ). That is, in this example, the anonymity providing unit 13 generates Enc(x 1 ),..., Enc(x n ) and stores the data in the anonymity information storing unit 14. In this example, these Enc(x 1 ),..., Enc(x n ) correspond to the template.
  • the anonymity index calculation unit 16 uses the n ciphertexts to To calculate.
  • the result of this calculation is Enc( ⁇ x i ⁇ y i ), which is data (concealment index) obtained by encrypting the inner product ⁇ x i ⁇ y i of the biometric information X and the biometric information Y.
  • the anonymity index transmission unit 17 transmits the anonymity index calculated by the anonymity index calculation unit 16 to the second server 40.
  • the Hamming distance between X and Y or “the square of the Euclidean distance between X and Y” is adopted instead of the inner product of X and Y. Good.
  • the elements included in the second server 40 will be described below.
  • elements of the client 10 elements that have not yet been described will be described later.
  • the anonymity index reception unit 42 receives the anonymity index transmitted by the anonymity index transmission unit 17 of the client 10.
  • the private key storage unit 41 is a storage device that stores a private key sk paired with the public key pk. As described above, although not shown, the second server 40 includes means for generating the public key pk and the secret key sk, and the secret key storage unit 41 stores the secret key sk.
  • the determination unit 43 decrypts the index from the anonymity index (data in which the index is encrypted) received by the anonymity index indexing unit 42, using the private key sk stored in the private key storage unit 41. It can be said that the decryption is the removal of the anonymity.
  • the index is a numerical value
  • the determining unit 43 determines whether the index decrypted from the anonymity index is a value within a predetermined range, so that the biometric information X and the biometric information Y are It is determined whether or not they match (in other words, whether or not the registered person and the authenticated person match).
  • the determination unit 43 determines that the biometric information X and the biometric information Y match if the index decrypted from the anonymity index has a value within a predetermined range (in other words, the registered person and the It is determined that the certifier matches.)
  • the determination unit 43 determines that the biometric information X and the biometric information Y do not match if the index decrypted from the anonymity index is not within the predetermined range (in other words, the registered person and the It is determined that the certifier does not match).
  • the biometric information X and the biometric information Y match, depending on whether or not the index decrypted from the anonymity index is a value within a predetermined range. Therefore, even if the biometric information X and the biometric information Y do not completely match (even if there is a deviation that does not matter), if the index is a value within the predetermined range, the biometric information X and the biometric information It can be determined that Y matches.
  • the process using the predetermined range is an example of a process of determining that the biometric information X and the biometric information Y match even if a deviation that does not cause a problem occurs.
  • the certification key storage unit 44 is a storage device that stores a certification key (referred to as “sak”) used when generating a certificate indicating that the biometric information X and the biometric information Y are determined to match.
  • the second server 40 includes means for generating a certification key sak and a second verification key (described as pak).
  • the second verification key pak makes it possible to determine, when a certificate is given, whether or not the certificate is a correct certificate. The determination of whether the certificate is a correct certificate will be described later.
  • the second server 40 generates the proof key sak and the second verification key pak in advance, stores the proof key sak in the proof key storage unit 44, and sends the second verification key pak to the first server 30. .. Then, the second verification key pak is stored in the second verification key storage unit 35 of the first server 30.
  • the proof key sak and the second verification key pak may be generated by a device other than the second server 40.
  • the certification key sak is a private key in the public key system
  • the second verification key pak is a public key in the public key system.
  • the certificate generation unit 45 When it is determined that the biometric information X and the biometric information Y match, the certificate generation unit 45 generates a certificate indicating that using the certification key sak.
  • the certificate is assumed to be a set of data and a signature generated by the certification key sak based on the data.
  • the certificate generation unit 45 As data used by the certificate generation unit 45 to generate a certificate, for example, the ID (IDentification) of the client 10, the ID of the second server 40, a time stamp (for example, the time when the anonymity index is received from the client 10). Time stamp), a message received from the first server 30 by the client 10, a session ID between the client 10 and the second server 40, or data generated from these data. it can. That is, the certificate generation unit 45, for example, one or more of the above data, or a set of data generated from them and a signature generated based on the data using the certification key sak, It should be a certificate.
  • the message that the client 10 receives from the first server 30 is a message that the first server 30 (specifically, the message transmitting unit 31) transmits to the client 10 as a challenge in the challenge response method.
  • the anonymity index transmission unit 17 of the client 10 may send the ID or the message of the client 10 to the second server 40 together with the anonymity index. ..
  • the certificate generation unit 45 does not generate the certificate.
  • the result transmission unit 46 transmits the determination result of the determination unit 43 to the client 10. Furthermore, the result transmitting unit 46 determines that the biometric information X and the biometric information Y match, and thus the certificate generation unit 45 determines that the certificate (the biometric information X and the biometric information Y match). If the certificate shown is generated, the certificate is sent to the client 10 together with the determination result of the determination unit 43.
  • the result receiving unit 18 receives the determination result of the determining unit 43 transmitted by the result transmitting unit 46, and when the result transmitting unit 46 also transmits the certificate together with the determination result, also receives the certificate.
  • the elements of the client 10 described below are elements related to the case where it is determined that the biometric information X and the biometric information Y match. Therefore, it is assumed that the result receiving unit 18 receives the determination result that the biometric information X matches the biometric information Y and the certificate from the second server 40.
  • the message receiving unit 19 receives a message transmitted by the first server 30 (specifically, the message transmitting unit 31). This message corresponds to a challenge in the challenge response method.
  • the signature key storage unit 20 is a storage device that stores a signature key (referred to as suk) used when generating a signature based on a message (challenge) received by the message receiving unit 19.
  • the client 10 includes means for generating a signature key suk and a first verification key (referred to as puk).
  • the first verification key puk makes it possible to determine, when a signature and a message are given, whether the signature is a correct signature.
  • the client 10 generates a signature key suk and a first verification key puk in advance, stores the signature key suk in the signature key storage unit 20, and sends the first verification key puk to the first server 30. Then, the first verification key puk is stored in the first verification key storage unit 33 of the first server 30.
  • the signature key suk and the first verification key puk may be generated by a device other than the client 10.
  • the signature key suk is a secret key in the public key system
  • the first verification key puk is a public key in the public key system.
  • the signature generation unit 21 generates a signature when the result reception unit 18 receives from the second server 40 a determination result that the biometric information X matches the biometric information Y.
  • the signature generation unit 21 generates a signature using the signature key suk based on the message (challenge) received by the message reception unit 19 from the first server 30.
  • the signature generated by the signature generation unit 21 corresponds to the response in the challenge response method.
  • the timing at which the client 10 acquires the message from the first server 30 may be before the signature generation.
  • the message transmitting unit 31 may transmit the message to the client 10 in advance
  • the message receiving unit 19 may receive the message
  • the message receiving unit 19 may hold the message until the signature is generated.
  • the message receiving unit 19 causes the first server to receive the message. It is also possible to request 30 to send a message, receive the message sent by the message sending unit 31 in response to the request, and then generate the signature by the signature creating unit 21.
  • the signature transmitting unit 22 transmits the signature generated by the signature generating unit 21 and the certificate received by the result receiving unit 18 from the second server 40 to the first server 30.
  • the message transmitting unit 31 generates a message corresponding to the challenge in the challenge response method and transmits the message to the client 10. This message is received by the message receiving unit 19.
  • the signature receiving unit 32 receives the signature and the certificate transmitted by the signature transmitting unit 22 of the client 10.
  • the first verification key storage unit 33 is a storage device that stores the first verification key puk generated by the client 10 and transmitted from the client 10.
  • the client 10 includes means for generating the signature key suk and the first verification key puk, and transmits the first verification key puk to the first server 30 in advance.
  • the first server 30 receives the first verification key puk and stores the first verification key puk in the first verification key storage unit 33 in advance.
  • the second verification key storage unit 35 is a storage device that stores the second verification key pak generated by the second server 40 and transmitted from the second server 40.
  • the second server 40 includes means for generating the proof key sak and the second verification key pak, and transmits the second verification key pak to the first server 30 in advance.
  • the first server 30 receives the second verification key pak and stores the second verification key pak in the second verification key storage unit 35 in advance.
  • the signature determination unit 34 uses the first verification key puk, the message transmitted by the message transmission unit 31 to the client 10 (message corresponding to the challenge), and the signature received by the signature reception unit 32 from the client 10. Determine if the signature is a valid signature. In other words, the signature determination unit 34 determines whether the received signature is a signature generated based on the message using the signature key suk paired with the first verification key puk. If the received signature is a signature generated based on the message with the signature key suk paired with the first verification key puk, the received signature is a correct signature. Otherwise, the received signature is an incorrect signature.
  • the certificate determination unit 36 uses the second verification key pak and the certificate received by the signature reception unit 32 from the client 10 to determine whether the certificate is a correct certificate.
  • a certificate is a set of data and signature. If the signature included in the certificate is a signature generated based on the data included in the certificate using the certification key sak paired with the second verification key pak, the certificate is correct. It is a certificate. Otherwise, the certificate is a fraudulent certificate. Therefore, the certificate determination unit 36 generates the signature included in the certificate received from the client 10 based on the data included in the certificate using the proof key sak that is paired with the second verification key pak. It may be determined whether or not the received certificate is a correct certificate by determining whether or not the received signature is the generated signature.
  • the authentication determination unit 37 determines whether the authentication of the authenticated person has succeeded or failed based on the determination result of the signature determination unit 34 and the determination result of the certificate determination unit 36. Specifically, when the signature determination unit 34 determines that the signature is a correct signature and the certificate determination unit 36 determines that the certificate is a correct certificate, the authentication determination unit 37 determines that the certificate is correct. , It is determined that authentication of the authenticated person has succeeded (in other words, it is determined that the authenticated person is a registered person). That is, when both the condition that the signature is determined to be a correct signature and the condition that the certificate is determined to be a correct certificate are satisfied, the authentication determination unit 37 determines that the authentication target is authenticated. Is determined to be successful.
  • the authentication determination unit 37 determines that the authentication of the authenticated person has failed (in other words, the authenticated person is not authenticated). Determine that the person is not a registered person).
  • the post-authentication processing may be executed when the authentication determination unit 37 determines that the authenticated person has been successfully authenticated.
  • the first server 30 may send information indicating that the authenticated person has been successfully authenticated to the client 10, and when the client 10 receives the information, the post-authentication process may be executed. ..
  • the device that executes the post-authentication process is not limited to the client 10, and the device other than the client 10 performs the post-authentication process on condition that the authentication determination unit 37 determines that the authentication target has been successfully authenticated. May be executed.
  • the anonymity index transmission unit 17, the result reception unit 18, the message reception unit 19, and the signature transmission unit 22 are, for example, a CPU (Central Processing Unit) of a computer that operates according to a program for the client, and communication of the computer. It is realized by the interface.
  • the CPU reads the client program from a program recording medium such as a program storage device of a computer, and according to the program, using the communication interface, the anonymity index transmission unit 17, the result reception unit 18, the message reception unit 19, and the signature. It may operate as the transmission unit 22.
  • the anonymity providing unit 13, the anonymity providing index calculating unit 16, and the signature creating unit 21 are realized by, for example, a CPU of a computer that operates according to a client program.
  • the CPU may read the client program from the program recording medium as described above, and operate as the anonymity providing unit 13, the anonymity providing index calculating unit 16, and the signature creating unit 21 according to the program.
  • the public key storage unit 11, the confidential information storage unit 14, and the signature key storage unit 20 are realized by, for example, a storage device included in a computer that realizes the client 10.
  • the anonymity index receiving unit 42 and the result transmitting unit 46 are realized by, for example, a CPU of a computer that operates according to a server program and a communication interface of the computer.
  • the CPU may read the server program from a program recording medium such as a program storage device of a computer, and operate as the anonymity index receiving unit 42 and the result transmitting unit 46 according to the program using a communication interface.
  • the determination unit 43 and the certificate generation unit 45 are realized by, for example, the CPU of a computer that operates according to the server program.
  • the CPU may read the server program from the program recording medium as described above, and operate as the determination unit 43 and the certificate generation unit 45 according to the program.
  • the private key storage unit 41 and the certification key storage unit 44 are realized by, for example, a storage device included in a computer that realizes the second server 40.
  • the message transmission unit 31 and the signature reception unit 32 are realized by, for example, a CPU of a computer that operates according to a server program and a communication interface of the computer.
  • the CPU may read the server program from a program recording medium such as a program storage device of a computer and operate as the message transmitting unit 31 and the signature receiving unit 32 using the communication interface according to the program.
  • the signature determination unit 34, the certificate determination unit 36, and the authentication determination unit 37 are realized by, for example, the CPU of a computer that operates according to the server program.
  • the CPU may read the server program from the program recording medium as described above, and operate as the signature determination unit 34, the certificate determination unit 36, and the authentication determination unit 37 according to the program.
  • the first verification key storage unit 33 and the second verification key storage unit 35 are realized by, for example, a storage device included in a computer that realizes the first server 30.
  • the server program installed in the first server 30 and the server program installed in the second server 40 is another program.
  • the public key pk is already stored in the public key storage unit 11 of the client 10, the signature key suk is stored in the signature key storage unit 20, and the template Enc is stored in the anonymity information storage unit 14.
  • (X) (In this example, Enc(x 1 ),..., Enc(x n )) is stored.
  • the private key storage unit 41 of the second server 40 already stores the private key sk, and the certification key storage unit 44 stores the certification key sak.
  • the first verification key storage unit 33 included in the first server 30 already stores the first verification key puk, and the second verification key storage unit 35 stores the second verification key pak. It has been done.
  • the message receiving unit 19 of the client 10 is assumed to have previously received the message corresponding to the challenge from the message transmitting unit 31 of the first server 30 and hold the message.
  • FIG. 4 is a flowchart showing an example of the processing progress from the input of the biometric information Y of the person to be authenticated to the client 10 until the client 10 receives the certificate generated in the second server 40. Note that detailed description of the items already described is omitted.
  • the biometric information Y of the person to be authenticated is input to the verification information input unit 15 (step S11).
  • the anonymity index calculating unit 16 determines the biometric information X and the biometric information based on the biometric information Y input in step S11 and the template (Enc(X)) stored in the anonymity information storage unit 14.
  • a concealment index which is data obtained by encrypting an index indicating the closeness to the information Y, is calculated (step S12).
  • the anonymity index calculating unit 16 calculates an anonymity index without decoding Enc(X).
  • the inner product of the biometric information X and the biometric information Y is adopted as the above index. That is, the anonymity index calculating unit 16 calculates data (anonymity index) obtained by encrypting the inner product of the biometric information X and the biometric information Y based on the biometric information Y and the template.
  • the method of calculating the encrypted inner product has already been described, and thus the description is omitted here.
  • the index is not limited to the inner product, and as the index, for example, “the Hamming distance between X and Y” or “the square of the Euclidean distance between X and Y” may be adopted.
  • the anonymity index transmission unit 17 transmits the anonymity index calculated in step S12 to the second server 40 (step S13).
  • the anonymity index receiving unit 42 of the second server 40 receives the anonymity index from the client 10 (step S14).
  • the determination unit 43 decrypts the index from the anonymity index using the secret key sk stored in the secret key storage unit 41 (step S15). Furthermore, the determination unit 43 determines whether or not the biometric information X and the biometric information Y match by determining whether or not the index decoded from the anonymization index is a value within a predetermined range. It is determined (step S16).
  • FIG. 4 shows a case where it is determined in step S16 that the biometric information X and the biometric information Y match.
  • the certificate generation unit 45 uses the certification key sak stored in the certification key storage unit 44 to generate a certificate ( Step S17).
  • step S17 the result transmitting unit 46 transmits the determination result that the biometric information X and the biometric information Y match, and the certificate generated in step S17 to the client 10 (step S18).
  • the result receiving unit 18 of the client 10 receives the determination result and the certificate from the second server 40 (step S19).
  • step S16 If it is determined in step S16 that the biometric information X and the biometric information Y do not match, the certificate generation unit 45 does not generate a certificate (that is, step S17 is not executed). Then, in step S18, the result transmission unit 46 transmits to the client 10 a determination result that the biometric information X and the biometric information Y do not match. In this case, since the certificate is not generated, the result transmitting unit 46 does not transmit the certificate. Then, the result receiving unit 18 of the client 10 receives the determination result that the biometric information X and the biometric information Y do not match. When the result receiving unit 18 of the client 10 receives the determination result that the biometric information X and the biometric information Y do not match, the process for the input of the biometric information Y ends.
  • FIG. 5 is a flowchart showing an example of the determination result that the biometric information X matches the biometric information Y, and the processing progress after the certificate is received from the second server 40 by the client 10. Note that detailed description of the items already described is omitted.
  • the signature generating unit 21 causes the message receiving unit 19 to perform the signature generation. Generates a signature using the signature key suk based on the message (challenge) already received from the first server 30 (step S31). As described above, this signature corresponds to the response in the challenge response method.
  • the message receiving unit 19 may receive the message sent by the message sending unit 31 in response to the request, and then the signature creating unit 21 may create the signature.
  • the signature transmitting unit 22 transmits the signature generated in step S31 and the certificate received by the result receiving unit 18 from the second server 40 to the first server 30 (step S32). ..
  • the signature receiving unit 32 of the first server 30 receives the signature and the certificate from the client 10 (step S33).
  • the signature determination unit 34 uses the first verification key puk, the message transmitted by the message transmission unit 31 to the client 10 in advance, and the signature received by the signature reception unit 32 from the client 10 in step S33. Then, it is determined whether the signature is a correct signature (step S34).
  • the certificate determination unit 36 uses the second verification key pak and the certificate received by the signature reception unit 32 from the client 10 in step S33 to determine whether the certificate is a correct certificate. The determination is made (step S35).
  • step S34 and step S35 does not matter. Step S34 and step S35 may be executed in parallel.
  • the authentication judging unit 37 judges whether the authentication of the person to be authenticated succeeds or fails based on the judgment result of the signature judging unit 34 and the judgment result of the certificate judging unit 36 (step S36). If both the condition that the signature is determined to be a correct signature and the condition that the certificate is determined to be a correct certificate are satisfied, the authentication determination unit 37 succeeds in authenticating the person to be authenticated. It is judged that it did. If either or both of the above two conditions are not satisfied, the authentication determination unit 37 determines that the authentication of the person to be authenticated has failed.
  • the client 10 transmits the anonymity index calculated by the anonymity index calculation unit 16 to the second server 40.
  • the determination unit 43 decodes the index from the anonymity index, and determines whether the matching information and the registration information match based on the index obtained by the decryption.
  • the certificate generation unit 45 uses the certification key sak to generate a certificate to that effect.
  • the second server 40 transmits the determination result that the matching information and the registration information match and the certificate to the client 10.
  • the signature generation unit 21 generates a signature using the signature key suk based on the message acquired from the first server 30.
  • the client 10 transmits the signature (response to the message) and the certificate to the first server 30.
  • the signature determination unit 34 uses the first verification key puk, the message, and the signature to determine whether the signature is a correct signature.
  • the certificate determination unit 36 uses the second verification key pak and the certificate to determine whether the certificate is a correct certificate.
  • the authentication determining unit 37 authenticates the person to be authenticated when both the condition that the signature is determined to be a correct signature and the condition that the certificate is determined to be a correct certification award are satisfied. Is determined to be successful.
  • the signature generation unit 21 has generated a signature based on the message using the signature key suk. Then, it is assumed that the signature is transmitted to the first server 30 and the signature determination unit 34 determines that the signature is a correct signature. However, in this case, since it is not actually determined whether the matching information and the registration information match, the certificate generation unit 45 of the second server 40 does not generate the certificate.
  • the certificate determination unit 36 does not determine whether the certificate is a correct certificate. As a result, the authentication determination unit 37 does not determine that the authentication of the person to be authenticated has succeeded. Further, even if the malware or the like incorporated in the client 10 forges the certificate and sends the certificate to the first server 30, the client 10 and the malware are paired with the second certification key pak. Since it does not have the key sak, the certificate determination unit 36 does not determine that the forged certificate is a correct certificate. As described above, in the present embodiment, in the case of performing the authentication using the two elements, the authentication of the authenticated person succeeds even though the determination as to whether the matching information and the registration information match is not made. It is possible to obtain the effect that it is possible to prevent the determination that it has done.
  • the client 10 and the second server 40 exchange the anonymity index so that the determination unit 43 of the second server 40 determines whether the biometric information X and the biometric information Y match.
  • the challenge response method may be applied in the communication between the client 10 and the second server 40 when the determination unit 43 derives the determination result.
  • the anonymity providing unit 13 of the client 10 may generate a template by using a random number when generating the template.
  • the client 10 transmits the random number to the second server 40 after generating the template, and then erases the random number.
  • the second server 40 assigns an ID to the client 10 and notifies the client 10 of the ID.
  • the anonymity index transmitter 17 of the client 10 also sends the ID thereof.
  • the second server 40 may decrypt the index also by using the random number corresponding to the ID.
  • the data transmitted from the client 10 to the second server 40 for determining whether or not the biometric information X and the biometric information Y match is the confidential information (described in the first embodiment above).
  • the data is not limited to the data obtained by encrypting the inner product of X and Y).
  • the certificate is sent from the second server 40 to the first server 30 via the client 10.
  • the second server 40 may send the certificate to the first server 30 directly via the communication network.
  • the result transmission unit 46 of the second server 40 transmits the determination result that the biometric information X and the biometric information Y match to the client 10, and sends the certificate directly to the first via the communication network. It may be transmitted to the server 30 of.
  • the signature receiving unit 32 may receive the certificate.
  • the signature generating unit 21 may generate a signature and the signature transmitting unit 22 may transmit the signature to the first server 30. Then, the first server 30 may receive the signature. As described above, after the first server 30 receives the certificate from the second server 40 and the signature from the client 10, the first server 30 performs the processes of step S34 (see FIG. 5) and thereafter. Just go.
  • the first server 30 needs to recognize the association between the signature and the certificate. Therefore, in this modification, the signature and the certificate transmitted to the first server 30 are transmitted to the first server 30 together with the data that can confirm the correspondence between the two.
  • the data for which the correspondence between the two (signature and certificate) can be confirmed may be, for example, data common to both.
  • a case where the data for which the correspondence between the two can be confirmed is common to both will be described as an example.
  • this common data for example, a session ID of the communication between the client 10 and the second server 40, a message (challenge) transmitted by the first server 30 to the client 10, a combination thereof, or a combination of these.
  • One or more or data generated from them can be used.
  • these data are examples, and the common data described above is not limited to the session ID, the message, and the like.
  • the result transmitting unit 46 transmits the certificate to the first server 30 together with the session ID of the communication between the client 10 and the second server 40.
  • the signature transmission unit 22 of the client 10 transmits the signature together with the session ID to the first server 30.
  • the first server 30 may perform the processing from step S34 (see FIG. 5) onward for the signature and the certificate having the common session ID.
  • the anonymity index transmission unit 17 may transmit the message together with the anonymity index to the second server 40.
  • the transmission mode of the message from the client 10 to the second server 40 is not limited to the above example.
  • the result sending unit 46 sends the certificate to the first server 30 together with the message received from the client 10.
  • the signature transmission unit 22 of the client 10 transmits the signature together with the message to the first server 30.
  • the first server 30 may perform the processing from step S34 (see FIG. 5) onward with respect to the signature and the certificate having the same message.
  • the certification key sak is the secret key in the public key system and the second verification key pak is the public key in the public key system has been described as an example.
  • the certification key sak and the second verification key pak may be common keys in the common key method.
  • the certificate generated by the certificate generation unit 45 is data and a message authentication code (MAC). Alternatively, it may be a set with a tag generated using the data. The tag in the message authentication code is generated by the data and the key used when generating the tag. If the set of data and the key is common, the generated tags are also common.
  • MAC message authentication code
  • the data used at the time of tag generation is a time stamp (for example, the time stamp of the time when the anonymity index is received from the client 10) is described as an example.
  • the data used when generating the tag is not limited to the time stamp, and may be various data exemplified as the data used for generating the certificate (various data such as the ID of the client 10).
  • the certificate generation unit 45 uses the certification key sak and the time stamp to generate a tag in the message authentication code. Then, the set of the time stamp and the generated tag is sent to the first server 30 as a certificate.
  • the mode in which the certificate is sent from the second server 40 to the first server 30 may be a mode in which the certificate is sent to the first server 30 via the client 10, or, instead of via the client 10,
  • the second server 40 may directly send the first server 30.
  • the result transmitting unit 46 may transmit the certificate to the client 10
  • the signature transmitting unit 22 may transmit the certificate and the signature to the first server 30.
  • the result transmitting unit 46 may directly transmit the certificate to the first server 30 via the communication network.
  • the certificate determination unit 36 determines that the certification key used at the time of certificate generation (at the time of tag generation) is the second verification key pak. It may be determined whether or not the certificate is a correct certificate by determining whether or not the paired certification key sak. That is, the certificate determination unit 36 uses the second verification key pak and the time stamp included in the acquired certificate to generate a tag in the message authentication code. If the generated tag and the tag included in the acquired certificate match, the certificate determination unit 36 determines that the certification key used at the time of certificate generation (at the time of tag generation) is the second verification key pak. It is determined that the proof key sak is paired with.
  • the certificate determination unit 36 determines that the received certificate is a correct certificate. If the generated tag does not match the tag included in the acquired certificate, the certificate determination unit 36 determines that the certification key used at the time of certificate generation (at the time of tag generation) is the second verification. It is determined that it is not the proof key sak paired with the key pak. In this case, the certificate determination unit 36 determines that the received certificate is an invalid certificate.
  • steps S34 to S36 may be executed every time a challenge response is exchanged between the first server 30 and the client 10 a plurality of times. That is, the first server 30 sends a message (challenge) to the client 10, and the first server 30 acquires a signature (response) and a certificate, but this challenge response is exchanged multiple times.
  • the processing of steps S34 to S36 may be executed. In other words, the process of steps S34 to S36 may not be performed every time. In this case, when the processes of steps S34 to S36 are not performed, for example, the process of step S35 may be omitted.
  • the signature determination unit 34 determines that the signature is a correct signature
  • the authentication determination unit 37 determines that the authentication of the person to be authenticated has succeeded, and the signature is determined to be an invalid signature. Then, it may be determined that the authentication of the person to be authenticated has failed. This point is the same in the other embodiments.
  • the first server 30 detects an abnormal event, when the sender of the certificate is a predetermined sender (for example, a sender recognized as an attacker), or when the sender of the certificate is sent.
  • the source is not the predetermined source (here, for example, the source corresponding to the authorized user)
  • the processes of steps S34 to S36 are executed, and in other cases, the process of step S35 is omitted. May be.
  • the process of step S35 is omitted, as described above, if the signature determination unit 34 determines that the signature is a correct signature, the authentication determination unit 37 determines that the authentication target has been successfully authenticated. If it is determined that the signature is an invalid signature, it may be determined that the authentication of the person to be authenticated has failed. This point is the same in the other embodiments.
  • FIG. 6 is a block diagram showing a configuration example of the authentication system of the second exemplary embodiment of the present invention.
  • the same elements as those in the first embodiment are designated by the same reference numerals as those in FIG. 3, and the description of the same operations as those in the first embodiment will be omitted.
  • the authentication system of the second embodiment includes a client 10 and a server 50. There may be a plurality of clients 10. The client 10 and the server 50 can communicate with each other via a communication network.
  • Each element included in the client 10 in the second embodiment is the same as each element included in the client 10 in the first embodiment.
  • the server 50 includes a message transmission unit 31, a signature reception unit 32, a first verification key storage unit 33, a signature determination unit 34, an authentication determination unit 37, a secret key storage unit 41, and a concealment index reception unit. 42, a determination unit 43, and a result transmission unit 46.
  • the public key storage unit 11 included in the client 10 already stores the public key pk and the signature key storage unit 20 stores the signature key suk. Further, it is assumed that the private key storage unit 41 included in the server 50 has already stored the private key sk, and the first verification key storage unit 33 has already stored the first verification key puk.
  • the operation until the determination unit 43 determines whether the biometric information X matches the biometric information Y is the same as the determination unit 43 in the first embodiment, whether the biometric information X matches the biometric information Y. Since the operation is the same as the operation up to the determination, the description is omitted.
  • the determination unit 43 when the determination unit 43 determines that the biometric information X matches the biometric information Y, the determination unit 43 sends the determination result to the authentication determination unit 37.
  • the determination unit 43 When it is determined that the biometric information X and the biometric information Y do not match, the determination unit 43 does not have to send the determination result to the authentication determination unit 37. However, even when it is determined that the biometric information X and the biometric information Y do not match, the determination unit 43 may send the determination result to the authentication determination unit 37.
  • the determination unit 43 may send the determination result to the authentication determination unit 37.
  • a case will be described as an example in which when it is determined that the biometric information X and the biometric information Y do not match, the determination unit 43 does not send the determination result to the authentication determination unit 37.
  • the result transmission unit 46 transmits the determination result of the determination unit 43 to the client 10 regardless of the determination result.
  • the result receiving unit 18 receives the determination result of the determining unit 43 transmitted by the result transmitting unit 46.
  • the process for the input of the biometric information Y ends.
  • the signature generation unit 21 generates a signature (response) using the signature key suk, based on the message (challenge) received by the message reception unit 19 from the server 50 (specifically, the message transmission unit 31). To do.
  • the timing at which the client 10 acquires the message from the server 50 may be before the signature is generated.
  • the message transmitting unit 31 may transmit the message to the client 10 in advance, the message receiving unit 19 may receive the message, and the message receiving unit 19 may hold the message until the signature is generated.
  • the message receiving unit 19 requests the server 50 to send a message, and the request is sent.
  • the message transmitting unit 31 may receive the message and then the signature generating unit 21 may generate the signature.
  • the signature transmission unit 22 transmits the signature generated by the signature generation unit 21 to the server 50. Further, the signature receiving unit 32 of the server 50 receives the signature.
  • the server 50 needs to recognize the correspondence between the signature and the determination result that the determination unit 43 sends to the authentication determination unit 37. Therefore, in the second embodiment, data that can confirm the correspondence between the two is added to the signature and the determination result that the determination unit 43 sends to the authentication determination unit 37.
  • the data for which the correspondence between the two can be confirmed may be, for example, data common to both.
  • a case where the data for which the correspondence between the two can be confirmed is common to both will be described as an example.
  • this common data for example, a session ID between the client 10 and the server 50, a message (challenge) transmitted by the message transmission unit 31 of the server 50 to the client 10, a combination thereof, or one of these or A plurality of data or data generated from them can be used.
  • these data are examples, and the common data described above is not limited to the session ID, the message, and the like.
  • the determination unit 43 adds the session ID of the communication between the client 10 and the server 50 when sending the determination result (the determination result that the biometric information X and the biometric information Y match) to the authentication determination unit 37.
  • the result is sent to the authentication determination unit 37.
  • the signature transmission unit 22 of the client 10 transmits the signature added with the session ID to the server 50.
  • the anonymity index receiving unit 42, the result transmitting unit 46, the message transmitting unit 31, and the signature receiving unit 32 are realized by, for example, a CPU of a computer that operates according to a server program and a communication interface of the computer. ..
  • the CPU reads the server program from a program recording medium such as a program storage device of a computer, and according to the program, using the communication interface, the anonymity index receiving unit 42, the result transmitting unit 46, the message transmitting unit 31, and the signature. It only has to operate as the receiving unit 32.
  • the determination unit 43, the signature determination unit 34, and the authentication determination unit 37 are realized by, for example, the CPU of a computer that operates according to the server program.
  • the CPU may read the server program from the program recording medium as described above, and operate as the determination unit 43, the signature determination unit 34, and the authentication determination unit 37 according to the program.
  • the private key storage unit 41 and the first verification key storage unit 33 are realized by a storage device included in the computer.
  • the process progress of the second embodiment will be described below. As described above, the operation until the determination unit 43 determines whether or not the biometric information X and the biometric information Y match is the same as that in the first embodiment, so description thereof will be omitted. When the determination unit 43 determines that the biometric information X and the biometric information Y do not match, the determination result is sent from the result transmission unit 46 to the result reception unit 18, and the process ends.
  • FIG. 7 is a flowchart showing an example of the progress of processing after the determination unit 43 determines that the biometric information X and the biometric information Y match in the second embodiment. Note that detailed description of the items already described is omitted.
  • the determination unit 43 determines that the biometric information X and the biometric information Y match, the data that is common to the data added to the signature associated with the determination result (for example, the session ID of the communication between the client 10 and the server 50). ) Is added to the determination result, and the determination result is sent to the authentication determination unit 37 (step S42).
  • the session ID is an example of data added to the determination result by the determination unit 43 and the signature, and common data may be added to the determination result by the determination unit 43 and the signature.
  • the result transmitting unit 46 transmits the determination result that the biometric information X and the biometric information Y match (step S43), and the result receiving unit 18 of the client 10 receives the determination result (step S43). S44).
  • the signature generating unit 21 determines, based on the message (challenge) that the message receiving unit 19 has already received from the server 50. , Generates a signature using the signature key suk (step S45).
  • the message receiving unit 19 requests the server 50 to send a message when the result receiving unit 18 receives from the server 50 a determination result that the biometric information X and the biometric information Y match, and the server 50 sends the message. You may receive the message.
  • the signature generation unit 21 signs the data (for example, the session ID of the communication between the client 10 and the server 50) common to the data added to the determination result (the determination result by the determination unit 43) associated with the signature. Added to.
  • the signature transmission unit 22 transmits the signature to the server 50 (step S46), and the signature reception unit 32 of the server 50 receives the signature (step S47).
  • the signature determination unit 34 uses the first verification key puk, the message transmitted by the message transmission unit 31 to the client 10 in advance, and the signature received by the signature reception unit 32 from the client 10 in step S47. Then, it is determined whether the signature is a correct signature (step S48).
  • the authentication determination unit 37 is based on the determination result by the signature determination unit 34 and the determination result by the determination unit 43 to which the data common to the data added to the signature used by the signature determination unit 34 for the determination is added. , It is determined whether the authentication of the authenticated person has succeeded or failed (step S50). If both the condition that the signature is determined to be a correct signature and the condition that the determination result that the biometric information X and the biometric information Y match are obtained from the determination unit 43 are satisfied, the authentication determination is performed. The unit 37 determines that the authentication of the person to be authenticated has succeeded. If either or both of the above two conditions are not satisfied, the authentication determination unit 37 determines that the authentication of the person to be authenticated has failed.
  • the server 50 does not have to notify the client 10 of the determination result of the determination unit 43.
  • the signature generation unit 21 of the client 10 generates a signature using the signature key suk based on the message received by the message reception unit 19 while the determination result by the determination unit 43 is not notified.
  • the message transmission unit 31 may transmit the message to the client 10 only when the determination unit 43 determines that the biometric information X and the biometric information Y match. Then, in the client 10, when the message receiving unit 19 receives the message, the signature generating unit 21 generates a signature using the signature key suk based on the message. Then, the signature transmission unit 22 transmits the signature to the server 50. In this modification, the signature generation unit 21 generates a signature and the signature transmission unit 22 transmits the signature to the server 50 only when it is determined that the biometric information X and the biometric information Y match. Therefore, in this modification, the data for associating the signature with the determination result sent by the determination unit 43 to the authentication determination unit 37 need not be used. Further, in this modified example, the server 50 may notify the client 10 of the determination result by the determination unit 43, regardless of whether it is determined that the biometric information X and the biometric information Y match. You don't have to.
  • the anonymity index transmission unit 17 may change the anonymity index and the signature generation unit 21.
  • the generated signature may be sent to the server 50 together.
  • the signature generation unit 21 recognizes the message received by the message reception unit 19 without acquiring the determination result by the determination unit 43 (more specifically, before the determination unit 43 performs the determination process). Based on this, a signature is generated using the signature key suk.
  • the server 50 receives the anonymity index and the signature together. Therefore, the server 50 can recognize the correspondence between the determination result derived by the determination unit 43 based on the anonymity index and the signature. Therefore, in this modification, the data for associating the signature with the determination result sent by the determination unit 43 to the authentication determination unit 37 need not be used.
  • FIG. 8 is a block diagram which shows the structural example of the authentication system of the 3rd Embodiment of this invention.
  • the same elements as those in the first and second embodiments are designated by the same reference numerals as those in FIGS. 3 and 6.
  • the description of the same operation as that of the first and second embodiments is omitted.
  • the authentication system includes a client 10, a first server 30, and a second server 40. There may be a plurality of clients 10.
  • the client 10, the first server 30, and the second server 40 can communicate with each other via a communication network.
  • the client 10 includes a public key storage unit 11, a registration information input unit 12, a concealment unit 13, a concealment information storage unit 14, a collation information input unit 15, and a concealment index calculation.
  • a unit 16, a concealment index transmitting unit 17, a message receiving unit 19, a signature key storage unit 20, and a signature generating unit 21 are provided.
  • the public key storage unit 11, the registration information input unit 12, the concealment unit 13, the concealment information storage unit 14, the collation information input unit 15, the concealment index calculation unit 16, the message reception unit 19, and the signature key storage unit 20 are It is similar to each of those elements in one embodiment.
  • the signature generation unit 21 generates a signature without receiving the determination result of whether the biometric information X and the biometric information Y match from the second server 40.
  • the signature generation unit 21 may generate the signature before the timing at which the anonymity index transmission unit 17 transmits the anonymity index to the second server 40.
  • the timing at which the signature generation unit 21 generates a signature is not limited to the above example.
  • the signature generation unit 21 uses the signature key suk to generate a signature based on the message received by the message reception unit 19 from the first server 30. This point is the same as each of the above-described embodiments.
  • the message receiving unit 19 may receive the message from the first server 30 by the time the signature generating unit 21 generates the signature. For example, when the signature generator 21 generates a signature, the message receiver 19 requests the server 50 to transmit a message, and the message receiver 19 receives the message transmitted by the message transmitter 31 in response to the request. May be.
  • the anonymity index transmission unit 17 transmits not only the anonymity index but also the signature generated by the signature generation unit 21 to the second server.
  • the anonymity index transmission unit 17 transmits the anonymity index and the signature together to the second server.
  • the second server 40 includes a secret key storage unit 41, an anonymity index reception unit 42, a determination unit 43, and a signature transmission unit 22.
  • the secret key storage unit 41 and the determination unit 43 are the same as those elements in the first embodiment.
  • the anonymity index reception unit 42 receives not only the anonymity index but also the signature generated by the signature generation unit 21 from the client 10. In this example, the anonymity index receiving unit 42 receives the anonymity index and the signature together from the client 10.
  • the signature transmitting unit 22 included in the second server 40 is configured such that the concealment index receiving unit 42 operates on the condition that the determination unit 43 obtains the determination result that the biometric information X matches the biometric information Y.
  • the signature received from the client 10 (the signature generated by the signature generation unit 21 of the client 10) is transmitted to the first server 30.
  • the first server 30 includes a message transmission unit 31, a signature reception unit 32, a first verification key storage unit 33, and a signature determination unit 34.
  • the message transmission unit 31 and the first verification key storage unit 33 are the same as those elements in the first embodiment.
  • the signature receiving unit 31 receives the signature transmitted by the signature transmitting unit 22 included in the second server 40.
  • the signature determination unit 34 also includes the first verification key puk, the message transmitted by the message transmission unit 31 to the client 10 (message corresponding to the challenge), and the signature received by the signature reception unit 32 from the second server 40. And are used to determine if the signature is a valid signature. In other words, the signature determination unit 34 determines whether the received signature is a signature generated based on the message using the signature key suk paired with the first verification key puk. This operation is similar to the operation of the signature determination unit 34 in the first embodiment.
  • the signature determination unit 34 satisfies both the condition that the signature is determined to be a correct signature and the condition that the determination result that the biometric information X and the biometric information Y match is obtained. First, it is determined that the authentication of the person to be authenticated has succeeded. If either or both of the above two conditions are not satisfied, the signature determination unit 34 determines that the authentication of the authenticated person has failed. That is, in the third embodiment, it can be said that the signature determination unit 34 includes the authentication determination unit 37 in the second embodiment.
  • the signature transmission unit 22 transmits the signature to the first server 30 on condition that the determination unit 43 has obtained the determination result that the biometric information X and the biometric information Y match. Therefore, that the signature receiving unit 31 has received the signature means that the determination result that the biometric information X and the biometric information Y match has been obtained. That is, since the signature receiving unit 31 receives the signature, the signature transmitting unit 22 determines that the condition that the determination result that the biometric information X matches the biometric information Y is obtained is satisfied.
  • the anonymity index transmission unit 17 and the message reception unit 19 are realized by, for example, a CPU of a computer that operates according to a program for the client and a communication interface of the computer.
  • the CPU may read the client program from a program recording medium such as a program storage device of a computer, and operate as the anonymity index transmitting unit 17 and the message receiving unit 19 using the communication interface according to the program.
  • the anonymity providing unit 13, the anonymity providing index calculating unit 16, and the signature creating unit 21 are realized by, for example, a CPU of a computer that operates according to a client program.
  • the CPU may read the client program from the program recording medium as described above, and operate as the anonymity providing unit 13, the anonymity providing index calculating unit 16, and the signature creating unit 21 according to the program.
  • the public key storage unit 11, the confidential information storage unit 14, and the signature key storage unit 20 are realized by, for example, a storage device included in a computer that realizes the client 10.
  • the anonymity index receiving unit 42 and the signature transmitting unit 22 are realized by, for example, a CPU of a computer that operates according to a server program and a communication interface of the computer.
  • the CPU may read the server program from a program recording medium such as a program storage device of a computer, and operate as the anonymity index receiving unit 42 and the signature transmitting unit 22 by using the communication interface according to the program.
  • the determination unit 43 is realized by, for example, the CPU of a computer that operates according to the server program.
  • the CPU may read the server program from the program recording medium as described above and operate as the determination unit 43 according to the program.
  • the private key storage unit 41 is realized by, for example, a storage device included in a computer that realizes the second server 40.
  • the message transmitting unit 31 and the signature receiving unit 32 are realized by, for example, a CPU of a computer that operates according to a server program and a communication interface of the computer.
  • the CPU may read the server program from a program recording medium such as a program storage device of a computer and operate as the message transmitting unit 31 and the signature receiving unit 32 using the communication interface according to the program.
  • the signature determination unit 34 is realized by, for example, the CPU of a computer that operates according to the server program.
  • the CPU may read the server program from the program recording medium as described above, and operate as the signature determination unit 34 according to the program.
  • the first verification key storage unit 33 is realized by, for example, a storage device included in a computer that realizes the first server 30.
  • the server program installed in the first server 30 and the server program installed in the second server 40 is another program.
  • FIG. 9 is a flowchart showing an example of the processing progress of the third embodiment. Note that detailed description of the items already described is omitted. In this example, it is assumed that the message receiving unit 19 has already received the message and holds the message.
  • the biometric information Y of the person to be authenticated is input to the verification information input unit 15 (step S61).
  • the anonymity index calculation unit 16 encrypts an index indicating the proximity of the biometric information X and the biometric information Y based on the biometric information Y and the template stored in the anonymity information storage unit 14.
  • the anonymity index is calculated (step S62). Steps S61 and S62 are the same as steps S11 and S12 (see FIG. 4).
  • the signature generation unit 21 also generates a signature using the signature key suk, based on the message already received by the message reception unit 19 (step S63). Note that step S63 may be executed before step S61 or step S62.
  • the anonymity index transmission unit 17 transmits the anonymity index generated in step S62 and the signature generated in step S63 to the second server 40 (step S64).
  • the anonymity index receiving unit 42 of the second server 40 receives the anonymity index and the signature from the client 10 (step S65).
  • the determination unit 43 decrypts the index from the anonymity index with the secret key sk (step S66). Further, the determination unit 43 determines whether or not the biometric information X and the biometric information Y match by determining whether or not the index is a value within a predetermined range defined in advance (step). S67). Steps S66 and S67 are the same as steps S15 and S16 (see FIG. 4).
  • the signature transmission unit 22 uses the signature received from the client 10 in step S65 as the first server, on condition that the determination unit 43 obtains the determination result that the biometric information X and the biometric information Y match. 30 (step S68).
  • the process for step S68 and the subsequent steps is not executed, and the process for the biometric information Y ends at that point, for example.
  • the second server 40 may or may not notify the determination result to the client 10.
  • the signature receiving unit 32 of the first server 30 receives the signature transmitted in step S68 (step S69).
  • the signature determination unit 34 uses the first verification key puk, the message sent by the message sending unit 31 to the client 10, and the signature received by the signature receiving unit 32 from the second server 40 to sign the signature. Is determined to be a correct signature (step S70).
  • the signature determination unit 34 satisfies both the condition that the signature is determined to be a correct signature and the condition that the determination result that the biometric information X and the biometric information Y match is obtained. By determining whether or not the authentication has succeeded or failed (step S71). As described above, in the present embodiment, that the signature receiving unit 31 has received the signature means that the determination result that the biometric information X and the biometric information Y match has been obtained. Therefore, the signature determination unit 34 may determine that the condition that the determination result that the biometric information X and the biometric information Y match is obtained is satisfied by confirming the completion of step S69.
  • the signature determination unit 34 determines that the signature is a correct signature, it determines that the authentication of the authenticated person has succeeded, and if the signature determination unit 34 determines that the signature is an incorrect signature, the authenticated person It can be determined that the above has failed.
  • the second server 40 causes the first server 30 to determine that the signature generated by the client 10 has the determination result that the biometric information X and the biometric information Y match. Send. Therefore, the fact that the first server 30 receives the signature from the second server 40 means that the determination result that the biometric information X and the biometric information Y match is obtained. If the signature determination unit 34 of the first server 30 determines that the received signature is a correct signature, it determines that the authentication has succeeded, and if the received signature is determined to be an invalid signature. , It is determined that the authentication has failed. Therefore, if both the condition that the signature is determined to be a correct signature and the condition that the determination result that the biometric information X and the biometric information Y match are obtained, the authentication succeeds.
  • the anonymity index calculating unit 16 calculates anonymity information corresponding to a plurality of types of items such as a fingerprint and a finger vein, and the determining unit 43 determines the individual items. For each time, it may be determined whether or not the biometric information X and the biometric information Y match. For example, in the first embodiment, if it is determined that X and Y match for all items, the certificate generation unit 45 may individually generate a certificate for each of those items. Then, the certificate determination unit 36 may determine, for each certificate, whether the certificate is a correct certificate.
  • FIG. 10 shows the client 10 and various servers in the above-described embodiments and their modifications (the first server 30 and the second server 40 in the first embodiment and the third embodiment, and the second embodiment). It is a schematic block diagram which shows the structural example of the computer which concerns on the server 50) in a form.
  • the computer used as the client 10 the computer used as the first server 30, and the computer used as the second server 40 are different computers. Also in the second embodiment, the computer used as the client 10 and the computer used as the server 50 are separate computers.
  • the computer 1000 includes a CPU 1001, a main storage device 1002, an auxiliary storage device 1003, an interface 1004, and a communication interface 1005.
  • the client 10, the first server 30, the second server 40, and the server 50 in each embodiment of the present invention and the modifications thereof are realized by a computer 1000.
  • the computer used as the client 10, the computer used as the first server 30, the computer used as the second server 40, and the computer used as the server 50 are different computers.
  • the operation of the computer 1000 that realizes the client 10 is stored in the auxiliary storage device 1003 in the form of a client program.
  • the CPU 1001 reads the client program from the auxiliary storage device 1003, expands it in the main storage device 1002, and executes the operation of the client 10 described in each of the above embodiments according to the client program.
  • the operation of the computer 1000 that realizes the first server 30 is stored in the auxiliary storage device 1003 in the form of a server program.
  • the CPU 1001 reads the server program from the auxiliary storage device 1003, expands it in the main storage device 1002, and according to the server program, the first server 30 described in the first and third embodiments described above. Perform the operation of.
  • the operation of the computer 1000 that realizes the second server 40 is stored in the auxiliary storage device 1003 in the form of a server program.
  • the CPU 1001 reads the server program from the auxiliary storage device 1003, expands it in the main storage device 1002, and according to the server program, the second server 40 described in the first and third embodiments. Perform the operation of.
  • the operation of the computer 1000 that realizes the server 50 is stored in the auxiliary storage device 1003 in the form of a server program.
  • the CPU 1001 reads the server program from the auxiliary storage device 1003, expands it in the main storage device 1002, and executes the operation of the server 50 described in the second embodiment according to the server program.
  • the auxiliary storage device 1003 is an example of a non-transitory tangible medium.
  • a non-transitory tangible medium a magnetic disk, a magneto-optical disk, a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory) connected via the interface 1004, A semiconductor memory etc. are mentioned.
  • the computer 1000 that receives the distribution may expand the program in the main storage device 1002 and operate according to the program.
  • the constituent elements of the client 10 may be realized by a general-purpose or dedicated circuit, a processor, or the like, or a combination thereof. These may be configured by a single chip, or may be configured by a plurality of chips connected via a bus. A part or all of each component may be realized by a combination of the above-described circuit and the like and a program. This also applies to the first server 30, the second server 40, and the server 50.
  • FIG. 11 is a block diagram showing an outline of the authentication system of the present invention.
  • the authentication system of the present invention includes a determination unit 43, a message transmission unit 31, a signature determination unit 34, an authentication determination unit 37, and the client 10.
  • the client 10 includes a confidential information storage unit 14, a confidential index calculation unit 16, and a signature generation unit 21.
  • the determination unit 43 determines whether or not the matching information and the registration information match based on a concealment index that is calculated by the client 10 and that conceals the index indicating the proximity of the registration information and the matching information. ..
  • the message sending unit 31 sends a message to the client 10.
  • the signature determination unit 34 determines whether the signature is a correct signature using the first verification key, its message, and the signature generated by the client 10.
  • the authentication determination unit 37 determines that the authentication is successful when it is determined that the collation information and the registration information match and the signature is determined to be a correct signature.
  • the anonymity information storage unit 14 stores anonymity information obtained by anonymizing the registration information.
  • the anonymity index calculating unit 16 calculates an anonymity index based on the collation information and the anonymity information.
  • the signature generation unit 21 uses the signature key to generate a signature based on the message.
  • An authentication system comprising a client, A determination unit that determines whether or not the verification information and the registration information match, based on a concealment index calculated by the client that conceals the index indicating the proximity of the registration information and the verification information.
  • a message sending unit for sending a message to the client A signature determination unit that determines whether the signature is a correct signature using the first verification key, the message, and the signature generated by the client; It is determined that the collation information and the registration information match, and if the signature is determined to be a correct signature, an authentication determination unit that determines that the authentication is successful,
  • the client is A confidential information storage unit that stores the confidential information obtained by concealing the registration information; A ciphering index calculation unit that calculates the ciphering index based on the collation information and the ciphering information;
  • An authentication system comprising: a signature generation unit that generates the signature based on the message using a signature key.
  • a certificate generation unit that generates a certificate using a certification key when it is determined that the verification information and the registration information match, A certificate determination unit that determines whether the certificate is a correct certificate using a second verification key and the certificate;
  • the signature generation means When it is determined that the verification information and the registration information match, a signature is generated,
  • the authentication determination unit The authentication system according to Appendix 1, wherein it is determined that the authentication is successful when the certificate is determined to be a correct certificate and the signature is determined to be a correct signature.
  • the first server provided with the certificate determination unit acquires the certificate generated by the certificate generation unit directly from the second server provided with the certificate generation unit via a communication network.
  • the certification key and the second verification key are common keys in the common key method.
  • the authentication system according to any one of appendices 2 to 5.
  • Appendix 7 The certificate generation unit, The authentication system according to appendix 6, which generates, as a certificate, a pair of a tag in a message authentication code and data used in generating the tag.
  • the certification key is a secret key in the public key system
  • the second verification key is a public key in the public key system.
  • the authentication system according to any one of appendices 2 to 5.
  • the determination unit, the message transmission unit, the signature determination unit, and the authentication determination unit are provided in one server, The signature generation means, The authentication system according to appendix 1, which generates a signature when it is determined that the verification information and the registration information match.
  • the message transmission unit, the signature determination unit, and the authentication determination unit are provided in the first server,
  • the determination unit is provided in the second server,
  • the second server is The authentication system according to claim 1, further comprising: a signature transmission unit that transmits the signature generated by the client to the first server on condition that it is determined that the collation information and the registration information match.
  • a concealment information storage unit that stores concealment information in which registration information is concealed; Concealment for calculating a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information based on the collation information input for collation with the registration information and the concealment information. And an indexization calculation section, A signature generation unit that generates a signature based on a given message using a signature key when the server determines that the verification information and the registration information match based on the anonymity index.
  • a client comprising: a certificate generated by the server when the server determines that the collation information and the registration information match; and a signature output unit that outputs the signature.
  • a server comprising: a certificate generation unit that generates a certificate using a certification key when it is determined that the verification information and the registration information match.
  • a message sending unit that sends a message to the client, When it is determined that the matching information and the registration information match, the client obtains the signature generated based on the message using the signature key, and uses the first verification key, the message, and the signature, A signature determination unit that determines whether the signature is a correct signature, When it is determined that the collation information and the registration information match, a certificate generated using a certification key is obtained, and the second verification key and the certificate are used to prove that the certificate is correct. Certificate determination unit that determines whether or not it is a certificate, An authentication determination unit that determines that the authentication is successful when the certificate is determined to be a correct certificate and the signature is determined to be a correct signature.
  • a message sending unit for sending a message to the client, When it is determined that the verification information and the registration information match, the client acquires a signature generated based on the message using a signature key, and the verification key, the message, and the signature are used to obtain the signature.
  • a signature determination unit that determines whether the signature is a correct signature
  • a server comprising: an authentication determination unit that determines that the authentication is successful when it is determined that the collation information and the registration information match, and the signature is determined to be a correct signature.
  • (Appendix 15) Calculated by the client, based on the concealment index that concealed the index indicating the proximity of the registration information and the verification information, a determination unit that determines whether or not the verification information and the registration information match.
  • a signature transmitting unit that transmits a signature generated by the client based on a message given from a predetermined server to the predetermined server on condition that it is determined that the collation information and the registration information match.
  • a server characterized by being provided.
  • a client that includes a confidential information storage unit that stores confidential information in which registered information is confidential, Based on the collation information input for collation with the registration information, and the concealment information, a concealment index obtained by concealing an index indicating the proximity of the registration information and the collation information is calculated, A given server Based on the anonymity index, it is determined whether or not the matching information and the registration information match, The predetermined server or a server different from the predetermined server sends a message to the client, If the client is When it is determined that the verification information and the registration information match, a signature key is used to generate a signature based on the message, The predetermined server, or a server different from the predetermined server, Determining whether the signature is a correct signature using the first verification key, the message, and the signature, An authentication method, characterized in that if it is determined that the collation information and the registration information match and that the signature is a correct signature, the authentication is successful.
  • Index calculation process A signature generation process for generating a signature based on a given message using a signature key when the server determines that the collation information and the registration information match based on the anonymity index, and
  • a client program for executing a signature output process for outputting a certificate generated by the server and the signature when the server determines that the verification information and the registration information match.
  • Appendix 18 A server program installed on a computer that operates as a server, On the computer, Based on a concealment index calculated by the client, which conceals the index indicating the proximity of the registration information and the verification information, a determination process of determining whether or not the verification information and the registration information match, and , A server program for executing a certificate generation process for generating a certificate using a certification key when it is determined that the matching information and the registration information match.
  • a message sending process for sending a message to the client When it is determined that the verification information and the registration information match, the client acquires a signature generated based on the message using a signature key, and the verification key, the message, and the signature are used to obtain the signature.
  • Signature determination processing for determining whether the signature is a correct signature and A server program for executing an authentication determination process for determining that authentication is successful when it is determined that the verification information and the registration information match and the signature is determined to be a correct signature.
  • Appendix 21 A server program installed on a computer that operates as a server, On the computer, Based on a concealment index calculated by the client, which conceals the index indicating the proximity of the registration information and the verification information, a determination process of determining whether or not the verification information and the registration information match, and , Executes a signature transmission process of transmitting a signature generated by the client based on a message given from a predetermined server to the predetermined server on condition that it is determined that the collation information and the registration information match.
  • a program for the server to make it.
  • the present invention is preferably applied to the authentication system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)

Abstract

2つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる認証システムを提供する。判定部43は、照合情報と登録情報とが合致するか否かを判定する。クライアント10の署名生成部21は、署名鍵を用いて、メッセージに基づいて署名を生成する。署名判定部34は、第1の検証鍵とメッセージと署名とを用いて、署名が正しい署名であるか否かを判定する。認証判定部37は、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。

Description

認証システム、クライアントおよびサーバ
 本発明は、認証システム、認証方法、並びに、認証システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムに関する。
 認証の一例として、生体認証がある。「生体認証」とは、被登録者の生体情報と、被認証者の生体情報とを照合することにより、被登録者と被認証者とが一致するか否かを確認する個人認証の手法である。
 また、「生体情報」とは、身体や行動に関する個人の一部の特徴から抽出されたデータ、または、その抽出されたデータを変換することによって生成されたデータである。このデータは、特徴量と称されることもある。
 また、「テンプレート」とは、生体認証のために予め保存される、被登録者の生体情報(以下では登録情報と呼ぶ。)から生成されたデータである。
 登録情報との照合のために入力される照合情報と、登録情報とが合致するか否かを判定し、両者が合致すると判定した場合に、クライアントが、チャレンジレスポンス方式に基づいてレスポンスを生成し、サーバがそのレスポンスを用いて認証を行う認証方式の仕様としてFIDO(Fast IDentity Online)がある。FIDOは、例えば、特許文献1に記載されている。
 FIDOは、生体情報に関する検証と、署名鍵の所持に関する検証とを行う認証(すなわち、2つの要素を利用した認証)であると言える。
特開2017-152880号公報
 FIDOのような2つの要素を利用した認証において、クライアントが実際には照合情報と登録情報とが合致するか否かの判定を行っていなくても、サーバが被認証者の認証に成功したと判定してしまうことが生じ得る。
 また、このような問題は、生体以外の2つの要素を利用した認証においても、防止できることが好ましい。
 そこで、本発明は、2つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる認証システム、認証方法、並びに、その認証システムに適用されるクライアント、サーバ、クライアント用プログラムおよびサーバ用プログラムを提供することを目的とする。
 本発明による認証システムは、クライアントを備える認証システムであって、前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントにメッセージを送信するメッセージ送信部と、第1の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、前記クライアントが、前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備えることを特徴とする。
 また、本発明によるクライアントは、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備えることを特徴とする。
 また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備えることを特徴とする。
 また、本発明によるサーバは、クライアントにメッセージを送信するメッセージ送信部と、照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備えることを特徴とする。
 また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントにメッセージを送信するメッセージ送信部と、前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備えることを特徴とする。
 また、本発明によるサーバは、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備えることを特徴とする。
 また、本発明による認証方法は、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、所定のサーバが、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、前記クライアントが、前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定することを特徴とする。
 また、本発明によるクライアント用プログラムは、登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、前記コンピュータに、前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理を実行させることを特徴とする。
 また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理を実行させることを特徴とする。
 また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントにメッセージを送信する送信処理、照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理を実行させることを特徴とする。
 また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、前記クライアントにメッセージを送信するメッセージ送信処理、前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理を実行させることを特徴とする。
 また、本発明によるサーバ用プログラムは、サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、前記コンピュータに、クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理を実行させることを特徴とする。
 本発明によれば、2つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる。
FIDOを適用したクライアントサーバシステムの例を示す模式図である。 図1に示すシステムの問題点を示す模式図である。 本発明の第1の実施形態の認証システムの構成例を示すブロック図である。 クライアント10に被認証者の生体情報Yが入力されてから、第2のサーバ40に生成された証明書をクライアント10が受信するまでの処理経過の例を示すフローチャートである。 クライアント10が、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を、第2のサーバ40から受信した後の処理経過の例を示すフローチャートである。 本発明の第2の実施形態の認証システムの構成例を示すブロック図である。 第2の実施形態において、判定部43が生体情報Xと生体情報Yとが合致すると判定した後の処理経過の例を示すフローチャートである。 本発明の第3の実施形態の認証システムの構成例を示すブロック図である。 第3の実施形態の処理経過の例を示すフローチャートである。 各実施形態やその変形例におけるクライアント10や種々のサーバに係るコンピュータの構成例を示す概略ブロック図である。 本発明の認証システムの概要を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。以下の各実施形態では、本発明の認証システムが生体認証に適用される場合を例にして説明する。ただし、本発明の認証システムは、生体認証以外の認証に適用されてもよい。
 まず、FIDOについてより具体的に説明する。
 図1は、FIDOを適用したクライアントサーバシステムの例を示す模式図である。図1に例示するシステムは、クライアント801と、サーバ901とを備える。クライアント801は、照合部802と、署名生成部803とを備える。サーバ901は、チャレンジ送信部902と、検証部903とを備える。
 照合部802は、クライアント801が予め保持するテンプレートを用いて、登録情報と、クライアント801に入力される照合情報とが合致するか否かを判定する。照合情報と登録情報とが合致しなければ、処理を終了する。照合情報と登録情報とが合致すると判定された場合、署名生成部803は、クライアント801が予め保持する署名鍵を用いて、チャレンジレスポンス方式のチャレンジに基づいて署名を生成する。なお、チャレンジは、チャレンジ送信部902によってクライアント801に送信される。
 クライアント801は、生成された署名を、レスポンスとしてサーバ901に送信する。検証部903は、サーバ901が保持する検証鍵と、クライアント801に送信したメッセージと、クライアント801から受信した署名とを用いて、署名に対する検証を行う。具体的には、検証部903は、署名が、サーバ901が送信したメッセージに基づいて、サーバ901が保持する検証鍵と対になる署名鍵によって生成されたものであるか否かを判定する。以下、サーバが送信したメッセージに基づいて、サーバが保持する検証鍵と対になる署名鍵によって生成された署名を、正しい署名と記す。正しい署名に該当しない署名を、不正な署名と記す。検証部903は、署名が正しい署名であると判定した場合には、被認証者の認証に成功したと判定し、署名が不正な署名であると判定した場合には、被認証者の認証に失敗したと判定する。
 上記のように、FIDOでは、クライアント801が照合情報と登録情報とが合致するか否かを判定する。そして、照合情報と登録情報とが合致と判定された場合、サーバ901が、クライアント801で生成された署名が正しい署名であるか否かを判定する。
 図1に示すシステムには、以下の問題がある。図2は、図1に示すシステムの問題点を示す模式図である。図2に示すように、クライアント801には、マルウェア804(あるいは、不正なアプリケーションソフトウェア)が組み込まれる場合がある。照合部802が、照合情報と登録情報とが合致するか否かの判定を行っていなくても、マルウェア804が、照合情報と登録情報とが合致すると判定されたという情報を署名生成部803に与えると、署名生成部803が署名を生成し、サーバ901の検証部903が被認証者の認証に成功したと判定してしまうことが生じ得る。すなわち、クライアント801が実際には照合情報と登録情報とが合致するか否かの判定を行っていなくても、サーバ901が被認証者の認証に成功したと判定してしまうことが生じ得る。
 本発明は、このような問題を解決するものである。以下、本発明の各実施形態を説明する。
実施形態1.
 図3は、本発明の第1の実施形態の認証システムの構成例を示すブロック図である。認証システムは、クライアント10と、第1のサーバ30と、第2のサーバ40とを備える。図3では、1台のクライアント10を図示しているが、クライアント10は複数存在していてもよい。クライアント10と、第1のサーバ30と、第2のサーバ40とは、通信ネットワークを介して通信可能である。
 クライアント10は、公開鍵記憶部11と、登録情報入力部12と、秘匿化部13と、秘匿化情報記憶部14と、照合情報入力部15と、秘匿化指標算出部16と、秘匿化指標送信部17と、結果受信部18と、メッセージ受信部19と、署名鍵記憶部20と、署名生成部21と、署名送信部22とを備える。
 第1のサーバ30は、メッセージ送信部31と、署名受信部32と、第1の検証鍵記憶部33と、署名判定部34と、第2の検証鍵記憶部35と、証明書判定部36と、認証判定部37とを備える。
 第2のサーバ40は、秘密鍵記憶部41と、秘匿化指標受信部42と、判定部43と、証明鍵記憶部44と、証明書生成部45と、結果送信部46とを備える。
 公開鍵記憶部11は、第2のサーバ40によって生成され、第2のサーバ40から送信される公開鍵(pkと記す。)を記憶する記憶装置である。
 図示を省略しているが、第2のサーバ40は、公開鍵pkおよび秘密鍵(skと記す。)とを生成する手段を備える。公開鍵pkで秘匿化されたデータについては、秘密鍵skによって秘匿化の解除が可能である。クライアント10は第2のサーバ40から公開鍵を受信し、公開鍵記憶部11に記憶させればよい。また、第2のサーバ40は、秘密鍵skを秘密鍵記憶部41に記憶させる。ただし、公開鍵pkおよび秘密鍵skは、第2のサーバ40以外の装置で生成されてもよい。
 登録情報入力部12は、登録情報の入力を受け付ける。各実施形態では、登録情報として、被登録者の生体情報が登録情報入力部12に入力される。
 なお、各実施形態では、登録情報、および、登録情報との照合のために入力される照合情報が、共通の次元のベクトルで表されている場合を例にして説明する。
 登録情報入力部12は、登録情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を登録情報とする場合、登録情報入力部12は、指紋を読み取り、その指紋から登録情報となるベクトルを抽出し、そのベクトルの入力を受け付ける入力デバイスであってもよい。また、登録情報入力部12は、登録情報となるベクトルが直接入力される入力デバイスであってもよい。
 なお、生体情報は、指紋以外に、虹彩、網膜、顔、血管(静脈)、掌紋、声紋、またはこれらの組み合わせから抽出されてもよい。生体情報は、上述した例以外の、生体を識別可能な他の情報から抽出されてもよい。
 登録情報入力部12に入力される被登録者の生体情報(登録情報)に該当するベクトルをXと記す。
 秘匿化部13は、登録情報入力部12に入力された被登録者の生体情報Xを秘匿化し、生体情報Xを秘匿化した情報(秘匿化情報と記す。)を、秘匿化情報記憶部14に記憶させる。秘匿化情報記憶部14は、秘匿化情報を記憶する記憶装置である。
 この秘匿化情報は、生体認証のために予め記憶される、被登録者の生体情報から生成されたデータである。従って、この秘匿化情報は、テンプレートである。なお、公開鍵記憶部11に記憶される公開鍵pkは、被登録者の生体情報から生成されたデータではないので、公開鍵pkはテンプレートではない。
 本実施形態では、秘匿化の具体例として、暗号化を例にして説明する。すなわち、秘匿化部13は、登録情報入力部12に入力された被登録者の生体情報Xを前述の公開鍵pkによって暗号化し、暗号化された生体情報X(Enc(X)と記す。)を、秘匿化情報記憶部14に記憶させる。
 また、各実施形態では、秘匿化部13が、加法準同型性を有する暗号方式によって、被登録者の生体情報Xを暗号化する場合を例にして説明する。すなわち、本例において、公開鍵pkは、加法準同型性を有する公開鍵暗号方式における公開鍵である。
 以下、加法準同型性を有する暗号方式の性質について説明する。この説明では、平文mを公開鍵pkで暗号化することによって得られる暗号文を、Enc(pk,m)と記す。また、Enc(pk,m)をさらに別の記号(例えば、c)で表す場合には、Enc(pk,m)→cと記す。また、以下の説明では、x,yが平文の数値であり、zが平文の整数であるとする。
 加法準同型性を有する暗号方式では、公開鍵pkによるxの暗号文c(すなわち、Enc(pk,x)→c)と、公開鍵pkによるyの暗号文c(すなわち、Enc(pk,y)→c)とから、x+yの暗号文Enc(pk,x+y)を計算可能である。以下、この演算を、
Figure JPOXMLDOC01-appb-M000001
 
 
で表す。すなわち、以下に示す式(1)が成り立つ。
Figure JPOXMLDOC01-appb-M000002
 
 また、上記の演算を繰り返すことで、公開鍵pkによるxの暗号文c(すなわち、Enc(pk,x)→c)と、整数zから、x・zの暗号文(すなわち、Enc(pk,x・z))を計算可能であることが分かる。以下、この演算を、
Figure JPOXMLDOC01-appb-M000003
 
で表す。すなわち、以下に示す式(2)が成り立つ。
Figure JPOXMLDOC01-appb-M000004
 
 加法準同型性を有する暗号方式の例として、例えば、ECElgamal暗号等がある。従って、本発明において、ECElgamal暗号を採用してもよい。ただし、ECElgamal暗号は一例であり、本発明では、加法準同型性を有する暗号方式を採用すればよい。
 秘匿化情報記憶部14は、加法準同型性を有する公開鍵暗号方式における公開鍵pkによって、被登録者の生体情報Xを暗号化することで得られたEnc(X)を、テンプレートとして記憶する。
 照合情報入力部15は、照合情報の入力を受け付ける。各実施形態では、照合情報として、被認証者の生体情報が照合情報入力部15に入力される。前述のように、登録情報および照合情報は、共通の次元のベクトルで表されている。
 照合情報入力部15は、照合情報に応じた入力デバイスであればよい。例えば、指紋から抽出される生体情報を照合情報とする場合、照合情報入力部15は、指紋を読み取り、その指紋から照合情報となるベクトルを抽出し、そのベクトルの入力を受け付ける入力デバイスであってもよい。また、照合情報入力部15は、照合情報となるベクトルが直接入力される入力デバイスであってもよい。また、登録情報入力部12と照合情報入力部15とが共通の入力デバイスであってもよい。
 照合情報入力部15に入力される被認証者の生体情報(照合情報)に該当するベクトルをYと記す。
 秘匿化指標算出部16は、被認証者の生体情報Yと、テンプレート(すなわち、被登録者の生体情報Xを暗号化することで得られたEnc(X))とに基づいて、生体情報Xと生体情報Yとの近さを示す指標を暗号化したデータ(以下、秘匿化指標と記す。)を算出する。このとき、秘匿化指標算出部16は、テンプレートEnc(X)を復号することなく、秘匿化指標を算出する。
 以下、生体情報Xと生体情報Yとの近さを示す指標として、XとYの内積を採用する場合を例にして説明する。ただし、内積は例示であり、上記の指標は、XとYの内積に限定されない。また、以下では、指標が内積である場合の処理の一例を示す。以下の説明では、生体情報Xおよび生体情報Yは、いずれもn次元のベクトルであるものとする。そして、Xの各要素は、X=(x,・・・,x)と表され、Yの各要素は、Y=(y,・・・,y)と表されるものとする。また、記号iで1,・・・,nを表すものとする。
 生体情報Xと生体情報Yとの内積は、Σx・yである。
 指標が内積である場合、秘匿化部13は、生体情報Xが入力されると、公開鍵pkでXの各要素x~xをそれぞれ暗号化する。そして、秘匿化部13は、暗号化した各データをテンプレートとして秘匿化情報記憶部14に記憶させる。xを暗号化したデータをEnc(x)と記す。すなわち、本例では、秘匿化部13は、Enc(x),・・・,Enc(x)を生成し、それらのデータを秘匿化情報記憶部14に記憶させる。本例では、このEnc(x),・・・,Enc(x)がテンプレートに該当する。
 内積Σx・yを暗号化したデータは、Enc(Σx・y)と表される。次に、生体情報Yが入力された時に秘匿化指標算出部16がEnc(Σx・y)を算出する演算について説明する。
 まず、生体情報Y=(y,・・・,y)が入力されると、秘匿化指標算出部16は、個々のi(i=1,・・・,n)について、テンプレートに含まれているEnc(x)と、yとを用いて、
Figure JPOXMLDOC01-appb-M000005
 
を計算する。個々のiについてこの計算を行うので、n個の暗号文が得られる。
 次に、秘匿化指標算出部16は、そのn個の暗号文を用いて、
Figure JPOXMLDOC01-appb-M000006
 
を計算する。この計算の結果は、Enc(Σx・y)であり、生体情報Xと生体情報Yとの内積Σx・yを暗号化したデータ(秘匿化指標)である。
 秘匿化指標送信部17は、秘匿化指標算出部16によって算出された秘匿化指標を第2のサーバ40に送信する。
 生体情報Xと生体情報Yとの近さを示す指標として、XとYの内積ではなく、例えば、「XとYのハミング距離」や、「XとYのユークリッド距離の二乗」を採用してもよい。
 説明を分かり易くするために、以下では、第2のサーバ40が備える要素について説明する。まだ、クライアント10の要素のうち、まだ説明していない要素については、後述する。
 秘匿化指標受信部42は、クライアント10の秘匿化指標送信部17が送信した秘匿化指標を受信する。
 秘密鍵記憶部41は、公開鍵pkと対になる秘密鍵skを記憶する記憶装置である。前述のように、図示を省略しているが、第2のサーバ40は、公開鍵pkおよび秘密鍵skを生成する手段を備え、秘密鍵記憶部41は、その秘密鍵skを記憶する。
 判定部43は、秘密鍵記憶部41に記憶されている秘密鍵skによって、秘匿化指標受信部42が受信した秘匿化指標(指標を暗号化したデータ)から指標を復号する。なお、復号は、秘匿化の解除であると言うことができる。指標は数値であり、判定部43は、秘匿化指標から復号された指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Xと生体情報Yとが合致するか否か(換言すれば、被登録者と被認証者とが合致するか否か)を判定する。すなわち、判定部43は、秘匿化指標から復号された指標が、所定範囲内の値であるならば、生体情報Xと生体情報Yとが合致すると判定する(換言すれば、被登録者と被認証者とが合致すると判定する)。また、判定部43は、秘匿化指標から復号された指標が、所定範囲内の値でないならば、生体情報Xと生体情報Yとが合致しないと判定する(換言すれば、被登録者と被認証者とが合致しないと判定する)。
 上記のように、秘匿化指標から復号された指標が、所定範囲内の値であるか否かによって、生体情報Xと生体情報Yとが合致するか否かを判定する。従って、生体情報Xと生体情報Yとが完全に一致していなくても(問題にならない程度のずれが生じていても)、指標が所定範囲内の値であれば、生体情報Xと生体情報Yとが合致すると判定し得る。なお、所定範囲を用いる処理は、問題にならない程度のずれが生じていても生体情報Xと生体情報Yとが合致すると判定する処理の一例である。
 証明鍵記憶部44は、生体情報Xと生体情報Yとが合致すると判定されたことを示す証明書の生成時に用いる証明鍵(sakと記す。)を記憶する記憶装置である。図示を省略しているが、第2のサーバ40は、証明鍵sakと、第2の検証鍵(pakと記す。)とを生成する手段を備える。第2の検証鍵pakによって、証明書が与えられたときに、その証明書が正しい証明書であるか否かを判定することができる。証明書が正しい証明書であるか否かの判定については、後述する。第2のサーバ40は、証明鍵sakおよび第2の検証鍵pakを予め生成し、証明鍵sakを証明鍵記憶部44に記憶させ、第2の検証鍵pakを第1のサーバ30に送信する。そして、第2の検証鍵pakは、第1のサーバ30の第2の検証鍵記憶部35に記憶される。ただし、証明鍵sakおよび第2の検証鍵pakは、第2のサーバ40以外の装置で生成されてもよい。
 本例では、証明鍵sakは、公開鍵方式における秘密鍵であり、第2の検証鍵pakは、公開鍵方式における公開鍵であるものとする。
 証明書生成部45は、生体情報Xと生体情報Yとが合致すると判定された場合に、そのことを示す証明書を、証明鍵sakを用いて生成する。本例では、証明書は、データと、そのデータに基づいて証明鍵sakによって生成された署名との組であるものとする。
 証明書生成部45が証明書を生成するために用いるデータとして、例えば、クライアント10のID(IDentification)、第2のサーバ40のID、タイムスタンプ(例えば、クライアント10から秘匿化指標を受信した時刻のタイムスタンプ)、クライアント10が第1のサーバ30から受信するメッセージ、または、クライアント10と第2のサーバ40との間のセッションID等、あるいは、それらのデータから生成されたデータを用いることができる。すなわち、証明書生成部45は、例えば、上記のデータのうち1つまたは複数、あるいは、それらから生成されたデータと、証明鍵sakを用いてそのデータに基づいて生成した署名との組を、証明書とすればよい。
 なお、クライアント10が第1のサーバ30から受信するメッセージとは、第1のサーバ30(具体的には、メッセージ送信部31)がチャレンジレスポンス方式におけるチャレンジとしてクライアント10に送信するメッセージである。このメッセージやクライアント10のIDを証明書生成時に用いる場合には、クライアント10の秘匿化指標送信部17が、秘匿化指標とともに、クライアント10のIDまたはメッセージを第2のサーバ40に送信すればよい。
 なお、証明書を生成するために用いるデータは、上記の例に限定されない。
 また、判定部43によって生体情報Xと生体情報Yとが合致しないと判定された場合には、証明書生成部45は証明書を生成しない。
 結果送信部46は、判定部43の判定結果をクライアント10に送信する。さらに、結果送信部46は、生体情報Xと生体情報Yとが合致すると判定されたことによって、証明書生成部45によって証明書(生体情報Xと生体情報Yとが合致すると判定されたことを示す証明書)が生成された場合には、判定部43の判定結果とともにその証明書も、クライアント10に送信する。
 以下、クライアント10の要素のうちまだ説明していない要素について、説明する。
 結果受信部18は、結果送信部46が送信した判定部43の判定結果を受信し、結果送信部46が判定結果とともに証明書も送信した場合には、その証明書も受信する。
 以下に説明するクライアント10の要素は、生体情報Xと生体情報Yとが合致すると判定された場合に関する要素である。従って、結果受信部18が、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を第2のサーバ40から受信したものとして説明する。
 メッセージ受信部19は、第1のサーバ30(具体的には、メッセージ送信部31)が送信するメッセージを受信する。このメッセージは、チャレンジレスポンス方式におけるチャレンジに該当する。
 署名鍵記憶部20は、メッセージ受信部19が受信したメッセージ(チャレンジ)に基づいて署名を生成する際に用いる署名鍵(sukと記す。)を記憶する記憶装置である。図示を省略しているが、クライアント10は、署名鍵sukと、第1の検証鍵(pukと記す。)とを生成する手段を備える。第1の検証鍵pukによって、署名とメッセージが与えられたときに、その署名が正しい署名であるか否かを判定することができる。クライアント10は、署名鍵sukおよび第1の検証鍵pukを予め生成し、署名鍵sukを署名鍵記憶部20に記憶させ、第1の検証鍵pukを第1のサーバ30に送信する。そして、第1の検証鍵pukは、第1のサーバ30の第1の検証鍵記憶部33に記憶される。ただし、署名鍵sukおよび第1の検証鍵pukは、クライアント10以外の装置で生成されてもよい。
 本例では、署名鍵sukは、公開鍵方式における秘密鍵であり、第1の検証鍵pukは、公開鍵方式における公開鍵であるものとする。
 署名生成部21は、結果受信部18が、生体情報Xと生体情報Yとが合致するという判定結果を第2のサーバ40から受信した場合に、署名を生成する。署名生成部21は、メッセージ受信部19が第1のサーバ30から受信したメッセージ(チャレンジ)に基づいて、署名鍵sukを用いて、署名を生成する。署名生成部21によって生成された署名は、チャレンジレスポンス方式におけるレスポンスに該当する。
 なお、クライアント10がメッセージを第1のサーバ30から取得するタイミングは、署名生成前であればよい。例えば、予め、メッセージ送信部31がクライアント10にメッセージを送信し、メッセージ受信部19がそのメッセージを受信し、メッセージ受信部19が、署名生成時までそのメッセージを保持していてもよい。また、例えば、結果受信部18が第2のサーバ40から、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を受信した時点で、メッセージ受信部19が第1のサーバ30にメッセージの送信を要求し、その要求に応じてメッセージ送信部31が送信したメッセージを受信し、その後、署名生成部21が署名を生成してもよい。
 署名送信部22は、署名生成部21が生成した署名と、結果受信部18が第2のサーバ40から受信した証明書とを、第1のサーバ30に送信する。
 以下、第1のサーバ30が備える要素について説明する。
 メッセージ送信部31は、チャレンジレスポンス方式におけるチャレンジに該当するメッセージを生成し、そのメッセージをクライアント10に送信する。このメッセージは、メッセージ受信部19によって受信される。
 署名受信部32は、クライアント10の署名送信部22が送信した署名および証明書を受信する。
 第1の検証鍵記憶部33は、クライアント10によって生成され、クライアント10から送信される第1の検証鍵pukを記憶する記憶装置である。前述のように、クライアント10は、署名鍵sukと第1の検証鍵pukとを生成する手段を備え、第1の検証鍵pukを予め第1のサーバ30に送信する。第1のサーバ30は、第1の検証鍵pukを受信し、第1の検証鍵pukを第1の検証鍵記憶部33に予め記憶させておく。
 第2の検証鍵記憶部35は、第2のサーバ40によって生成され、第2のサーバ40から送信される第2の検証鍵pakを記憶する記憶装置である。前述のように、第2のサーバ40は、証明鍵sakと第2の検証鍵pakとを生成する手段を備え、第2の検証鍵pakを予め第1のサーバ30に送信する。第1のサーバ30は、第2の検証鍵pakを受信し、第2の検証鍵pakを第2の検証鍵記憶部35に予め記憶させておく。
 署名判定部34は、第1の検証鍵pukと、メッセージ送信部31がクライアント10に送信したメッセージ(チャレンジに該当するメッセージ)と、署名受信部32がクライアント10から受信した署名とを用いて、署名が正しい署名であるか否かを判定する。換言すれば、署名判定部34は、受信した署名が、そのメッセージに基づいて、第1の検証鍵pukと対になる署名鍵sukを用いて生成された署名であるか否かを判定する。受信した署名が、そのメッセージに基づいて、第1の検証鍵pukと対になる署名鍵sukを用いて生成された署名であるならば、受信した署名は、正しい署名である。そうでなければ、受信した署名は、不正な署名である。
 証明書判定部36は、第2の検証鍵pakと、署名受信部32がクライアント10から受信した証明書とを用いて、その証明書が正しい証明書であるか否かを判定する。前述のように、証明書はデータと署名との組である。証明書に含まれる署名が、その証明書に含まれるデータに基づいて、第2の検証鍵pakと対になる証明鍵sakを用いて生成された署名であるならば、その証明書は、正しい証明書である。そうでなければ、その証明書は、不正な証明書である。従って、証明書判定部36は、クライアント10から受信した証明書に含まれる署名が、その証明書に含まれるデータに基づいて、第2の検証鍵pakと対になる証明鍵sakを用いて生成された署名であるであるか否かを判定することによって、受信した証明書が正しい証明書であるか否かを判定すればよい。
 認証判定部37は、署名判定部34の判定結果と、証明書判定部36の判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する。具体的には、認証判定部37は、署名判定部34によって、署名が正しい署名であると判定され、かつ、証明書判定部36によって、証明書が正しい証明書であると判定された場合に、被認証者の認証に成功したと判定する(換言すれば、被認証者が被登録者であると確定する)。すなわち、署名が正しい署名であると判定されたという条件と、証明書が正しい証明書であると判定されたという条件の両方が満たされた場合に、認証判定部37は、被認証者の認証に成功したと判定する。
 一方、上記の2つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部37は、被認証者の認証に失敗したと判定する(換言すれば、被認証者が被登録者でないと判定する)。
 認証判定部37が被認証者の認証に成功したと判定した場合に、認証後の処理を実行すればよい。例えば、一例として、第1のサーバ30が被認証者の認証に成功した旨の情報をクライアント10に送信し、クライアント10はその情報を受信した場合に、認証後の処理を実行してもよい。ただし、認証後の処理を実行する装置は、クライアント10に限定されず、認証判定部37が被認証者の認証に成功したと判定したことを条件に、クライアント10以外の装置が認証後の処理を実行してもよい。
 クライアント10において、秘匿化指標送信部17、結果受信部18、メッセージ受信部19および署名送信部22は、例えば、クライアント用プログラムに従って動作するコンピュータのCPU(Central Processing Unit )、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標送信部17、結果受信部18、メッセージ受信部19および署名送信部22として動作すればよい。また、秘匿化部13、秘匿化指標算出部16および署名生成部21は、例えば、クライアント用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、秘匿化部13、秘匿化指標算出部16および署名生成部21として動作すればよい。また、公開鍵記憶部11、秘匿化情報記憶部14および署名鍵記憶部20は、例えば、クライアント10を実現するコンピュータが備える記憶装置によって実現される。
 また、第2のサーバ40において、秘匿化指標受信部42および結果送信部46は、例えば、サーバ用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部42および結果送信部46として動作すればよい。また、判定部43および証明書生成部45は、例えば、サーバ用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部43および証明書生成部45として動作すればよい。また、秘密鍵記憶部41および証明鍵記憶部44は、例えば、第2のサーバ40を実現するコンピュータが備える記憶装置によって実現される。
 また、第1のサーバ30において、メッセージ送信部31および署名受信部32は、例えば、サーバ用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、メッセージ送信部31および署名受信部32として動作すればよい。また、署名判定部34、証明書判定部36および認証判定部37は、例えば、サーバ用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、署名判定部34、証明書判定部36および認証判定部37として動作すればよい。また、第1の検証鍵記憶部33および第2の検証鍵記憶部35は、例えば、第1のサーバ30を実現するコンピュータが備える記憶装置によって実現される。
 本実施形態では、第1のサーバ30と第2のサーバ40は、別のサーバであるので、第1のサーバ30に搭載されるサーバ用プログラムと、第2のサーバ40に搭載されるサーバ用プログラムは別のプログラムである。
 以下、第1の実施形態の処理経過について説明する。以下の説明では、既に、クライアント10が備える公開鍵記憶部11には公開鍵pkが記憶され、署名鍵記憶部20には署名鍵sukが記憶され、秘匿化情報記憶部14には、テンプレートEnc(X)(本例では、Enc(x),・・・,Enc(x))が記憶されているものとする。同様に、既に、第2のサーバ40が備える秘密鍵記憶部41には秘密鍵skが記憶され、証明鍵記憶部44には証明鍵sakが記憶されているものとする。同様に、既に、第1のサーバ30が備える第1の検証鍵記憶部33には第1の検証鍵pukが記憶され、第2の検証鍵記憶部35には第2の検証鍵pakが記憶されているものとする。また、以下に示す例では、クライアント10のメッセージ受信部19は、予め第1のサーバ30のメッセージ送信部31から、チャレンジに該当するメッセージを受信し、そのメッセージを保持しているものとする。
 図4は、クライアント10に被認証者の生体情報Yが入力されてから、第2のサーバ40に生成された証明書をクライアント10が受信するまでの処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
 まず、被認証者の生体情報Yが照合情報入力部15に入力される(ステップS11)。
 次に、秘匿化指標算出部16は、ステップS11で入力された生体情報Yと、秘匿化情報記憶部14に記憶されているテンプレート(Enc(X))とに基づいて、生体情報Xと生体情報Yとの近さを示す指標を暗号化したデータである秘匿化指標を算出する(ステップS12)。ステップS12において、秘匿化指標算出部16は、Enc(X)を復号することなく、秘匿化指標を算出する。
 本例では、上記の指標として生体情報Xと生体情報Yの内積を採用する。すなわち、秘匿化指標算出部16は、生体情報Yとテンプレートとに基づいて、生体情報Xと生体情報Yの内積を暗号化したデータ(秘匿化指標)を算出する。この暗号化された内積の算出方法については、既に説明したので、ここでは説明を省略する。また、前述のように、指標は内積に限定されず、指標として、例えば、「XとYのハミング距離」や、「XとYのユークリッド距離の二乗」を採用してもよい。
 次に、秘匿化指標送信部17は、ステップS12で算出された秘匿化指標を第2のサーバ40に送信する(ステップS13)。
 そして、第2のサーバ40の秘匿化指標受信部42は、その秘匿化指標をクライアント10から受信する(ステップS14)。
 次に、判定部43は、秘密鍵記憶部41に記憶されている秘密鍵skによって、秘匿化指標から指標を復号する(ステップS15)。さらに、判定部43は、秘匿化指標から復号された指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Xと生体情報Yとが合致するか否かを判定する(ステップS16)。
 図4では、ステップS16で、生体情報Xと生体情報Yとが合致すると判定された場合を示している。ステップS16で、生体情報Xと生体情報Yとが合致すると判定されると、証明書生成部45は、証明鍵記憶部44に記憶されている証明鍵sakを用いて、証明書を生成する(ステップS17)。
 ステップS17の後、結果送信部46は、生体情報Xと生体情報Yとが合致するという判定結果、および、ステップS17で生成された証明書を、クライアント10に送信する(ステップS18)。
 クライアント10の結果受信部18は、その判定結果および証明書を、第2のサーバ40から受信する(ステップS19)。
 ステップS16で、生体情報Xと生体情報Yとが合致しないと判定された場合には、証明書生成部45は証明書を生成しない(すなわち、ステップS17は実行されない)。そして、ステップS18において、結果送信部46は、生体情報Xと生体情報Yとが合致しないという判定結果をクライアント10に送信する。この場合、証明書は生成されないので、結果送信部46は、証明書を送信しない。そして、クライアント10の結果受信部18は、生体情報Xと生体情報Yとが合致しないという判定結果を受信する。クライアント10の結果受信部18が生体情報Xと生体情報Yとが合致しないという判定結果を受信した場合、生体情報Yの入力に対する処理を終了する。
 図5は、クライアント10が、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を、第2のサーバ40から受信した後の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
 クライアント10の結果受信部18が、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を、第2のサーバ40から受信した場合、署名生成部21は、メッセージ受信部19が既に第1のサーバ30から受信しているメッセージ(チャレンジ)に基づいて、署名鍵sukを用いて署名を生成する(ステップS31)。前述のように、この署名は、チャレンジレスポンス方式におけるレスポンスに該当する。
 なお、既に説明したように、結果受信部18が第2のサーバ40から、生体情報Xと生体情報Yとが合致するという判定結果、および、証明書を受信した時点で、メッセージ受信部19が第1のサーバ30にメッセージの送信を要求し、その要求に応じてメッセージ送信部31が送信したメッセージをメッセージ受信部19が受信し、その後、署名生成部21が署名を生成してもよい。
 ステップS31の後、署名送信部22は、ステップS31で生成された署名と、結果受信部18が第2のサーバ40から受信した証明書とを、第1のサーバ30に送信する(ステップS32)。
 第1のサーバ30の署名受信部32は、その署名および証明書をクライアント10から受信する(ステップS33)。
 次に、署名判定部34は、第1の検証鍵pukと、メッセージ送信部31が事前にクライアント10に送信したメッセージと、ステップS33で署名受信部32がクライアント10から受信した署名とを用いて、その署名が正しい署名であるか否かを判定する(ステップS34)。
 また、証明書判定部36は、第2の検証鍵pakと、ステップS33で署名受信部32がクライアント10から受信した証明書とを用いて、その証明書が正しい証明書であるか否かを判定する(ステップS35)。
 ステップS34およびステップS35の順序は問わない。ステップS34およびステップS35が並列に実行されてもよい。
 そして、認証判定部37は、署名判定部34の判定結果と、証明書判定部36の判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する(ステップS36)。署名が正しい署名であると判定されたという条件と、証明書が正しい証明書であると判定されたという条件の両方が満たされた場合に、認証判定部37は、被認証者の認証に成功したと判定する。上記の2つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部37は、被認証者の認証に失敗したと判定する。
 図4および図5を参照して説明した処理は、繰り返し実行されてよい。
 本実施形態によれば、クライアント10が、秘匿化指標算出部16で算出した秘匿化指標を第2のサーバ40に送信する。そして、第2のサーバ40では、判定部43が、秘匿化指標から指標を復号し、復号によって得られた指標に基づいて、照合情報と登録情報とが合致するか否かを判定する。照合情報と登録情報とが合致すると判定した場合、証明書生成部45が、証明鍵sakを用いて、その旨を示す証明書を生成する。そして、第2のサーバ40は、照合情報と登録情報とが合致するという判定結果、および、証明書を、クライアント10に送信する。すると、クライアント10において、署名生成部21は、第1のサーバ30から取得したメッセージに基づいて、署名鍵sukを用いて署名を生成する。そして、クライアント10は、署名(メッセージに対するレスポンス)および証明書を第1のサーバ30に送信する。第1のサーバ30では、署名判定部34が、第1の検証鍵pukとメッセージと署名とを用いて、署名が正しい署名であるか否かを判定する。また、証明書判定部36が、第2の検証鍵pakと証明書とを用いて、証明書が正しい証明書であるか否かを判定する。そして、認証判定部37は、署名が正しい署名であると判定されたという条件と、証明書が正しい証明賞であると判定されたという条件の両方が満たされた場合に、被認証者の認証に成功したと判定する。
 従って、クライアント10にマルウェアや不正なアプリケーションソフトウェアが組み込まれたとしても、マルウェアや不正なアプリケーションソフトウェアに起因して、認証に成功したと判定することを防止することができる。すなわち、実際には照合情報と登録情報とが合致するか否かの判定が行われていなくても、マルウェア等が、照合情報と登録情報とが合致するという偽の判定結果を署名生成部21に与えることによって、署名生成部21が、署名鍵sukを用いて、メッセージに基づいて署名を生成したとする。そして、その署名が第1のサーバ30に送信され、署名判定部34が、署名が正しい署名であると判定したとする。しかし、この場合、実際には照合情報と登録情報とが合致するか否かの判定が行われていないので、第2のサーバ40の証明書生成部45が証明書を生成しない。従って、第1のサーバ30において、証明書判定部36は、証明書が正しい証明書であるか否かを判定しない。その結果、認証判定部37が、被認証者の認証に成功したと判定することはない。さらに、クライアント10に組み込まれたマルウェア等が証明書を偽造して、その証明書を第1のサーバ30に送信したとしても、クライアント10やマルウェアは、第2の証明鍵pakと対になる証明鍵sakを持たないため、証明書判定部36は、偽造された証明書が正しい証明書であると判定することはない。このように、本実施形態では、2つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できるという効果が得られる。
 次に、上記の実施形態の種々の変形例について説明する。
 上記の実施形態では、クライアント10と第2のサーバ40とが、秘匿化指標を授受することによって、第2のサーバ40の判定部43が、生体情報Xと生体情報Yとが合致するか否かを判定する。判定部43が判定結果を導出する際のクライアント10と第2のサーバ40との通信において、チャレンジレスポンス方式を適用してもよい。
 また、クライアント10の秘匿化部13はテンプレートを生成する際に乱数を用いてテンプレートを生成してもよい。この場合、クライアント10は、テンプレート生成後に、その乱数を第2のサーバ40に送信し、その後、その乱数を消去する。第2のサーバ40は、乱数を受信すると、クライアント10にIDを割り当て、そのIDをクライアント10に通知する。クライアント10の秘匿化指標送信部17は、秘匿化指標を第2のサーバ40に送信する際、そのIDも送信する。第2のサーバ40は、秘匿化指標から指標を復号する際、そのIDに対応する乱数も用いて指標を復号すればよい。
 従って、生体情報Xと生体情報Yとが合致するか否かの判定のためにクライアント10から第2のサーバ40に送信されるデータは、上記の第1の実施形態で説明した秘匿化情報(XとYの内積を暗号化したデータ)に限定されない。
 これらの点は、他の実施形態でも同様である。
 また、上記の実施形態では、証明書は、第2のサーバ40からクライアント10を介して第1のサーバ30に送られる。第2のサーバ40が証明書を、通信ネットワークを介して直接、第1のサーバ30に送信してもよい。この場合、第2のサーバ40の結果送信部46は、生体情報Xと生体情報Yとが合致するという判定結果をクライアント10に送信するとともに、証明書を、通信ネットワークを介して直接、第1のサーバ30に送信すればよい。そして、第1のサーバ30において、例えば、署名受信部32が、その証明書を受信すればよい。
 クライアント10において、結果受信部18がその判定結果を受信すると、署名生成部21が署名を生成し、署名送信部22がその署名を、第1のサーバ30に送信すればよい。そして、第1のサーバ30がその署名を受信すればよい。このように、第1のサーバ30が、第2のサーバ40から証明書を受信し、クライアント10から署名を受信した後、第1のサーバ30は、ステップS34(図5参照)以降の処理を行えばよい。
 ここで、第1のサーバ30は、署名と証明書の対応付けを認識する必要がある。そのため、本変形例では、第1のサーバ30に送信される署名および証明書は、両者の対応が確認できるデータとともに第1のサーバ30に送信される。両者(署名および証明書)の対応が確認できるデータは、例えば、その両者に共通のデータであってもよい。以下、両者の対応が確認できるデータが、両者に共通のデータである場合を例にして説明する。この共通のデータとして、例えば、クライアント10と第2のサーバ40との間の通信のセッションIDや、第1のサーバ30がクライアント10に送信するメッセージ(チャレンジ)、これらの組合せ、または、これらの1つまたは複数、あるいは、それらから生成されたデータを用いることができる。ただし、これらのデータは例示であり、上記の共通のデータは、セッションIDやメッセージ等に限定されない。
 共通のデータがセッションIDである場合における処理の一例を説明する。結果送信部46は、第1のサーバ30に証明書を送信するときに、クライアント10と第2のサーバ40との間の通信のセッションIDとともに証明書を第1のサーバ30に送信する。この場合、クライアント10の署名送信部22は、署名生成部21によって生成された署名を第1のサーバ30に送信するときに、そのセッションIDとともに署名を第1のサーバ30に送信する。そして、第1のサーバ30は、セッションIDが共通である署名および証明書に対して、ステップS34(図5参照)以降の処理を行えばよい。
 共通のデータがメッセージ(チャレンジ)である場合における処理の一例を説明する。この場合、例えば、秘匿化指標送信部17が、秘匿化指標とともにメッセージを第2のサーバ40に送信すればよい。ただし、クライアント10から第2のサーバ40へのメッセージの送信態様は、上記の例に限定されない。結果送信部46は、第1のサーバ30に証明書を送信するときに、クライアント10から受信したメッセージとともに証明書を第1のサーバ30に送信する。この場合、クライアント10の署名送信部22は、署名生成部21によって生成された署名を第1のサーバ30に送信するときに、そのメッセージとともに署名を第1のサーバ30に送信する。そして、第1のサーバ30は、メッセージが共通である署名および証明書に対して、ステップS34(図5参照)以降の処理を行えばよい。
 また、上記の実施形態では、証明鍵sakが、公開鍵方式における秘密鍵であり、第2の検証鍵pakが、公開鍵方式における公開鍵である場合を例にして説明した。証明鍵sakおよび第2の検証鍵pakが、共通鍵方式における共通鍵であってもよい。
 さらに、証明鍵sakおよび第2の検証鍵pakが、共通鍵方式における共通鍵である場合、証明書生成部45が生成する証明書は、データと、メッセージ認証コード(Message Authentication Code :MAC)における、そのデータを用いて生成されるタグとの組であってもよい。メッセージ認証コードにおけるタグは、データと、タグ生成時に用いる鍵によって生成される。そして、データおよび鍵の組が共通であれば、生成されるタグも共通である。ここでは、タグ生成時に用いるデータが、タイムスタンプ(例えば、クライアント10から秘匿化指標を受信した時刻のタイムスタンプ)である場合を例にして説明する。ただし、タグ生成時に用いるデータは、タイムスタンプに限定されず、証明書を生成するために用いるデータとして例示した種々のデータ(クライアント10のID等の種々のデータ)であってもよい。
 証明書生成部45は、証明鍵sakと、タイムスタンプとを用いて、メッセージ認証コードにおけるタグを生成する。そして、タイムスタンプと生成されたタグとの組が、証明書として第1のサーバ30に送られる。証明書が第2のサーバ40から第1のサーバ30に送られる態様は、クライアント10を介して第1のサーバ30に送られる態様であってもよく、あるいは、クライアント10を介さずに、第2のサーバ40から直接、第1のサーバ30に送られる態様であってもよい。前者の態様の場合、結果送信部46が、証明書をクライアント10に送信し、署名送信部22がその証明書と署名とを第1のサーバ30に送信すればよい。後者の場合、結果送信部46が、証明書を、通信ネットワークを介して直接第1のサーバ30に送信すればよい。
 第1のサーバ30において、例えば、署名受信部32が証明書を受信すると、証明書判定部36は、証明書生成時(タグ生成時)に用いられた証明鍵が第2の検証鍵pakと対になる証明鍵sakであるか否かを判定することによって証明書が正しい証明書であるか否かを判定すればよい。すなわち、証明書判定部36は、第2の検証鍵pakと、取得した証明書に含まれるタイムスタンプとを用いて、メッセージ認証コードにおけるタグを生成する。証明書判定部36は、生成したタグと、取得した証明書に含まれるタグとが一致していれば、証明書生成時(タグ生成時)に用いられた証明鍵が第2の検証鍵pakと対になる証明鍵sakであると判定する。この場合、証明書判定部36は、受信した証明書が正しい証明書であると判定する。また、証明書判定部36は、生成したタグと、取得した証明書に含まれるタグとが一致していなければ、証明書生成時(タグ生成時)に用いられた証明鍵が第2の検証鍵pakと対になる証明鍵sakではないと判定する。この場合、証明書判定部36は、受信した証明書が不正な証明書であると判定する。
 また、第1のサーバ30とクライアント10との間のチャレンジレスポンスの授受が複数回行われる毎に、ステップS34~S36の処理を実行する構成であってもよい。すなわち、第1のサーバ30がクライアント10にメッセージ(チャレンジ)を送信し、第1のサーバ30は、署名(レスポンス)および証明書を取得するが、このチャレンジレスポンスの授受が複数回行われる毎に、ステップS34~S36の処理を実行すればよい。換言すれば、ステップS34~S36の処理を毎回は行わない構成であってもよい。この場合、ステップS34~S36の処理を行わないときには、例えば、ステップS35の処理を省略してよい。そして、認証判定部37は、署名判定部34によって、署名が正しい署名であると判定されたならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定されたならば、被認証者の認証に失敗したと判定してもよい。この点は、他の実施形態でも同様である。
 さらに、第1のサーバ30は、通常とは異なる事象を検出したとき、証明書の送信元が所定の送信元(例えば、攻撃者と認められる送信元)であるとき、あるいは、証明書の送信元が所定の送信元(ここでは、例えば、正規ユーザに該当する送信元)でないときに、ステップS34~S36の処理を実行し、その他の場合には、ステップS35の処理を省略する構成であってもよい。ステップS35の処理を省略する場合、上記のように、認証判定部37は、署名判定部34によって、署名が正しい署名であると判定されたならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定されたならば、被認証者の認証に失敗したと判定すればよい。この点は、他の実施形態でも同様である。
実施形態2.
 図6は、本発明の第2の実施形態の認証システムの構成例を示すブロック図である。第1の実施形態と同様の要素については、図3と同一の符号を付し、第1の実施形態と同様の動作に関しては説明を省略する。
 第2の実施形態の認証システムは、クライアント10と、サーバ50とを備える。クライアント10は複数存在していてもよい。クライアント10とサーバ50とは、通信ネットワークを介して通信可能である。
 第2の実施形態におけるクライアント10が備える各要素は、第1の実施形態におけるクライアント10が備える各要素と同様である。
 サーバ50は、メッセージ送信部31と、署名受信部32と、第1の検証鍵記憶部33と、署名判定部34と、認証判定部37と、秘密鍵記憶部41と、秘匿化指標受信部42と、判定部43と、結果送信部46とを備える。
 以下の説明では、既に、クライアント10が備える公開鍵記憶部11には公開鍵pkが記憶され、署名鍵記憶部20には署名鍵sukが記憶されているものとする。また、既に、サーバ50が備える秘密鍵記憶部41には秘密鍵skが記憶され、第1の検証鍵記憶部33には第1の検証鍵pukが記憶されているものとする。
 判定部43が生体情報Xと生体情報Yとが合致するか否かを判定するまでの動作は、第1の形態において、判定部43が生体情報Xと生体情報Yとが合致するか否かを判定するまでの動作と同様であるので、説明を省略する。
 第2の実施形態では、判定部43は、生体情報Xと生体情報Yとが合致すると判定した場合に、その判定結果を、認証判定部37に送る。
 生体情報Xと生体情報Yとが合致しないと判定した場合には、判定部43は、その判定結果を、認証判定部37に送らなくてよい。ただし、生体情報Xと生体情報Yとが合致しないと判定した場合においても、判定部43は、判定結果を認証判定部37に送ってもよい。以下では、生体情報Xと生体情報Yとが合致しないと判定した場合には、判定部43が、その判定結果を、認証判定部37に送らない場合を例にして説明する。
 また、第2の実施形態では、結果送信部46は、判定結果によらず、判定部43の判定結果をクライアント10に送信する。
 結果受信部18は、結果送信部46が送信した判定部43の判定結果を受信する。結果受信部18が、生体情報Xと生体情報Yとが合致しないという判定結果を受信した場合、生体情報Yの入力に対する処理を終了する。
 以下、結果受信部18が、生体情報Xと生体情報Yとが合致するという判定結果を受信した場合について説明する。この場合、署名生成部21は、メッセージ受信部19がサーバ50(具体的には、メッセージ送信部31)から受信したメッセージ(チャレンジ)に基づいて、署名鍵sukを用いて署名(レスポンス)を生成する。
 クライアント10がメッセージをサーバ50から取得するタイミングは、署名生成前であればよい。例えば、予め、メッセージ送信部31がクライアント10にメッセージを送信し、メッセージ受信部19がそのメッセージを受信し、メッセージ受信部19が、署名生成時までそのメッセージを保持していてもよい。また、例えば、結果受信部18がサーバ50から、生体情報Xと生体情報Yとが合致するという判定結果を受信した時点で、メッセージ受信部19がサーバ50にメッセージの送信を要求し、その要求に応じてメッセージ送信部31が送信したメッセージを受信し、その後、署名生成部21が署名を生成してもよい。これらの点は、第1の実施形態と同様である。
 署名送信部22は、署名生成部21が生成した署名をサーバ50に送信する。また、サーバ50の署名受信部32は、その署名を受信する。
 ここで、サーバ50は、署名と、判定部43が認証判定部37に送る判定結果との対応付けを認識する必要がある。そのため、第2の実施形態では、両者の対応が確認できるデータが、署名と、判定部43が認証判定部37に送る判定結果とに付加される。両者の対応が確認できるデータは、例えば、その両者に共通のデータであってもよい。以下、両者の対応が確認できるデータが、両者に共通のデータである場合を例にして説明する。この共通のデータとして、例えば、クライアント10とサーバ50との間のセッションIDや、サーバ50のメッセージ送信部31がクライアント10に送信するメッセージ(チャレンジ)、これらの組合せ、または、これらの1つまたは複数、あるいは、それらから生成されたデータを用いることができる。ただし、これらのデータは例示であり、上記の共通のデータは、セッションIDやメッセージ等に限定されない。
 共通のデータがセッションIDである場合における処理の一例を説明する。判定部43は、認証判定部37に判定結果(生体情報Xと生体情報Yとが合致するという判定結果)を送るときに、クライアント10とサーバ50との間の通信のセッションIDを付加した判定結果を認証判定部37に送る。また、クライアント10の署名送信部22は、署名生成部21によって生成された署名をサーバ50に送信するときに、そのセッションIDを付加した署名をサーバ50に送信する。
 認証判定部37は、署名に対する署名判定部34の判定結果と、その署名と共通のデータが付加された、判定部43から送られた判定結果とに基づいて、認証に成功したか失敗したかを判定する。
 サーバ50において、秘匿化指標受信部42、結果送信部46、メッセージ送信部31および署名受信部32は、例えば、サーバ用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部42、結果送信部46、メッセージ送信部31および署名受信部32として動作すればよい。また、判定部43、署名判定部34および認証判定部37は、例えば、サーバ用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部43、署名判定部34および認証判定部37として動作すればよい。また、秘密鍵記憶部41および第1の検証鍵記憶部33は、コンピュータが備える記憶装置によって実現される。
 以下、第2の実施形態の処理経過について説明する。前述のように、判定部43が生体情報Xと生体情報Yとが合致するか否かを判定するまでの動作は、第1の実施形態と同様であるので、説明を省略する。また、判定部43が、生体情報Xと生体情報Yとが合致しないと判定した場合、その判定結果が、結果送信部46から結果受信部18に送られ、処理を終了する。
 以下の説明では、判定部43が生体情報Xと生体情報Yとが合致すると判定した後の処理経過を説明する。図7は、第2の実施形態において、判定部43が生体情報Xと生体情報Yとが合致すると判定した後の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。
 判定部43は、生体情報Xと生体情報Yとが合致すると判定すると、その判定結果と対応付けられる署名に付加されるデータと共通のデータ(例えば、クライアント10とサーバ50との通信のセッションID)を、その判定結果に付加し、その判定結果を認証判定部37に送る(ステップS42)。なお、セッションIDは、判定部43による判定結果および署名に付加されるデータの一例であり、判定部43による判定結果および署名には共通のデータが付加されればよい。
 また、結果送信部46は、生体情報Xと生体情報Yとが合致するという判定結果をクライアント10に送信し(ステップS43)、クライアント10の結果受信部18は、その判定結果を受信する(ステップS44)。
 結果受信部18が生体情報Xと生体情報Yとが合致するという判定結果を受信した場合、署名生成部21は、メッセージ受信部19が既にサーバ50から受信しているメッセージ(チャレンジ)に基づいて、署名鍵sukを用いて署名を生成する(ステップS45)。なお、メッセージ受信部19は、結果受信部18がサーバ50から、生体情報Xと生体情報Yとが合致するという判定結果を受信した時点で、サーバ50にメッセージの送信を要求し、サーバ50からメッセージを受信してもよい。
 また、署名生成部21は、その署名と対応付けられる判定結果(判定部43による判定結果)に付加されるデータと共通のデータ(例えば、クライアント10とサーバ50との通信のセッションID)を署名に付加する。
 そして、署名送信部22は、その署名をサーバ50に送信し(ステップS46)、サーバ50の署名受信部32は、その署名を受信する(ステップS47)。
 次に、署名判定部34は、第1の検証鍵pukと、メッセージ送信部31が事前にクライアント10に送信したメッセージと、ステップS47で署名受信部32がクライアント10から受信した署名とを用いて、その署名が正しい署名であるか否かを判定する(ステップS48)。
 そして、認証判定部37は、署名判定部34による判定結果と、署名判定部34が判定に用いた署名に付加されたデータと共通のデータが付加された判定部43による判定結果とに基づいて、被認証者の認証に成功したか失敗したかを判定する(ステップS50)。署名が正しい署名であると判定されたという条件と、判定部43から生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件の両方が満たされた場合に、認証判定部37は、被認証者の認証に成功したと判定する。上記の2つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、認証判定部37は、被認証者の認証に失敗したと判定する。
 本実施形態では、上記のように、署名が正しい署名であると判定されたという条件と、判定部43から生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件の両方が満たされた場合に、認証判定部37は、被認証者の認証に成功したと判定する。従って、第1の実施形態と同様の効果が得られる。すなわち、クライアント10にマルウェア等が組み込まれたとしても、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できる。
 次に、第2の実施形態の変形例について説明する。なお、既に説明した事項についての説明は省略する。
 サーバ50が、判定部43による判定結果をクライアント10に通知しなくてもよい。この場合、クライアント10の署名生成部21は、判定部43による判定結果が通知されない状態で、メッセージ受信部19が受信したメッセージに基づいて、署名鍵sukを用いて署名を生成する。
 また、他の変形例として、判定部43が生体情報Xと生体情報Yとが合致すると判定した場合にのみ、メッセージ送信部31が、クライアント10にメッセージを送信してもよい。そして、クライアント10において、署名生成部21は、メッセージ受信部19がそのメッセージを受信したときに、そのメッセージに基づいて、署名鍵sukを用いて署名を生成する。そして、署名送信部22は、その署名をサーバ50に送信する。この変形例では、署名生成部21が署名を生成し、署名送信部22がその署名をサーバ50に送信するのは、生体情報Xと生体情報Yとが合致すると判定された場合のみである。従って、この変形例では、署名と、判定部43が認証判定部37に送る判定結果とを対応付けるためのデータは用いられなくてよい。また、この変形例では、生体情報Xと生体情報Yとが合致すると判定されたか否かによらず、サーバ50は、判定部43による判定結果をクライアント10に通知してもよく、あるいは、通知しなくてもよい。
 また、他の変形例として、クライアント10が秘匿化指標をサーバ50に送信するときに、秘匿化指標送信部17(署名送信部22でもよい。)が、秘匿化指標と、署名生成部21が生成した署名とを一緒にサーバ50に送信してもよい。この変形例では、署名生成部21は、判定部43による判定結果を取得することなく(より具体的には、判定部43が判定処理を行う前に)、メッセージ受信部19が受信したメッセージに基づいて、署名鍵sukを用いて署名を生成する。この変形例では、サーバ50は、秘匿化指標と署名を一緒に受信する。従って、秘匿化指標に基づいて判定部43によって導出された判定結果と署名との対応付けをサーバ50は認識することができる。よって、本変形例では、署名と、判定部43が認証判定部37に送る判定結果とを対応付けるためのデータは用いられなくてよい。
 また、第1の実施形態の種々の変形例は、適宜、第2の実施形態にも適用可能である。
実施形態3.
 図8は、本発明の第3の実施形態の認証システムの構成例を示すブロック図である。第1の実施形態や第2の実施形態と同様の要素については、図3や図6と同一の符号を付す。また、第1の実施形態や第2の実施形態と同様の動作については、説明を省略する。
 第3の実施形態の認証システムは、クライアント10と、第1のサーバ30と、第2のサーバ40とを備える。クライアント10は複数存在していてもよい。クライアント10と、第1のサーバ30と、第2のサーバ40とは、通信ネットワークを介して通信可能である。
 第3の実施形態では、クライアント10は、公開鍵記憶部11と、登録情報入力部12と、秘匿化部13と、秘匿化情報記憶部14と、照合情報入力部15と、秘匿化指標算出部16と、秘匿化指標送信部17と、メッセージ受信部19と、署名鍵記憶部20と、署名生成部21とを備える。
 公開鍵記憶部11、登録情報入力部12、秘匿化部13、秘匿化情報記憶部14、照合情報入力部15、秘匿化指標算出部16、メッセージ受信部19および署名鍵記憶部20は、第1の実施形態におけるそれらの各要素と同様である。
 第3の実施形態では、署名生成部21は、生体情報Xと生体情報Yとが合致するか否かの判定結果を第2のサーバ40から受信することなく、署名を生成する。例えば、署名生成部21は、秘匿化指標送信部17が秘匿化指標を第2のサーバ40に送信するタイミングより前に署名を生成すればよい。ただし、署名生成部21が署名を生成するタイミングは上記の例に限定されない。
 署名生成部21は、メッセージ受信部19が第1のサーバ30から受信したメッセージに基づいて、署名鍵sukを用いて署名を生成する。この点は、前述の各実施形態と同様である。メッセージ受信部19は、署名生成部21が署名を生成する時までに、第1のサーバ30からメッセージを受信すればよい。例えば、署名生成部21が署名を生成する際に、メッセージ受信部19がサーバ50にメッセージの送信を要求し、その要求に応じてメッセージ送信部31が送信したメッセージをメッセージ受信部19が受信してもよい。
 第3の実施形態では、秘匿化指標送信部17は、秘匿化指標だけでなく、署名生成部21に生成された署名も、第2のサーバに送信する。以下では、秘匿化指標送信部17が秘匿化指標および署名を一緒に第2のサーバに送信する場合を例にする。
 第3の実施形態では、第2のサーバ40は、秘密鍵記憶部41と、秘匿化指標受信部42と、判定部43と、署名送信部22とを備える。秘密鍵記憶部41および判定部43は、第1の実施形態におけるそれらの各要素と同様である。
 第3の実施形態では、秘匿化指標受信部42は、秘匿化指標だけでなく、署名生成部21に生成された署名もクライアント10から受信する。本例では、秘匿化指標受信部42は、秘匿化指標および署名を一緒にクライアント10から受信する。
 第2のサーバ40に備えられている署名送信部22は、判定部43によって生体情報Xと生体情報Yとが合致するという判定結果が得られたことを条件に、秘匿化指標受信部42がクライアント10から受信した署名(クライアント10の署名生成部21で生成された署名)を、第1のサーバ30に送信する。
 第3の実施形態において、第1のサーバ30は、メッセージ送信部31と、署名受信部32と、第1の検証鍵記憶部33と、署名判定部34とを備える。メッセージ送信部31および第1の検証鍵記憶部33は、第1の実施形態におけるそれらの各要素と同様である。
 第3の実施形態では、署名受信部31は、第2のサーバ40に備えられている署名送信部22が送信した署名を受信する。
 また、署名判定部34は、第1の検証鍵pukと、メッセージ送信部31がクライアント10に送信したメッセージ(チャレンジに該当するメッセージ)と、署名受信部32が第2のサーバ40から受信した署名とを用いて、署名が正しい署名であるか否かを判定する。換言すれば、署名判定部34は、受信した署名が、そのメッセージに基づいて、第1の検証鍵pukと対になる署名鍵sukを用いて生成された署名であるか否かを判定する。この動作は、第1の実施形態における署名判定部34の動作と同様である。
 さらに、署名判定部34は、署名が正しい署名であると判定されたという条件と、生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件の両方が満たされた場合に、被認証者の認証に成功したと判定する。上記の2つの条件のうちのいずれか一方、または、両方が満たされなかった場合には、署名判定部34は、被認証者の認証に失敗したと判定する。すなわち、第3の実施形態では、署名判定部34は、第2の実施形態における認証判定部37を含んでいると言うことができる。
 前述のように、署名送信部22は、判定部43によって生体情報Xと生体情報Yとが合致するという判定結果が得られたことを条件に、署名を第1のサーバ30に送信する。従って、署名受信部31が署名を受信したということは、生体情報Xと生体情報Yとが合致するという判定結果が得られていることを意味する。すなわち、署名受信部31が署名を受信したことによって、署名送信部22は、生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件が満たされていると判定する。
 クライアント10において、秘匿化指標送信部17およびメッセージ受信部19は、例えば、クライアント用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標送信部17およびメッセージ受信部19として動作すればよい。また、秘匿化部13、秘匿化指標算出部16および署名生成部21は、例えば、クライアント用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からクライアント用プログラムを読み込み、そのプログラムに従って、秘匿化部13、秘匿化指標算出部16および署名生成部21として動作すればよい。また、公開鍵記憶部11、秘匿化情報記憶部14および署名鍵記憶部20は、例えば、クライアント10を実現するコンピュータが備える記憶装置によって実現される。
 第2のサーバ40において、秘匿化指標受信部42および署名送信部22は、例えば、サーバ用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、秘匿化指標受信部42および署名送信部22として動作すればよい。また、判定部43は、例えば、サーバ用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、判定部43として動作すればよい。また、秘密鍵記憶部41は、例えば、第2のサーバ40を実現するコンピュータが備える記憶装置によって実現される。
 第1のサーバ30において、メッセージ送信部31および署名受信部32は、例えば、サーバ用プログラムに従って動作するコンピュータのCPU、および、そのコンピュータの通信インタフェースによって実現される。例えば、CPUが、コンピュータのプログラム記憶装置等のプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、通信インタフェースを用いて、メッセージ送信部31および署名受信部32として動作すればよい。また、署名判定部34は、例えば、サーバ用プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが上記のようにプログラム記録媒体からサーバ用プログラムを読み込み、そのプログラムに従って、署名判定部34として動作すればよい。また、第1の検証鍵記憶部33は、例えば、第1のサーバ30を実現するコンピュータが備える記憶装置によって実現される。
 本実施形態では、第1のサーバ30と第2のサーバ40は、別のサーバであるので、第1のサーバ30に搭載されるサーバ用プログラムと、第2のサーバ40に搭載されるサーバ用プログラムは別のプログラムである。
 次に、処理経過について説明する。図9は、第3の実施形態の処理経過の例を示すフローチャートである。なお、既に説明した事項については、詳細な説明を省略する。なお、本例では、メッセージ受信部19は、既に、メッセージを受信し、そのメッセージを保持しているものとする。
 まず、被認証者の生体情報Yが照合情報入力部15に入力される(ステップS61)。すると、秘匿化指標算出部16は、その生体情報Yと、秘匿化情報記憶部14に記憶されているテンプレートとに基づいて、生体情報Xと生体情報Yとの近さを示す指標を暗号化した秘匿化指標を算出する(ステップS62)。ステップS61,S62は、ステップS11,S12(図4参照)と同様である。
 また、署名生成部21は、メッセージ受信部19が受信済みのメッセージに基づいて、署名鍵sukを用いて署名を生成する(ステップS63)。なお、ステップS63は、ステップS61やステップS62よりも前に実行されてもよい。
 次に、秘匿化指標送信部17は、ステップS62で生成された秘匿化指標と、ステップS63で生成された署名を、第2のサーバ40に送信する(ステップS64)。
 第2のサーバ40の秘匿化指標受信部42は、その秘匿化指標および署名を、クライアント10から受信する(ステップS65)。
 次に、判定部43は、秘密鍵skによって、秘匿化指標から指標を復号する(ステップS66)。さらに、判定部43は、その指標が、予め定められた所定範囲内の値であるか否かを判定することによって、生体情報Xと生体情報Yとが合致するか否かを判定する(ステップS67)。ステップS66,S67は、ステップS15,S16(図4参照)と同様である。
 そして、署名送信部22は、判定部43によって生体情報Xと生体情報Yとが合致するという判定結果が得られたことを条件に、ステップS65でクライアント10から受信した署名を、第1のサーバ30に送信する(ステップS68)。なお、ステップS67で、生体情報Xと生体情報Yとが合致しないという判定結果が得られた場合、ステップS68以降の処理は実行せずに、例えば、その時点で、生体情報Yに対する処理を終了する。その際、第2のサーバ40は、判定結果をクライアント10に通知してもよく、あるいは、通知しなくてもよい。
 第1のサーバ30の署名受信部32は、ステップS68で送信された署名を受信する(ステップS69)。
 次に、署名判定部34は、第1の検証鍵pukと、メッセージ送信部31がクライアント10に送信したメッセージと、署名受信部32が第2のサーバ40から受信した署名とを用いて、署名が正しい署名であるか否かを判定する(ステップS70)。
 さらに、署名判定部34は、署名が正しい署名であると判定されたという条件と、生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件の両方が満たされているか否かを判定することによって、認証に成功したか失敗したかを判定する(ステップS71)。既に説明したように、本実施形態では、署名受信部31が署名を受信したということは、生体情報Xと生体情報Yとが合致するという判定結果が得られていることを意味する。従って、署名判定部34は、ステップS69の完了を確認することで、生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件が満たされていると判定してよい。よって、署名判定部34は、署名が正しい署名であると判定したならば、被認証者の認証に成功したと判定し、署名が不正な署名であると判定したならば、被認証者の認証に失敗したと判定すればよい。
 本実施形態では、第2のサーバ40は、クライアント10で生成された署名を、生体情報Xと生体情報Yとが合致するという判定結果が得られたことを条件に、第1のサーバ30に送信する。従って、第1のサーバ30が、第2のサーバ40から署名を受信したということは、生体情報Xと生体情報Yとが合致するという判定結果が得られたことを意味する。そして、第1のサーバ30の署名判定部34は、受信した署名が正しい署名であると判定したならば、認証に成功したと判定し、受信した署名が不正な署名であると判定したならば、認証に失敗したと判定する。従って、署名が正しい署名であると判定されたという条件と、生体情報Xと生体情報Yとが合致するという判定結果が得られているという条件の両方が満たされている場合に、認証に成功したと判定しているということができる。従って、第1の実施形態や第2の実施形態と同様の効果が得られる。すなわち、クライアント10にマルウェア等が組み込まれたとしても、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止できる。
 また、第1の実施形態の種々の変形例は、適宜、第3の実施形態にも適用可能である。
 また、上記の各実施形態において、秘匿化指標算出部16は、例えば、指紋、指の静脈等の複数種類の項目に応じた秘匿化情報を算出し、判定部43は、それらの個々の項目毎に、生体情報Xと生体情報Yとが合致するか否かを判定してもよい。例えば、第1の実施形態では、全ての項目について、XとYとが合致すると判定された場合、証明書生成部45は、それらの項目毎に、個別に証明書を生成してもよい。そして、証明書判定部36は、証明書毎に、証明書が正しい証明書であるか否かを判定してもよい。
 図10は、上記の各実施形態やその変形例におけるクライアント10や種々のサーバ(第1の実施形態や第3の形態における第1のサーバ30および第2のサーバ40、並びに、第2の実施形態におけるサーバ50)に係るコンピュータの構成例を示す概略ブロック図である。以下、図10を参照して説明するが、クライアント10として用いられるコンピュータ、第1のサーバ30として用いられるコンピュータ、第2のサーバ40として用いられるコンピュータは、それぞれ別のコンピュータである。また、第2の実施形態においても、クライアント10として用いられるコンピュータと、サーバ50として用いられるコンピュータとは、別々のコンピュータである。
 コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、通信インタフェース1005とを備える。
 本発明の各実施形態やその変形例におけるクライアント10、第1のサーバ30、第2のサーバ40、サーバ50は、コンピュータ1000で実現される。ただし、上記のように、クライアント10として用いられるコンピュータ、第1のサーバ30として用いられるコンピュータ、第2のサーバ40として用いられるコンピュータ、サーバ50として用いられるコンピュータは、それぞれ別のコンピュータである。
 クライアント10を実現するコンピュータ1000の動作は、クライアント用プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのクライアント用プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのクライアント用プログラムに従って、上記の各実施形態で説明したクライアント10の動作を実行する。
 第1のサーバ30を実現するコンピュータ1000の動作は、サーバ用プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのサーバ用プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのサーバ用プログラムに従って、上記の第1の実施形態および第3の実施形態で説明した第1のサーバ30の動作を実行する。
 第2のサーバ40を実現するコンピュータ1000の動作は、サーバ用プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのサーバ用プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのサーバ用プログラムに従って、上記の第1の実施形態および第3の実施形態で説明した第2のサーバ40の動作を実行する。
 サーバ50を実現するコンピュータ1000の動作は、サーバ用プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、そのサーバ用プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのサーバ用プログラムに従って、上記の第2の実施形態で説明したサーバ50の動作を実行する。
 補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory )、DVD-ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、そのプログラムに従って動作してもよい。
 また、クライアント10の各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。この点は、第1のサーバ30、第2のサーバ40、サーバ50に関しても同様である。
 次に、本発明の概要について説明する。図11は、本発明の認証システムの概要を示すブロック図である。本発明の認証システムは、判定部43と、メッセージ送信部31と、署名判定部34と、認証判定部37と、クライアント10とを備える。クライアント10は、秘匿化情報記憶部14と、秘匿化指標算出部16と、署名生成部21とを備える。
 判定部43は、クライアント10によって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、照合情報と登録情報とが合致するか否かを判定する。
 メッセージ送信部31は、クライアント10にメッセージを送信する。
 署名判定部34は、第1の検証鍵とそのメッセージとクライアント10に生成された署名とを用いて、署名が正しい署名であるか否かを判定する。
 認証判定部37は、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。
 秘匿化情報記憶部14は、登録情報を秘匿化した秘匿化情報を記憶する。
 秘匿化指標算出部16は、照合情報と、秘匿化情報とに基づいて、秘匿化指標を算出する。
 署名生成部21は、署名鍵を用いて、メッセージに基づいて署名を生成する。
 そのような構成よれば、照合情報と登録情報とが合致すると判定され、かつ、署名が正しい署名であると判定された場合に、認証に成功したと判定する。従って、2つの要素を利用した認証を行う場合において、照合情報と登録情報とが合致するか否かの判定を行っていないにも関わらず被認証者の認証に成功したと判定することを防止することができる。
 上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
 クライアントを備える認証システムであって、
 前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
 前記クライアントにメッセージを送信するメッセージ送信部と、
 第1の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
 前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、
 前記クライアントは、
 前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
 前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、
 署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備える
 ことを特徴とする認証システム。
(付記2)
 前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部と、
 第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部とを備え、
 前記署名生成手段は、
 前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成し、
 前記認証判定部は、
 前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
 付記1に記載の認証システム。
(付記3)
 メッセージ送信部、署名判定部、証明書判定部および認証判定部は、第1のサーバに設けられ、
 判定部および証明書生成部は、第2のサーバに設けられる
 付記2に記載の認証システム。
(付記4)
 前記証明書判定部は、前記証明書生成部によって生成された証明書を、クライアントを介して取得する
 付記2または付記3に記載の認証システム。
(付記5)
 前記証明書判定部が設けられる第1のサーバは、前記証明書生成部によって生成された証明書を、前記証明書生成部が設けられる第2のサーバから、通信ネットワークを介して直接、取得する
 付記3に記載の認証システム。
(付記6)
 証明鍵および第2の検証鍵は、共通鍵方式における共通鍵である
 付記2から付記5のうちのいずれかに記載の認証システム。
(付記7)
 前記証明書生成部は、
 証明書として、メッセージ認証コードにおけるタグと、前記タグを生成する際に用いたデータとの組を生成する
 付記6に記載の認証システム。
(付記8)
 証明鍵は、公開鍵方式における秘密鍵であり、第2の検証鍵は、公開鍵方式における公開鍵である
 付記2から付記5のうちのいずれかに記載の認証システム。
(付記9)
 判定部、メッセージ送信部、署名判定部および認証判定部は、1台のサーバに設けられ、
 前記署名生成手段は、
 前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成する
 付記1に記載の認証システム。
(付記10)
 メッセージ送信部、署名判定部および認証判定部は、第1のサーバに設けられ、
 判定部は、第2のサーバに設けられ、
 前記第2のサーバは、
 前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記クライアントで生成された署名を前記第1のサーバに送信する署名送信部を備える
 付記1に記載の認証システム。
(付記11)
 登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
 前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、
 前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、
 前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備える
 ことを特徴とするクライアント。
(付記12)
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
 前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備える
 ことを特徴とするサーバ。
(付記13)
 クライアントにメッセージを送信するメッセージ送信部と、
 照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
 前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、
 前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
 ことを特徴とするサーバ。
(付記14)
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
 前記クライアントにメッセージを送信するメッセージ送信部と、
 前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
 前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
 ことを特徴とするサーバ。
(付記15)
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
 前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備える
 ことを特徴とするサーバ。
(付記16)
 登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、
 前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
 所定のサーバが、
 前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、
 前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、
 前記クライアントが、
 前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、
 前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、
 第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、
 前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
 ことを特徴とする認証方法。
(付記17)
 登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
 前記コンピュータに、
 前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、
 前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、
 前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理
 を実行させるためのクライアント用プログラム。
(付記18)
 サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
 前記コンピュータに、
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
 前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理
 を実行させるためのサーバ用プログラム。
(付記19)
 サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
 前記コンピュータに、
 クライアントにメッセージを送信する送信処理、
 照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、
 前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、
 前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
 を実行させるためのサーバ用プログラム。
(付記20)
 サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
 前記コンピュータに、
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、
 前記クライアントにメッセージを送信するメッセージ送信処理、
 前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、
 前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
 を実行させるためのサーバ用プログラム。
(付記21)
 サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
 前記コンピュータに、
 クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
 前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理
 を実行させるためのサーバ用プログラム。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明は、認証システムに好適に適用される。
 10 クライアント
 11 公開鍵記憶部
 12 登録情報入力部
 13 秘匿化部
 14 秘匿化情報記憶部
 15 照合情報入力部
 16 秘匿化指標算出部
 17 秘匿化指標送信部
 18 結果受信部
 19 メッセージ受信部
 20 署名鍵記憶部
 21 署名生成部
 22 署名送信部
 30 第1のサーバ
 31 メッセージ送信部
 32 署名受信部
 33 第1の検証鍵記憶部
 34 署名判定部
 35 第2の検証鍵記憶部
 36 証明書判定部
 37 認証判定部
 40 第2のサーバ
 41 秘密鍵記憶部
 42 秘匿化指標受信部
 43 判定部
 44 証明鍵記憶部
 45 証明書生成部
 46 結果送信部
 50 サーバ

Claims (21)

  1.  クライアントを備える認証システムであって、
     前記クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
     前記クライアントにメッセージを送信するメッセージ送信部と、
     第1の検証鍵と前記メッセージと前記クライアントに生成された署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
     前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備え、
     前記クライアントは、
     前記登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
     前記照合情報と、前記秘匿化情報とに基づいて、前記秘匿化指標を算出する秘匿化指標算出部と、
     署名鍵を用いて、前記メッセージに基づいて前記署名を生成する署名生成部とを備える
     ことを特徴とする認証システム。
  2.  前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部と、
     第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部とを備え、
     前記署名生成手段は、
     前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成し、
     前記認証判定部は、
     前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
     請求項1に記載の認証システム。
  3.  メッセージ送信部、署名判定部、証明書判定部および認証判定部は、第1のサーバに設けられ、
     判定部および証明書生成部は、第2のサーバに設けられる
     請求項2に記載の認証システム。
  4.  前記証明書判定部は、前記証明書生成部によって生成された証明書を、クライアントを介して取得する
     請求項2または請求項3に記載の認証システム。
  5.  前記証明書判定部が設けられる第1のサーバは、前記証明書生成部によって生成された証明書を、前記証明書生成部が設けられる第2のサーバから、通信ネットワークを介して直接、取得する
     請求項3に記載の認証システム。
  6.  証明鍵および第2の検証鍵は、共通鍵方式における共通鍵である
     請求項2から請求項5のうちのいずれか1項に記載の認証システム。
  7.  前記証明書生成部は、
     証明書として、メッセージ認証コードにおけるタグと、前記タグを生成する際に用いたデータとの組を生成する
     請求項6に記載の認証システム。
  8.  証明鍵は、公開鍵方式における秘密鍵であり、第2の検証鍵は、公開鍵方式における公開鍵である
     請求項2から請求項5のうちのいずれか1項に記載の認証システム。
  9.  判定部、メッセージ送信部、署名判定部および認証判定部は、1台のサーバに設けられ、
     前記署名生成手段は、
     前記照合情報と前記登録情報とが合致すると判定された場合に、署名を生成する
     請求項1に記載の認証システム。
  10.  メッセージ送信部、署名判定部および認証判定部は、第1のサーバに設けられ、
     判定部は、第2のサーバに設けられ、
     前記第2のサーバは、
     前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記クライアントで生成された署名を前記第1のサーバに送信する署名送信部を備える
     請求項1に記載の認証システム。
  11.  登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部と、
     前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出部と、
     前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成部と、
     前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力部とを備える
     ことを特徴とするクライアント。
  12.  クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
     前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成部とを備える
     ことを特徴とするサーバ。
  13.  クライアントにメッセージを送信するメッセージ送信部と、
     照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
     前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定部と、
     前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
     ことを特徴とするサーバ。
  14.  クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
     前記クライアントにメッセージを送信するメッセージ送信部と、
     前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定部と、
     前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定部とを備える
     ことを特徴とするサーバ。
  15.  クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定部と、
     前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信部とを備える
     ことを特徴とするサーバ。
  16.  登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備えるクライアントが、
     前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出し、
     所定のサーバが、
     前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定し、
     前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、前記クライアントにメッセージを送信し、
     前記クライアントが、
     前記照合情報と前記登録情報とが合致すると判定された場合に、署名鍵を用いて、前記メッセージに基づいて署名を生成し、
     前記所定のサーバ、または、前記所定のサーバとは異なるサーバが、
     第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定し、
     前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する
     ことを特徴とする認証方法。
  17.  登録情報を秘匿化した秘匿化情報を記憶する秘匿化情報記憶部を備え、クライアントとして動作するコンピュータに搭載されるクライアント用プログラムであって、
     前記コンピュータに、
     前記登録情報との照合のために入力される照合情報と、前記秘匿化情報とに基づいて、前記登録情報と前記照合情報との近さを示す指標を秘匿化した秘匿化指標を算出する秘匿化指標算出処理、
     前記秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するとサーバに判定された場合に、署名鍵を用いて、与えられたメッセージに基づいて署名を生成する署名生成処理、および、
     前記照合情報と前記登録情報とが合致すると前記サーバに判定された場合に前記サーバが生成する証明書と、前記署名とを出力する署名出力処理
     を実行させるためのクライアント用プログラム。
  18.  サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
     前記コンピュータに、
     クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
     前記照合情報と前記登録情報とが合致すると判定された場合に、証明鍵を用いて証明書を生成する証明書生成処理
     を実行させるためのサーバ用プログラム。
  19.  サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
     前記コンピュータに、
     クライアントにメッセージを送信する送信処理、
     照合情報と登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、第1の検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、
     前記照合情報と前記登録情報とが合致すると判定された場合に証明鍵を用いて生成された証明書を取得し、第2の検証鍵と前記証明書とを用いて、前記証明書が正しい証明書であるか否かを判定する証明書判定処理、および、
     前記証明書が正しい証明書であると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
     を実行させるためのサーバ用プログラム。
  20.  サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
     前記コンピュータに、
     クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、
     前記クライアントにメッセージを送信するメッセージ送信処理、
     前記照合情報と前記登録情報とが合致すると判定された場合に前記クライアントが署名鍵を用いて前記メッセージに基づいて生成した署名を取得し、検証鍵と前記メッセージと前記署名とを用いて、前記署名が正しい署名であるか否かを判定する署名判定処理、および、
     前記照合情報と前記登録情報とが合致すると判定され、かつ、前記署名が正しい署名であると判定された場合に、認証に成功したと判定する認証判定処理
     を実行させるためのサーバ用プログラム。
  21.  サーバとして動作するコンピュータに搭載されるサーバ用プログラムであって、
     前記コンピュータに、
     クライアントによって算出された、登録情報と照合情報との近さを示す指標を秘匿化した秘匿化指標に基づいて、前記照合情報と前記登録情報とが合致するか否かを判定する判定処理、および、
     前記クライアントが所定のサーバから与えられたメッセージに基づいて生成した署名を、前記照合情報と前記登録情報とが合致すると判定されたことを条件に、前記所定のサーバに送信する署名送信処理
     を実行させるためのサーバ用プログラム。
PCT/JP2018/045777 2018-12-12 2018-12-12 認証システム、クライアントおよびサーバ WO2020121459A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2018/045777 WO2020121459A1 (ja) 2018-12-12 2018-12-12 認証システム、クライアントおよびサーバ
US17/311,475 US11909892B2 (en) 2018-12-12 2018-12-12 Authentication system, client, and server
JP2020559624A JP7235055B2 (ja) 2018-12-12 2018-12-12 認証システム、クライアントおよびサーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/045777 WO2020121459A1 (ja) 2018-12-12 2018-12-12 認証システム、クライアントおよびサーバ

Publications (1)

Publication Number Publication Date
WO2020121459A1 true WO2020121459A1 (ja) 2020-06-18

Family

ID=71076002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/045777 WO2020121459A1 (ja) 2018-12-12 2018-12-12 認証システム、クライアントおよびサーバ

Country Status (3)

Country Link
US (1) US11909892B2 (ja)
JP (1) JP7235055B2 (ja)
WO (1) WO2020121459A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321363A1 (en) * 2019-06-05 2022-10-06 Nec Corporation Collation system, client, and server
KR102409790B1 (ko) * 2020-01-30 2022-06-17 주식회사 알체라 생체정보 분산관리 시스템 및 이를 이용한 생체인식 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216270A (ja) * 2000-01-31 2001-08-10 Netmarks Inc 認証局、認証システム及び認証方法
JP2004518229A (ja) * 2001-02-01 2004-06-17 スリーエム イノベイティブ プロパティズ カンパニー コンピュータ・ネットワークのセキュリティを保障する方法およびシステム、並びにネットワーク・コンポーネントへのアクセスを制御するために同システム内で用いられる個人識別装置
JP2010505286A (ja) * 2006-06-27 2010-02-18 マイクロソフト コーポレーション バイオメトリック証明書確認フレームワーク
WO2011052056A1 (ja) * 2009-10-29 2011-05-05 三菱電機株式会社 データ処理装置
JP2014164359A (ja) * 2013-02-21 2014-09-08 Nec Networks & System Integration Corp 認証システム
US20150012742A1 (en) * 2013-07-07 2015-01-08 Victor Gorelik Active biometric authentication with zero privacy leakage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2071484B1 (en) * 2006-09-29 2019-12-11 Fujitsu Ltd. Information processor and information management method
JP4970585B2 (ja) * 2010-11-10 2012-07-11 株式会社東芝 サービス提供システム及びユニット装置
JP6438901B2 (ja) 2016-02-24 2018-12-19 日本電信電話株式会社 認証システム、鍵処理連携方法、および、鍵処理連携プログラム
JP6810334B2 (ja) * 2016-06-17 2021-01-06 富士通株式会社 プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216270A (ja) * 2000-01-31 2001-08-10 Netmarks Inc 認証局、認証システム及び認証方法
JP2004518229A (ja) * 2001-02-01 2004-06-17 スリーエム イノベイティブ プロパティズ カンパニー コンピュータ・ネットワークのセキュリティを保障する方法およびシステム、並びにネットワーク・コンポーネントへのアクセスを制御するために同システム内で用いられる個人識別装置
JP2010505286A (ja) * 2006-06-27 2010-02-18 マイクロソフト コーポレーション バイオメトリック証明書確認フレームワーク
WO2011052056A1 (ja) * 2009-10-29 2011-05-05 三菱電機株式会社 データ処理装置
JP2014164359A (ja) * 2013-02-21 2014-09-08 Nec Networks & System Integration Corp 認証システム
US20150012742A1 (en) * 2013-07-07 2015-01-08 Victor Gorelik Active biometric authentication with zero privacy leakage

Also Published As

Publication number Publication date
JPWO2020121459A1 (ja) 2021-10-21
JP7235055B2 (ja) 2023-03-08
US11909892B2 (en) 2024-02-20
US20220029829A1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US10797879B2 (en) Methods and systems to facilitate authentication of a user
JP7448220B2 (ja) マルチポイント認証のためのキー生成・預託システム及び方法
US7961915B2 (en) System and method for authenticated and privacy preserving biometric identification systems
EP1815637B1 (en) Securely computing a similarity measure
EP3435591A1 (en) 1:n biometric authentication, encryption, signature system
JP7259868B2 (ja) システムおよびクライアント
CN112637131A (zh) 用户身份认证方法、装置、设备和存储介质
JP7302606B2 (ja) システムおよびサーバ
JPWO2007094165A1 (ja) 本人確認システムおよびプログラム、並びに、本人確認方法
JP7231023B2 (ja) 照合システム、クライアントおよびサーバ
US20230344643A1 (en) Digital signature system using scalable servers
WO2020121458A1 (ja) 照合システム、クライアントおよびサーバ
US8806216B2 (en) Implementation process for the use of cryptographic data of a user stored in a data base
JP4763465B2 (ja) 個人認証装置及びサーバ装置及び認証システム及び認証方法
WO2020121459A1 (ja) 認証システム、クライアントおよびサーバ
CN111355588B (zh) 一种基于puf与指纹特征的可穿戴设备双因子认证方法及系统
Saxena et al. A novel digital signature algorithm based on biometric hash
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
Mishra et al. An improved biometric–based remote user authentication scheme for connected healthcare
Abdulmalik et al. Secure two-factor mutual authentication scheme using shared image in medical healthcare environment
WO2022130528A1 (ja) 回復用検証システム、照合システム、回復用検証方法および非一時的なコンピュータ可読媒体
EP3035589A1 (en) Security management system for authenticating a token by a service provider server
Seo et al. Fuzzy vector signature and its application to privacy-preserving authentication
EP4231583A1 (en) Methods and arrangements for establishing digital identity
WO2023181163A1 (ja) 照合システム、照合装置、照合方法及びプログラム

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: 18943200

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020559624

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18943200

Country of ref document: EP

Kind code of ref document: A1