WO2017195886A1 - 認証システム、認証方法およびプログラム - Google Patents

認証システム、認証方法およびプログラム Download PDF

Info

Publication number
WO2017195886A1
WO2017195886A1 PCT/JP2017/018021 JP2017018021W WO2017195886A1 WO 2017195886 A1 WO2017195886 A1 WO 2017195886A1 JP 2017018021 W JP2017018021 W JP 2017018021W WO 2017195886 A1 WO2017195886 A1 WO 2017195886A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
authentication
share
verification
side auxiliary
Prior art date
Application number
PCT/JP2017/018021
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 US16/085,659 priority Critical patent/US11063941B2/en
Priority to JP2018517093A priority patent/JP6973385B2/ja
Publication of WO2017195886A1 publication Critical patent/WO2017195886A1/ja
Priority to JP2021179792A priority patent/JP2022009960A/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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
    • 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/44Program or device authentication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3218Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2016-097422 (filed on May 13, 2016), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to an authentication system, an authentication method, and a program, and more particularly, to an authentication system, an authentication method, and a program for performing user authentication and device authentication for authenticating a user and a user device, respectively.
  • authentication server As an example of web services, the use of web banking with money transfer is expanding.
  • the server providing the service authenticates the user, so that the user can use the service.
  • a server that performs such authentication is hereinafter referred to as an “authentication server”.
  • users are authenticated mainly by sending user-specific authentication information such as passwords and biometric information from their terminals to an authentication server that provides the web service.
  • the authentication information transmitted by the user to the authentication server at the time of authentication is compared with the information registered in the authentication server by the user in advance (hereinafter referred to as “verification information”). Confirm civilization.
  • the user registers the password P in the authentication server as verification information in advance.
  • the user registers the feature quantity C of biometric information such as face, fingerprint, and glow as verification information in the authentication server.
  • the user again sends the characteristic amount C ′ of the biometric information to the authentication server.
  • the authentication server accepts the authentication if the “distance” (for example, the Hamming distance) between the feature amounts C and C ′ is equal to or less than a predetermined threshold value, and rejects otherwise.
  • Non-Patent Document 1 describes the FIDO (Fast Ident Online) method.
  • Non-Patent Document 2 describes an encrypted communication method.
  • Non-Patent Document 3 describes a multi-party computation (MPC) other than the zero knowledge proof (ZKIP) method and the message authenticator (MAC) method.
  • Non-Patent Document 4 describes the ZKIP method.
  • Non-Patent Documents 5 to 7 describe the MAC method.
  • Non-Patent Document 8 describes a request calculation (Secure Function Evaluation).
  • Non-Patent Document 9 describes a Garbled Circuit (GC) method.
  • Non-Patent Document 10 describes Shamir's secret sharing method.
  • the existing authentication method described above when the authentication server side leaks information, there is a risk that the verification information unique to the user is transferred to the unauthorized person.
  • many authentication systems such as password authentication, it is easy to reproduce the authentication information from the verification information. Therefore, the unauthorized person can use the web service provided by the authentication server by impersonating the user by using the reproduced authentication information.
  • the user is likely to use the same authentication information for multiple web services.
  • the verification information leaks in one web service, there is a problem that an unauthorized person can impersonate all the web services used by the user.
  • biometric information is used as authentication information, serious problems may occur. This is because the user's biometric information is invariant throughout life, and once the information is leaked, the user is exposed to the risk of impersonation in the future.
  • the administrator of the authentication server that provides the web service can browse all data in the authentication server including user verification information. Therefore, the authentication server administrator can easily impersonate by obtaining user verification information.
  • An attack method that specifies authentication information by unauthorized use of only the server side device without communicating with the user side device as in the above attack method is hereinafter referred to as a “server side offline attack”.
  • a server side offline attack In the case of an attack that requires communication with the user's device each time P is searched, by setting an upper limit on the number of communications on the user's device, it is possible to prevent unauthorized persons from making a full attack it can.
  • no communication is performed with the user-side device. In this case, an unauthorized person can search all of P without being noticed by the user, which is a big problem.
  • Secret sharing is a technique for improving the confidentiality of data by “distributed sharing” of secret data with a plurality of devices.
  • Secret sharing involves one “distributed device”, multiple “share holding devices”, and one “restoring device”.
  • the distribution device and the restoration device are the same, or one of the share holding devices and the distribution device or the restoration device are the same.
  • the distribution device, the share holding device, and the restoration device are separate devices will be described.
  • M the number of share-owned devices.
  • the restoration device receives the shares from some of the share holding devices, inputs these shares and executes the "restoration means" to restore the secret data K Can do.
  • secret sharing security condition There is a condition called “secret sharing security condition” in secret sharing, which satisfies the following. As long as the set of devices taken over by the unauthorized person satisfies the secret sharing security condition, the unauthorized person cannot know any information of the secret data K. As long as the set of devices hijacked by the unauthorized person satisfies the secret sharing safety condition, the restoring device restores the secret data K by restoring means by sending the share of the device not taken by the unauthorized person to the restoring device. can do.
  • Shamir secret sharing One typical method of secret sharing is Shamir secret sharing (Non-Patent Document 10).
  • Shamir secret sharing one value t ⁇ M is fixed, one finite field F with t + 1 or more elements is fixed, and F elements a [0], ..., a [M] To fix.
  • secret K is an element of finite field F.
  • the secret sharing security condition is a condition that “the number of devices taken over by unauthorized persons is t-1 or less”.
  • the Shamir secret sharing scheme satisfies: If the number of devices taken over by an unauthorized person is t-1 or less, the unauthorized person cannot obtain any secret K information. If the number of devices taken over by an unauthorized person is t-1 or less, the restoration device can restore the secret K by restoration means by sending the share of the device not taken over by the unauthorized person to the restoration device. .
  • Multi-Parti Computation [Multi-Parti Computation (MPC)] Several other methods for improving the security of authentication have been proposed. In order to explain these, multi-party computation (MPC) which is these elemental technologies will be described.
  • MPC refers to data of calculation results while maintaining the confidentiality of given data x [1], ..., x [M] by communication between multiple devices (hereinafter referred to as MPC devices). This is a method for calculating f (x [1], ..., x [M]). Where f is a predetermined function. Hereinafter, the function f is referred to as a “calculation function” of MPC.
  • MPC safety condition for example, the condition that “the number of collocated devices is smaller than the threshold k”
  • MPC using secret sharing Many existing MPCs use secret sharing as a subroutine. In such MPCs, there are secret sharing “distribution devices” and “restoration devices” in addition to the MPC devices described above.
  • the MPC device corresponds to a secret sharing share holding device. Note that a case where the distribution device and the restoration device are the same, a case where the distribution device and the MPC device are the same, or a case where the restoration device and the MPC device are the same may be considered. However, a case where the distribution device, MPC device, and restoration device are separate devices will be described below. The same applies to other cases.
  • MPC is performed by the following means.
  • the number of MPC devices is M.
  • each MPC device has a means for calculating the function f in advance (in the form of a circuit diagram or algorithm).
  • the MPC devices execute “MPC means” while communicating with each other, and obtain “output share” as a calculation result.
  • t [j] be the output share obtained by the j-th MPC device.
  • the first,..., Mth MPC devices send output shares t [1],..., T [M] to the restoration device, respectively.
  • the restoration device obtains “MPC output” y by executing “restoration means” using t [1],..., T [M].
  • the MPC output y matches f (x [1], ..., x [N]).
  • the MPC described above has a secret sharing security condition defined by the secret sharing method used as a subroutine.
  • the MPC security condition that guarantees the security of the MPC does not necessarily match the secret sharing security condition.
  • the secret sharing security condition is a necessary condition for the MPC security condition. That is, if the MPC security condition is satisfied, the secret sharing security condition is satisfied, but the converse is not necessarily satisfied.
  • the secret sharing security condition is a condition that “the number of collocated devices is smaller than a threshold value k”
  • the MPC security condition is a condition that “the number of collocated devices is smaller than a threshold value t”.
  • Non-Patent Documents 5 to 7 the efficiency of MPC is improved by pre-calculating a part of data necessary for MPC calculation.
  • Non-Patent Document 4 the zero knowledge proof (ZKIP: Zero-KnowledgenowInteractive Proof) method (Non-Patent Document 4) and the message authenticator (MAC: Message Authentication Code) method (Non-Patent Documents 5 to 7) are known.
  • ZKIP Zero-KnowledgenowInteractive Proof
  • MAC Message Authentication Code
  • a “validity proof creation unit” for creating a “validity proof” for indicating that the calculation performed by the MPC apparatus is not illegal a “validity verification unit” for verifying the validity proof. It has.
  • the method of creating the validity proof and the verification method are different between the ZKIP method and the MAC method.
  • the apparatus configuration itself including the “validity proof creation unit” and the “validity verification unit” is common between the ZKIP method and the MAC method.
  • the apparatus configurations of the ZKIP method and the MAC method MPC apparatus are as follows. Input part Communication part Calculation part MPC execution part Validity proof part Validity proof verification part Output part
  • secret sharing is used as a subroutine, and “distribution device” and “restoration device” for secret sharing are used in addition to the MPC device.
  • each MPC device in the form of a circuit diagram.
  • the circuit diagram of the function f is composed of “elements” such as AND gates and OR gates, and “element numbers” are assigned to the respective elements.
  • elements such as AND gates and OR gates
  • element numbers are assigned to the respective elements.
  • an element closer to the input gate is assigned a smaller element number.
  • this assumption is not essential.
  • Each MPC device receives as input the element R, the share corresponding to the input terminal of the element R, pre-calculated data (if any), and the random number (if any) used to execute the MPC execution unit.
  • a validity proof is created by executing the process, and the validity proof is transmitted to another MPC apparatus.
  • Each MPC device verifies the validity of the validity proof of another MPC device by inputting the element R and the validity proof to the validity proof verification unit.
  • the share corresponding to the output terminal of the circuit diagram of the function f is output using the output unit.
  • the output share is sent to the restoration device.
  • the restoration device restores the output of the MPC from the sent share.
  • Non-Patent Document 6 there is a method that makes MPC more efficient by verifying the validity proof collectively at the end.
  • any method is applicable to the above-described flow except when and how the processing of the validity proof part and the validity proof verification part is executed.
  • the ZKIP method and the MAC method have the following problems.
  • the execution speed is slow, and there is a large amount of communication between the servers and between the user and the server.
  • the authentication system many users use the system. Therefore, the system is required to have high performance in order to execute all of these user processes.
  • Existing methods have difficulties in terms of execution speed and communication volume. Therefore, in order to obtain the performance required for the authentication system, it is required to make the server used in the system have a high performance or make the line have a high speed. At this time, there arises a problem that the cost required for system construction increases.
  • As the user terminal it is assumed that a terminal having a low calculation capability and communication performance such as a smartphone is used. Therefore, a method that requires a high execution speed and a large amount of communication such as the ZKIP method or the MAC method may not be used.
  • Request calculation is a method using two devices. Specifically, from the state where the first device holds the function f (the circuit diagram thereof) and the second device holds the secret information x [1],..., X [N]. The process is started with the goal that the first device obtains a function value f (x [1],..., X [N]) (Non-patent Document 8).
  • the second device cannot know the information of the function f completely, and the first device does not have any secret information x [1], ..., x [N] information. I can't know.
  • the Garbled Circuit (GC) method (non-patent document 9) is a typical method for request calculation.
  • the device on the side holding the function f creates the data “GC (Garbled Circuit)”, and the device on the side holding the secret information x [1], ..., x [N] Calculate GC.
  • GC creation apparatus the former apparatus
  • GC execution apparatus the latter apparatus is referred to as “GC execution apparatus”.
  • the GC creation apparatus includes the following units. Input unit GC generation unit GC output generation unit transmission unit output unit
  • the GC execution device includes the following units.
  • the GC operates as follows.
  • the GC creation device creates a GC and key data K by executing the process of the GC generation unit with the function f as an input, and transmits the GC to the GC execution device.
  • the GC execution device receives the GC and secret information x [1],..., X [N] as input, and executes the process of the GC execution unit, thereby obtaining “GC output” E and GC output E Is transmitted to the GC creating apparatus.
  • the GC creation device receives the output E of the GC and the key data K and executes the process of the GC output generation unit to obtain the output y and output the output y.
  • the following properties are established. As long as the GC creation device is not hijacked by an unauthorized person (even if the GC execution device is hijacked), the output y matches f (x [1],..., X [N]).
  • the GC method is appropriately improved and used as an MPC.
  • the GC method itself is merely a method for realizing request calculation, and is not a method for realizing MPC. Therefore, it is assumed that the GC execution device knows the secret information x [1], ..., x [N].
  • the GC method is used as MPC in the present disclosure, it is necessary to ensure the confidentiality of the secret data x [1],..., X [N].
  • the GC method can guarantee that the output y matches f (x [1],..., X [N]) unless the GC creation device is hijacked by an unauthorized person. However, there is no guarantee as to the case where the GC creation device is hijacked by an unauthorized person.
  • FIDO method As a method to solve the above-mentioned problems related to authentication, the standardization organization FIDO (Fast Identify Online), which standardizes online authentication technology, has proposed an authentication method called UAF (Universal Authentication Framework) standard (non-patented). Reference 1). Hereinafter, this authentication method is referred to as “FIDO method”.
  • the feature of the FIDO system is that it is assumed that there is a highly secure area called “secure area” in the user apparatus.
  • “user authentication” for authenticating the user's identity and “device authentication” for authenticating the user's device are performed separately. Verification information used for user authentication and a secret key used for user device authentication are stored in this secure area.
  • FIG. 1 is a block diagram illustrating the configuration of the FIDO method.
  • the user device 11 has a user information acquisition unit 111.
  • the user information acquisition unit 111 provides an acquisition unit 1111 that acquires one or a plurality of user authentication information such as face information, fingerprint information, and glow information.
  • the user device 11 acquires user-specific information (face information, fingerprint information, glow information, etc.) from the user 13 using the acquisition unit 1111 in order to register the verification information in the authentication. Further, the user device 11 obtains verification information by inputting the acquired user specific information to the verification information deriving unit 11211.
  • the registered verification information is stored in the storage unit 1122 of the secure area 112 (“FIDO AUTHENTICATOR” of Non-Patent Document 1).
  • the user device 11 uses the key pair generation unit 11214 of the secure area 112 to generate a key (for some public key authentication method determined in advance). Further, the user device 11 stores the generated public key pk and secret key sk in the storage unit 1122 of the secure area 112, and transmits the public key pk to the device authentication server device 12. The device authentication server device 12 stores the received public key pk in its own public key database 1221.
  • the device authentication server device 12 uses the user authentication method selection unit 1211 to specify which authentication method is used for authentication.
  • User device 11 receives user-specific information in the designated authentication method from user 13 using acquisition unit 1111.
  • the user device 11 obtains authentication information by inputting the received user specific information to the authentication information deriving unit 11212.
  • the user device 11 executes the process of the user authentication unit 11213 in the secure area 112 using the input authentication information and the verification information stored in the storage unit 1122. As a result, the user device 11 confirms the identity of the user 13.
  • the user device 11 uses the notification unit 114 to inform the user 13 that the authentication has been rejected and ends the operation.
  • the user device 11 executes the process of the device authentication unit 11215 using the secret key sk and the public key pk stored in the storage unit 1122 of the secure area 112. .
  • the device authentication server device 12 executes the processing of the device authentication verification unit 1212 using the public key pk of the user device 11 stored in the public key database 1221.
  • the device authentication server device 12 accepts or rejects the authentication of the user device 11.
  • the user apparatus 11 notifies the user 13 that the authentication has been accepted or rejected using the notification unit 114, and ends the operation.
  • the device authentication unit 11215 and the device authentication verification unit 1212 communicate, they pass through the user device front end 1131 and the server device front end 1231.
  • These front ends are front ends whose communication methods are standardized by FIDO, and are widely used.
  • the FIDO system has a problem that it is assumed (or presupposed) that the secure area 112 exists in the user apparatus 11.
  • the verification information is the most sensitive information, ie, biometric information, which can cause serious danger.
  • FIG. 2 is a block diagram illustrating a server-side MPC system configuration.
  • the number of server-side user authentication MPC devices 22 is assumed to be M.
  • server-side MPC method The basic idea of the server-side MPC method is to verify the validity of authentication with one server device in the case of a normal authentication method, and replace the MPC with M “server-side user authentication MPC devices 22”. There is a place to verify the validity of authentication while doing.
  • the devices are distinguished by adding “[j]” to the end of the reference numerals of the units included in the jth server-side user authentication MPC device 22 below.
  • the expression “distributed user verification information database 2221 [j] of server-side user authentication MPC device 22 [j]” is used.
  • Fig. 2 illustrates the case where only one authentication method is provided. As in the case of the FIDO method, it is possible to provide a plurality of authentication methods and expand the method so as to select an authentication method from among them.
  • the user device 21 serves as a distributed device in the MPC.
  • the user device 21 includes an authentication information distribution unit 2123 that distributes authentication information of the user 23 and a verification information distribution unit 2124 that distributes verification information.
  • the server side user authentication MPC device 22 is an MPC device in MPC. However, only the first server-side user authentication MPC device 22 [1] also serves as a restoration device, and has an authentication result restoration unit 2212 [1] for restoring an authentication result that is an output of the MPC.
  • the MPC calculation function f in the server-side MPC method is an authentication function for user authentication. That is, the function f receives the authentication information and verification information of the user 23 as input, and outputs some data indicating that the authentication is accepted or rejected (for example, 1 if accepted, 0 if rejected).
  • the server side MPC method is performed as follows.
  • the user device 21 receives user-specific information from the user 23 using the acquisition unit 2111 of the user information acquisition unit 211.
  • the user device 21 derives the verification information from the user specific information using the verification information deriving unit 2121, and inputs the derived verification information to the verification information distribution unit 2124 to share the verification information v [1],. ., v [M] is obtained.
  • the user device 21 sends the share v [1] to the server-side user authentication MPC device 22 [1] by using the original specification communication unit 2131, and the share v [M] is sent to the server-side user authentication MPC. Send to device 22 [M].
  • the server-side user authentication MPC device 22 [1],..., The server-side user authentication MPC device 22 [M] respectively has a unique communication unit 2231 [1],. By using it, shares v [1], ..., v [M] are received and stored in the distributed user verification information database 2221 [1], ..., distributed user verification information database 2221 [M], respectively.
  • the user device 21 receives user-specific information from the user 23 using the acquisition unit 2111 of the user information acquisition unit 211.
  • the user device 21 derives authentication information from the user specific information using the authentication information deriving unit 2122, and inputs the derived authentication information to the authentication information distribution unit 2123, thereby sharing the authentication information s [1],. .., s [M] is created.
  • the user device 21 sends the share s [1] to the server-side user authentication MPC device 22 [1] by using the proprietary communication unit 2131, and ..., the share s [M] is server-side user authentication. Send to MPC device 22 [M].
  • the server-side user authentication MPC device 22 [1],..., The server-side user authentication MPC device 22 [M] respectively has a unique communication unit 2231 [1],. Use to receive shares s [1], ..., s [M].
  • the server side user authentication MPC device 22 [1],..., And the server side user authentication MPC device 22 [M] are distributed user verification information database 2221 [1],. Read the verification information share v [1], ..., v [M] of the user 23 from 2221 [M], and share v [1], ..., v [M] and share s [1], .., s [M] are used to communicate with each other while the user authentication MPC unit 2211 [1],... Accordingly, the server side user authentication MPC device 22 [1],..., And the server side user authentication MPC device 22 [M] respectively share the shares t [1],. obtain.
  • the server-side user authentication MPC device 22 [2],..., And the server-side user authentication MPC device 22 [M] respectively have a unique communication unit 2231 [2],.
  • the shares t [2],..., T [M] are transmitted to the server-side user authentication MPC device 22 [1], respectively.
  • the server-side user authentication MPC device 22 [1] receives these shares using the proprietary communication unit 2231 [1], and inputs the shares t [1], ..., t [M] to restore the authentication result.
  • By executing the processing of the unit 2212 [1] it is grasped whether the authentication result is accepted or rejected.
  • one-to-many communication between one user device 21 and M server-side user authentication MPC devices 22 is used.
  • it is not possible to use a method that uses one-to-many communication such as the server-side MPC method. Not realistic.
  • the MPC can maintain safety only when a set of unauthorized MPC devices satisfies the MPC safety condition.
  • the user device 21 sends a share of the feature amount of the verification information of the user 23 to the server side. Therefore, when the number of MPC devices exceeding the MPC safety condition is illegally colluded, there is a risk that sensitive information will be known to the server side as the maximum feature amount of the verification information of the user 23.
  • Encrypted communication method Finally, an embodiment of an authentication method using encrypted communication will be described. Hereinafter, this method is referred to as an “encrypted communication method”. As an example of the encryption communication method, there is one described in Non-Patent Document 2, for example. Here, a simpler version than that of Non-Patent Document 2 will be introduced.
  • the basic idea of the encrypted communication method is that user authentication information and verification information are encrypted with the public key of the server device and then transmitted to the server device. Thereby, the authentication information and the verification information are stored in the server device only in an encrypted form. Therefore, safety can be maintained even if data of the server device is viewed by an unauthorized person.
  • the server device's private key is also placed on the server device, when the data of the server device is viewed by an unauthorized person, not only the ciphertext of authentication information and verification information but also the private key is taken by the unauthorized person. End up. At this time, there is a problem that an unauthorized person can restore sensitive information such as authentication information and verification information by decrypting the ciphertext.
  • a device called “server auxiliary device” is provided separately from the server device, and the secret key of the server device is stored in the server auxiliary device instead of the server device.
  • the encrypted communication method In the FIDO method, user authentication and device authentication are performed. On the other hand, in the encrypted communication method, only user authentication is performed. It should be noted that the encrypted communication method can be improved to perform device authentication. However, even such improvements do not solve the problems of the encrypted communication system described later. Therefore, in the following, description regarding the case of performing device authentication in the encrypted communication method will be omitted.
  • FIG. 3 is a block diagram illustrating the configuration of the encrypted communication method.
  • the user authentication server auxiliary device 33 executes the processing of the server auxiliary device key generation unit 3311 of the calculation unit 331 (by using some public key cryptosystem) and the server auxiliary device secret key sk and the server auxiliary device disclosure.
  • a key pk is generated, the server auxiliary device secret key sk is stored in the storage unit 332, and the server auxiliary device public key pk is sent to the user device 31 via the communication unit 333.
  • the user device 31 receives the server auxiliary device public key pk and stores it in the storage unit 313.
  • the user device 31 receives user-specific information from the user 34 using the acquisition unit 3111 of the user information acquisition unit 311.
  • the user device 31 acquires verification information by inputting user-specific information to the verification information deriving unit 3122.
  • the user device 31 creates the ciphertext of the verification information by inputting the verification information and the server auxiliary device public key pk to the verification information encryption unit 3124.
  • the user device 31 sends the ciphertext to the user authentication server device 32 via the user device unique specification front end 3141.
  • the user authentication server device 32 receives the ciphertext via the server device unique specification front end 3231 and stores the ciphertext in the encrypted user verification information database 3221.
  • the user device 31 receives user-specific information from the user 34 using the acquisition unit 3111 of the user information acquisition unit 311.
  • the user device 31 obtains authentication information by inputting user-specific information to the authentication information deriving unit 3121.
  • the user device 31 creates the ciphertext of the authentication information by inputting the authentication information and the server auxiliary device public key to the authentication information encryption unit 3123.
  • the user device 31 sends the ciphertext to the user authentication server device 32 via the user device unique specification front end 3141.
  • the user authentication server device 32 searches the encrypted user verification information database 3221 for the user's encrypted verification information.
  • the user authentication server device 32 inputs the encrypted verification information and the encrypted authentication information to the server device encrypted authentication verification unit 3211. Also, the user authentication server auxiliary device 33 inputs the server auxiliary device secret key sk to the server auxiliary device encryption authentication verification unit 3312. The user authentication server device 32 and the user authentication server auxiliary device 33 communicate with each other using the auxiliary communication unit 3232 and the auxiliary communication unit 3331, respectively, while the server device encryption authentication verification unit 3211 and the server auxiliary device encryption authentication verification, respectively. The processing of unit 3312 is executed. Finally, an authentication result (acceptance or rejection) is determined, and the user authentication server device 32 notifies the user device 31 of the authentication result using the server device original specification front end 3231. The user device 31 receives the authentication result using the user device specific front end 3141. Also, the user device 31 notifies the user 34 of the authentication result using the notification unit 315.
  • server device encryption authentication verification unit 3211 There are various methods for realizing the server device encryption authentication verification unit 3211 and the server auxiliary device encryption authentication verification unit 3312. As an example, a method of determining acceptance or rejection of authentication by executing MPC can be considered.
  • the user authentication server device 32 receives the ciphertext C of the verification information of the user device 31 by a normal means.
  • the user authentication server device 32 encrypts arbitrary information M to create a ciphertext C ′.
  • the user authentication server device 32 inputs the ciphertexts C and C ′ to the server device encryption authentication verification unit 3211, and executes processing of the server device encryption authentication verification unit 3211 while communicating with the user authentication server auxiliary device 33.
  • the user authentication server device 32 can determine whether or not the arbitrary information M matches the user authentication information, depending on whether the output of the server device encryption authentication verification unit 3211 is acceptance or rejection. .
  • the above-described attack can be executed without communicating with the user device 31. Therefore, an unauthorized person can execute an attack any number of times without being noticed by the user device 31 (or the user who owns the user device 31).
  • the user authentication information is a password or biometric information
  • the entropy of the authentication information is small. Therefore, by executing the above-mentioned attack many times while changing M, an unauthorized person can specify user authentication information.
  • Another problem of the encrypted communication system is that authentication information is exchanged (in an encrypted state) between the user device 31 and the user authentication server device 32.
  • the front end standardized by FIDO does not assume that authentication information is exchanged between the user device 31 and the user authentication server device 32. Therefore, the encryption communication system has a problem that it is not possible to use the already popular standard called the front end of FIDO.
  • Some existing authentication methods use MPC.
  • the existing MPC ZKIP method and MAC method have the following problems. Since calculation cost and communication cost are required to generate, transmit / receive and verify ZKIP and MAC, calculation efficiency and communication efficiency deteriorate. In particular, when the user device is a powerless device such as a smartphone, poor calculation efficiency and communication efficiency become a bottleneck. Therefore, existing authentication methods are not practical.
  • GC has the following problems.
  • the GC method itself is merely a method for realizing request calculation, and is not a method for realizing MPC. Therefore, according to the GC method, the confidentiality of input data cannot be secured. There is no guarantee regarding the case where the GC creation device is hijacked by an unauthorized person.
  • An authentication system includes a user device, a user side auxiliary device that assists user authentication for authenticating a user of the user device and device authentication for authenticating the user device, and the user device.
  • a device authentication server device that performs the device authentication between the devices.
  • the user side auxiliary device performs a multi-party calculation for the user authentication with the user device using a distributed share of verification information, and uses a shared share of the secret key generated by the user device, Multi-party calculation for the device authentication is performed with the user device.
  • An authentication method includes: a user device; a user authentication for authenticating a user of the user device; a user side auxiliary device for assisting device authentication for authenticating the user device; and the user device.
  • the authentication system comprising the device authentication server device that performs the device authentication between the user device, the user device generates a secret key distributed share, and the user side auxiliary device using the verification information distributed share, Performing a multi-party calculation for the user authentication between, and performing a multi-party calculation for the device authentication with the user side auxiliary device using a distributed share of the secret key, including.
  • a method includes a user device, a user-side auxiliary device that assists user authentication for authenticating a user of the user device and device authentication for authenticating the user device, and the user device.
  • the authentication system comprising the device authentication server device that performs the device authentication in the multi-party calculation for the user authentication between the user device and the user device using a distributed share of verification information And a step of performing multi-party calculation for the device authentication with the user device using a distributed share of the secret key generated by the user device.
  • a program according to a fourth aspect of the present invention is provided between a user device, a user-side auxiliary device that assists user authentication for authenticating a user of the user device and device authentication for authenticating the user device, and the user device.
  • the authentication system comprising the device authentication server device that performs the device authentication in the above, the user authentication between the user side auxiliary device using the processing for generating the shared share of the secret key and the distributed share of the verification information
  • a program between a user device, a user side auxiliary device that assists user authentication for authenticating a user of the user device and device authentication for authenticating the user device, and the user device is provided.
  • a device authentication server device that performs the device authentication in the authentication system comprising: a process for performing multi-party calculation for the user authentication with the user device using a distributed share of verification information; Using the distributed share of the secret key generated by the device, a process of performing multi-party calculation for the device authentication with the user device is executed by a computer provided in the user side auxiliary device.
  • the program can also be provided as a program product recorded in a non-transitory computer-readable storage medium.
  • the authentication method, and the program according to the present invention in an authentication system that performs user authentication and device authentication, a secure area is not required in the user device, and a communication front end with an existing device authentication server is used. be able to.
  • FIG. 19 is a diagram illustrating a configuration of an authentication system according to an embodiment.
  • the authentication system includes a user device 41, user authentication for authenticating a user of the user device 41, and user side auxiliary devices 43 [1] -43 [M] for assisting device authentication for authenticating the user device 41.
  • M is a natural number
  • the user side auxiliary devices 43 [1] -43 [M] perform multi-party calculation for user authentication with the user device 41 using the distributed share of the verification information, and the secret key generated by the user device 41 Multi-party calculation for device authentication is performed with the user apparatus 41 using the distributed share of
  • multi-party calculation is performed using a distributed share of verification information between the user side auxiliary device and the user device. Therefore, the user apparatus does not need to hold the verification information as it is, and it is not necessary to assume the existence of a secure area in the user apparatus as in the FIDO method.
  • data exchanged between the user device and the device authentication server device is the same as that in the existing FIDO system. Therefore, according to one embodiment, a communication front end with an existing device authentication server can be used without providing a communication front end of a unique specification like the server side MPC method and the encrypted communication method.
  • both user authentication and device authentication can be performed in the same manner as in the FIDO method. That is, according to the authentication system of one embodiment, in an authentication system that performs user authentication and device authentication, a secure area is not required in the user device, and a communication front end with an existing device authentication server can be used. .
  • the first machine is a machine that the user uses as his / her user device, and specifically, a smartphone, a tablet, a PC (Personal Computer), or the like.
  • the second machine is a server machine.
  • the server machine has higher performance than a machine used as a user device, and can communicate with a plurality of user devices.
  • the fact that the machine used as the server is much higher in security than the machine used as the user device for the following reason is utilized.
  • User devices that are required to be inexpensive tend to be neglected in security protection functions, and users can freely install various applications on the user devices. Therefore, there is a high possibility that the user device is taken over by an unauthorized person, for example, when the user installs an unauthorized application.
  • the user side auxiliary device which is a server machine can be provided with a higher security protection function than the user device, and since installation of an application is not performed, it is much safer than the user device.
  • a “user side auxiliary device”, which is a server machine that assists the authentication of the user device, is prepared.
  • the “user side” simply means the user side (for example, the user apparatus 11 side in FIG. 1) in a sense in contrast to the server side (for example, the apparatus authentication server apparatus 12 side in FIG. 1). Absent. That is, the “user side auxiliary device” does not mean a device held by the user of the user device, but rather a usage pattern in which the “user side auxiliary device” is shared by a plurality of (many) user devices is assumed. .
  • user authentication and device authentication are separated as in the FIDO method.
  • the user device performs user authentication with the help of a user side auxiliary device. Thereafter, the user device receives device authentication from an external “device authentication server device” with the help of the user side auxiliary device.
  • the secret key and the public key of the user device are created, and the secret key is distributed and shared between the user device and the user side auxiliary device. Then, the user device and the user side auxiliary device perform user authentication by executing MPC using the distributed share of the user verification information and the authentication information. After that, by executing MPC using the distributed share of the user secret key, information necessary for public key authentication with the device authentication server apparatus is created.
  • the user side auxiliary device is a server that stores a distributed share of verification information of a large number of users and performs user authentication MPC together with the large number of user devices.
  • the following idea is used in order to efficiently execute the MPC of the public key authentication method for device authentication.
  • Authentication in many known public key authentication schemes is divided into a “secret key use calculation” and a “other than that” part using a secret key.
  • the part “other than that” is referred to as “secret key non-use calculation”.
  • the calculation of h d mod N is equivalent to the "secret key usage calculation”.
  • efficient MPC is known for secret key utilization computation. Therefore, the user device performs the secret key utilization calculation efficiently by executing such efficient MPC together with the user side auxiliary device.
  • the secret key is not used in the secret key non-use calculation. Therefore, the user device executes the secret key non-use operation by the user device alone without the help of the user side auxiliary device.
  • the user side auxiliary device of the embodiment is a server machine. That is, the user side auxiliary device is much more secure than a normal machine. Moreover, normal log monitoring is performed on the server machine. Therefore, even if the server machine is hijacked by an unauthorized person, the fraud performed by the unauthorized person can be identified by log monitoring.
  • the presence of the unauthorized person will be detected by log monitoring if he / she deviates from the defined MPC protocol. In such a case, it is considered that an unauthorized person does not deviate from the MPC protocol.
  • the user side auxiliary apparatus does not deviate from the MPC protocol. Therefore, the user side auxiliary device does not need to generate ZKIP or MAC.
  • a user device that is assumed to be a PC or a smartphone does not have a log monitoring function. That is, when a user device is taken over by an unauthorized person, the user device operated by the unauthorized person may deviate from the MPC protocol.
  • the user authentication of the embodiment only the user device generates ZKIP or MAC, and the user side auxiliary device does not generate ZKIP and MAC.
  • the cost required for generation, transmission / reception, and verification of ZKIP or MAC can be reduced as compared with the existing invention.
  • the GC method is used as the MPC.
  • the GC method has the two problems described above. In the second embodiment, these problems are solved as follows.
  • the safety is impaired.
  • the user-side auxiliary device does not deviate from the MPC protocol.
  • such a problem can be avoided by the user side auxiliary device acting as a device for creating a GC.
  • input data (in the embodiment, authentication information and verification information are handled as input data) is distributed and shared between the user device and the user side auxiliary device.
  • the distributed shares of the authentication information and the verification information held by the user apparatus are s [0] and v [0], respectively.
  • the distributed shares of authentication information and verification information held by the user side auxiliary device are s [1] and v [1], respectively.
  • f (a, b) be the following function. That is, the function f (a, b) regards a and b as the distributed shares of the authentication information and the verification information, restores the authentication information x using the distributed share a and the distributed share s [1], and distributes the distributed share b. And the verification information y is restored using the distributed share v [1], the user authentication is performed using the authentication information x and the verification information y, and the authentication result is output.
  • the user side auxiliary device which is a device for creating a GC, creates a circuit diagram of f (a, b) by using the distributed shares s [1], v [1], and inputs the circuit diagram to the GC generator. As a result, a GC and key data K are created, and the GC is sent to the user apparatus. Further, the user device inputs the GC and the distributed shares s [0], v [0] to the GC execution unit to obtain the output E of the GC, and sends the output E to the user side auxiliary device. Finally, the user side auxiliary device obtains an output ans from the output E and the key data K.
  • the data that can be obtained by the user apparatus is not the authentication information and the verification information itself, but only their shares s [0], v [0] and GC. Therefore, according to this embodiment, the problem that authentication information and verification information, which are secret information, is leaked to the user device is solved.
  • the user device and the user side auxiliary device after completing the user authentication with the MPC, create a response in the device authentication protocol with the device authentication server by the MPC. At this time, device authentication is performed only when user authentication is passed. That is, in the embodiment, when “reject” is issued in the former MPC, it is not necessary to execute the latter MPC. However, if the latter MPC is not performed when the former MPC is “rejected”, the user side auxiliary device acquires information of 1 bit indicating whether or not the latter MPC has been performed.
  • the user apparatus performs MPC related to device authentication as usual.
  • a protocol for impersonation hereinafter referred to as “device authentication simulation MPC”
  • device authentication simulation MPC a protocol for impersonation
  • the “device authentication simulated MPC” is an option for dealing with a case where it is desired to hide information on whether or not a user has been accepted by user authentication from the user side auxiliary device. Therefore, in a case where it is not necessary to hide such information in the user side auxiliary device, it is not necessary to execute “apparatus authentication simulation MPC”.
  • an unauthorized person who hijacks a user device can impersonate the user by requesting user authentication (although the user does not actually request user authentication). It is possible to cause the side auxiliary device to execute user authentication MPC. Specifically, user authentication MPC can be executed together with the user side auxiliary device using arbitrarily selected authentication information M, and it can be known whether the result is acceptance or rejection. Thereby, the unauthorized person can know whether or not the arbitrarily selected authentication information M matches the user authentication information. Since the entropy of the authentication information is small, an unauthorized person can specify the authentication information of the user by performing a full search while changing the authentication information M to various values.
  • this attack technique involves communication between the user device and the user side auxiliary device. Therefore, by imposing a limit on the number of communications with the user side auxiliary device on the user device side, analysis by an unauthorized person can be avoided and safety is ensured.
  • the user apparatus and the user side auxiliary apparatus jointly perform MPC for user authentication. For this reason, it is assumed that both the user device and the user side auxiliary device hold the user authentication algorithm.
  • user authentication especially biometric authentication algorithms, are often targets to be protected as trade secrets.
  • authentication information derivation and verification information derivation that extract features to obtain authentication information and verification information from user-specific information (information such as face, glow, and fingerprint) accompanying user authentication should also be protected as a trade secret Often the target.
  • the authentication information derivation algorithm, the verification information derivation algorithm, and the user authentication algorithm are to be hidden from user devices that may be in the hands of an unspecified number of users. Conceivable.
  • the following method is conceivable as a method for hiding these algorithms from the user device.
  • the user apparatus executes only acquisition of user specific information and secret sharing thereof.
  • a method is conceivable in which the user side auxiliary device uses the distributed share of user-specific information to calculate the distributed share of verification information and authentication information by MPC and executes the user authentication algorithm by MPC.
  • the user device acquires user-specific information from the user, and obtains a distributed share e [1], ..., e [M] by secretly sharing the user-specific information.
  • M is the number of user side auxiliary devices.
  • the distributed share e [i] is further secretly distributed to obtain “distributed share of user-specific information distributed share” c [i], d [i].
  • C [1],..., C [M] are stored by the user apparatus itself, and d [i] is stored by the i-th user side auxiliary apparatus.
  • the distributed share of user-specific information is stored separately for the user device and the user side auxiliary device. Therefore, safety can be ensured even when an unauthorized person hijacks a user side auxiliary device that exceeds the MPC safety condition.
  • the authentication information derivation algorithm, the verification information derivation algorithm, and the user authentication algorithm are kept secret in the user device and stored only in the user side auxiliary device.
  • the user device sends “distributed share of distributed share of user-specific information” c [i] held by the user device to the i-th user-side auxiliary device. Restore e [i] from [i] and d [i].
  • the user apparatus secretly distributes the user-specific information acquired from the user to obtain a distributed share f [1], ..., f [M], and f [i ]
  • i-th user side auxiliary device uses e [i], f [i], authentication information derivation algorithm, verification information derivation algorithm, and user authentication algorithm to communicate with other user side auxiliary devices While performing MPC, user authentication is performed.
  • the user device sends “distributed share of distributed share of user-specific information” c [i] to the user side auxiliary device during user authentication. Therefore, when an unauthorized person hijacks a user-side auxiliary device during user authentication, the unauthorized person uses d [i] stored in the user-side auxiliary device and c [i] received from the user device. E [i] can be restored. Therefore, at this stage, if a user-side auxiliary device that exceeds the MPC safety condition has been taken over by an unauthorized person, user-specific information, authentication information, and verification information are restored from e [i]. Confidentiality cannot be maintained.
  • the user side auxiliary device is obliged to delete the “share of user-specific information share” c [i]. This avoids this danger as much as possible.
  • the seventh embodiment solves the problem by a method similar to that of the sixth embodiment based on the same motive as the sixth embodiment.
  • the user device acquires user-specific information in the pre-registration stage, it is secretly distributed and sent to the user side auxiliary device to perform MPC between the user side auxiliary devices.
  • the i-th user-side auxiliary device obtains the distributed share v [i] of the user verification information.
  • the i-th user-side auxiliary device then secretly distributes v [i] to create “distributed share of verification information distributed share” u [i] and w [i], and sends u [i] to the user device.
  • W [i] is stored by itself.
  • the i-th user-side auxiliary device communicates with other user-side auxiliary devices using v [i], f [i], an authentication information derivation algorithm, a verification information derivation algorithm, and a user authentication algorithm.
  • User authentication is performed by performing MPC.
  • a “user authentication information distributed share generation device” which is a dedicated server machine for calculating user authentication information and its share, and a dedicated server machine for calculating user verification information and its share
  • the “user verification information distributed share generation device” is prepared. These devices perform authentication information, verification information, and calculation of their shares on behalf of the user device.
  • the user device does not calculate authentication information or verification information. Therefore, it is not necessary to disclose the authentication information and verification information derivation algorithm to the user apparatus.
  • the user device since the authentication information and verification information are stored in the user device in the FIDO method, the user device must have a secure area that protects the information, and the secure area is invaded by an unauthorized person.
  • sensitive information such as user authentication information and verification information is transferred to an unauthorized person.
  • the authentication information and the verification information itself are not stored in the user device (although the distributed share of the authentication information and the verification information is stored). Therefore, even if the user device is completely hijacked by an unauthorized person, there is no risk that the unauthorized person will take authentication information and verification information, and a secure area is not required.
  • the authentication information and the verification information are leaked to the unauthorized person.
  • a server machine is assumed as the user side auxiliary device. Therefore, the risk that the user side auxiliary device will be hijacked by an unauthorized person together with the user device is very small.
  • a method of hiding whether or not the user authentication has passed in the user side auxiliary device is also presented as the third embodiment. If such a method is used, the safety in the case where a user side auxiliary device is hijacked by an unauthorized person can be improved.
  • the user authentication algorithm, the authentication information derivation algorithm, and the verification information derivation algorithm are also stored in a secure area to protect these algorithms from leaking.
  • these algorithms will leak if the secure area is compromised by an unauthorized person.
  • biometric authentication is used as a user authentication method, these algorithms are often trade secrets. Therefore, there is great concern about the algorithm leaking to unauthorized persons.
  • data to be communicated between the user device and the server device is created by MPC.
  • how to create data differs between the embodiment and an existing authentication method such as the FIDO method.
  • the data to be communicated is exactly the same as that of the existing authentication method. Therefore, according to the embodiment of the present disclosure, the communication standard of the existing authentication method can be used as it is. That is, according to the embodiment of the present disclosure, it is possible to communicate with all server apparatuses that satisfy the communication standard of the existing authentication method, and there is no problem of communication protocol compatibility as in the existing method.
  • the authentication system of this embodiment includes a user device 41, a user side auxiliary device 43, and a device authentication server device.
  • the user 44 is a user who owns the user device 41.
  • the user device 41 is a device owned by the user 44.
  • a smartphone for example, a smartphone, a tablet, a PC (Personal Computer), or the like is assumed.
  • the user side auxiliary device 43 and the device authentication server device 42 are assumed to be some kind of server machine.
  • the user device 41, the user side auxiliary device 43, and the device authentication server device 42 include a “calculation unit”, a “storage unit”, and a “communication unit”.
  • the calculation unit is a processor such as a CPU (Central Processing Unit).
  • the storage unit is a storage medium such as a memory or a hard disk.
  • the communication unit is a part for enabling devices to communicate with each other via the Internet or the like.
  • the user device 41 further includes a user information acquisition unit 411 and a notification unit 415.
  • the user information acquisition unit 411 acquires information used for authentication from the user 44.
  • the notification unit 415 informs the user 44 whether the authentication has been accepted or rejected.
  • the notification unit 415 is a display of a PC or a smartphone, for example.
  • each user 44 has one or more user devices 41.
  • FIG. 4 shows only one user 44 and one user device 41 held by the user 44.
  • the device authentication server device 42 is a server that authenticates the user device 41.
  • the device authentication server device 42 is used for authentication when the user 44 uses the user device 41 to use some web service, for example.
  • the device authentication server device 42 generally communicates with a plurality of user devices 41.
  • the device authentication server device 42 holds in the storage unit 422 a public key database 4221 that is a database for storing the public key of each device.
  • the storage unit 422 also has an area other than the public key database 4221 and can store necessary information in a timely manner.
  • the user side auxiliary device 43 assists the user device 41 in authentication.
  • FIG. 4 shows M user-side auxiliary devices 43. These user side auxiliary devices 43 perform authentication while communicating with the user device 41 and other user side auxiliary devices 43 at the time of authentication.
  • Each user side auxiliary device 43 generally assists a plurality of authentications and communicates with the user device 41 (different or the same for each authentication) in each authentication.
  • the first,..., Mth user side auxiliary device 43 will be referred to as user side auxiliary device 43 [1],..., User side auxiliary device 43 [M].
  • a unit included in the user-side auxiliary device 43 is clearly indicated as having the i-th user-side auxiliary device 43 by adding “[i]” at the end.
  • the calculation unit 431 of the user side auxiliary device 43 [3] is expressed as a calculation unit 431 [3].
  • Each user-side auxiliary device 43 holds in the storage unit 432 a distributed share database 4321 that is a database for holding a shared share of verification information of the user 44 and a shared share of the secret key of the user device 41 owned by the user 44. To do. Note that the storage unit 432 also has an area other than the distributed share database 4321 and can store necessary information in a timely manner.
  • user authentication refers to an act of proving that the user 44 is the same as the user 44 pre-registered with the user device 41.
  • device authentication means that the user device 41 proves to the device authentication server device 42 that the user device 41 is the same as the pre-registered device.
  • User 44 uses the user device 41 to perform user authentication.
  • the user device 41 performs user authentication by communicating with the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M].
  • the user device 41 performs device authentication by communicating with the device authentication server device.
  • the user side auxiliary device 43 [1],..., And the user side auxiliary device 43 [M] communicate with the user device 41 to assist device authentication.
  • the user device 41 and the device authentication server device 42 determine data to be communicated according to some predetermined communication protocol (for example, UAF standard proposed by FIDO).
  • the units (or means) for communicating according to this communication protocol are the user device front end 4142 of the communication unit 414 and the server device front end 4231 of the communication unit 423.
  • the user device front end 4142 is for communicating with the device authentication server device 42 in accordance with a device authentication communication protocol.
  • the communication unit 414 of the user device 41 has an auxiliary communication unit 4141 for communicating with the user side auxiliary device 43 [1],..., The user side auxiliary device 43 [M].
  • the communication unit 433 of the user side auxiliary device 43 [1],..., The user side auxiliary device 43 [M] has an auxiliary communication unit 4331 for communicating with the user device 41.
  • the auxiliary communication unit 4141 and the auxiliary communication unit 4331 perform various communications between the user device 41 and the user side auxiliary device 43, such as sending out shares of authentication information and verification information.
  • user-specific information For example, the following three types of information for identifying the user 44 (hereinafter referred to as “user-specific information”) are used.
  • User memory Password, password, passphrase, etc.
  • User biometric information face, fingerprint, glow, etc.
  • User property security token, IC (Integrated Circuit) card, etc.
  • the user device 41 has means for reading one or more of these user-specific information.
  • the user information acquisition unit 411 of the user device 41 includes an acquisition unit 4111 for reading the information for each piece of authentication information to be read.
  • the user device 41 includes an authentication information deriving unit 41211 that processes user-specific information obtained by the acquiring unit 4111 to obtain “authentication information”, and a verification information deriving unit 41221 that processes user-specific information to obtain “verification information”.
  • an authentication information deriving unit 41211 that processes user-specific information obtained by the acquiring unit 4111 to obtain “authentication information”
  • a verification information deriving unit 41221 that processes user-specific information to obtain “verification information”.
  • Authentication information is information for indicating the identity of a user in user authentication.
  • verification information is information registered in advance for comparison with authentication information.
  • Some specific examples of the authentication information deriving unit 41211 and the verification information deriving unit 41221 are shown.
  • the acquisition unit 4111 acquires biometric information as image data. Further, the authentication information deriving unit 41211 and the verification information deriving unit 41221 extract the feature amount of the biological information from the image data, and use the extracted feature amount as authentication information and verification information.
  • the authentication information is the password P
  • the verification information deriving unit 41221 corresponds to an operation for hashing the password P acquired by the acquiring unit 4111.
  • the authentication information deriving unit 41211 uses the password P acquired by the acquiring unit 4111 as it is. At this time, the authentication information deriving unit 41211 is a means for “outputting the information P obtained by the acquiring unit 4111 as it is”.
  • the user authentication method selection unit 4211 provided in the calculation unit 421 of the device authentication server apparatus 42 determines which one of a plurality of user authentication methods is to be used.
  • the user authentication method selection unit 4211 may be mounted on the user device 41.
  • FIG. 4 is described on the assumption that one public key authentication method used for device authentication is determined in advance. However, as in the case of user authentication, it can be extended to select one method from a plurality of public key authentication methods.
  • the user device 41 receives the following data in advance and holds it in the storage unit 413.
  • Number of user side auxiliary devices 43 User authentication verification protocol (if multiple user authentications are provided, all of them) Authentication protocol for device authentication
  • the user side auxiliary device 43 [1],..., And the user side auxiliary device 43 [M] receive the following data in advance and hold them in the storage unit 432.
  • Number of user side auxiliary devices 43 User authentication verification protocol (if multiple user authentications are provided, all of them)
  • the device authentication server apparatus 42 receives the following data in advance and holds it in the storage unit 422.
  • Device authentication verification protocol
  • the user device 41 and the device authentication server device 42 store the MPC pre-calculation data in the storage unit 413 and the storage unit 432, respectively. Keep it.
  • the following advance preparation is performed prior to authentication.
  • Preparation for user authentication Prepare data required for user authentication in advance.
  • verification information is calculated.
  • Preparation for device authentication Prepare data required for device authentication in advance.
  • the public key and secret key of the user device are generated.
  • the user device 41 authenticates the user 44 with the help of the user side auxiliary device 43.
  • Device Authentication The user device 41 receives authentication from the device authentication server device 42 with the help of the user side auxiliary device 43.
  • the user 44 pre-registers verification information in preparation for user authentication.
  • Various methods can be used as a method for pre-registering verification information.
  • FIG. 4 shows a case where verification information is pre-registered using the acquisition unit 4111 of the user device 41.
  • a dedicated machine for registering verification information may be prepared and used to pre-register the verification unit.
  • verification information pre-registration in the apparatus configuration illustrated in FIG. 4 will be described.
  • Step 51 First, the user device 41 executes the following.
  • Step 511 The acquisition unit 4111 acquires user specific information from the user 44.
  • Step 512 The verification information deriving unit 41221 receives the user specific information and outputs the verification information.
  • Step 513 The verification information distribution unit 41222 receives the verification information and the number M of the user side auxiliary devices 43 as inputs, and outputs a verification information distribution share v [0], v [1], ..., v [M]. To do.
  • Step 514 The storage unit 413 stores the distributed share v [0].
  • Step 515 The auxiliary communication unit 4141 of the communication unit 414 transmits the distributed share v [1] to the user side auxiliary device 43 [1], ..., and distributes the distributed share v [M] to the user side auxiliary device 43 [M ] To send.
  • Step 516 The user apparatus 41 deletes the user specific information, the verification information, and the distributed share v [1], ..., v [M].
  • Step 61 The user device 41 executes the following.
  • Step 611 The key pair generation unit 4125 generates a public key pk and a secret key sk for the user device 41.
  • Step 614: For i 1,..., M, the auxiliary communication unit 4141 of the communication unit 414 transmits the secret key distribution share k [i] and the public key pk to the user side auxiliary device 43 [1].
  • Step 63 The device authentication server device 42 executes the following.
  • Step 631 The server device front end 4231 receives the public key pk of the user device 41.
  • Step 632 The public key database 4221 holds the received public key pk.
  • Step 715 The user apparatus 41 deletes the distributed shares s [1],..., S [M] of the user specific information and the authentication information.
  • Step 716 The user device user authentication MPC unit 4123 reads from the storage unit 413 the verification information share v [0] of the user 44, the user authentication verification protocol, and the precalculation data p [0] (if any).
  • Step 721 The auxiliary communication unit 4331 [i] of the communication unit 433 [i] receives the distributed share s [i] of the authentication information.
  • Step 73 The user device 41 sets the authentication information distributed share s [0], the verification information distributed share v [0], the precalculation data p [0] (if any) and the user authentication verification protocol to the user device user.
  • the user authentication verification protocol (if any) is input to the user side auxiliary device user authentication MPC unit 4311 [i].
  • Step 75 The user device 41 executes the following.
  • Step 751 The auxiliary communication unit 4141 receives shares a [1],..., A [M] of user authentication results.
  • Step 752 The user authentication result restoration unit 4124 receives a [0],..., A [M] and outputs a user authentication result acc.
  • Step 753 The user authentication result restoring unit 4124 determines whether the result acc of the user authentication is “accept” or “reject”.
  • Step 754 When the user authentication result acc is “accepted”, the user apparatus 41 uses the user side auxiliary device 43 [1],... Get device certification from Details of “device authentication” will be described later.
  • Step 755 When the result of the user authentication is “rejected”, the user device 41 notifies the user 44 via the notification unit 415 that the authentication has been rejected, and the process ends.
  • the user device 41 uses the user device user authentication MPC unit 4123.
  • the user side auxiliary device 43 uses the user side auxiliary device user authentication MPC unit 4311.
  • FIG. 8 is a block diagram illustrating the configuration of the user device user authentication MPC unit 4123.
  • FIG. 9 is a block diagram illustrating the configuration of the user side auxiliary device user authentication MPC unit 4311.
  • the user device user authentication MPC unit 4123 has a validity proof generation unit 84, while the user side auxiliary device user authentication MPC unit 4311 has a validity proof verification unit 94. .
  • each time each step of MPC is executed a step of generating a validity proof that proves that each MPC device has correctly executed the step; There is a step of verifying the validity proof generated by another MPC device to confirm that the MPC device has correctly performed the step.
  • a validity proof generation unit 84 that creates a validity proof only for the user device 41 is provided, and the user side auxiliary device 43 includes Only the validity proof verification unit 94 that verifies the validity proof of the user device 41 is provided.
  • the user authentication MPC will be described with reference to FIG.
  • Step 101 In the user device 41, the input unit 81 of the user device user authentication MPC unit 4123 receives the authentication information distributed share s [0], the verification information distributed share v [0], and the user authentication verification protocol as input.
  • the distributed share s [0] of information and the distributed share v [0] of verification information are stored in the temporary storage unit 82.
  • the verification information distributed share v [i] and the verification protocol for user authentication are input and stored in the temporary storage unit 92 [i].
  • Step 102 For each element R of the user authentication verification protocol, the following is executed in order from the smallest element number.
  • N is the number of input terminals of the element R.
  • the user device 41 has shares t [0,1], ..., t [0, N] corresponding to the input terminals c [1], ..., c [N] of the element R and the pre-calculated data q [0 , R] (if any) are read from temporary storage unit 82, and element R and shares t [0,1],..., T [0, N] are input to user authentication MPC execution unit 83.
  • the user side auxiliary device 43 [i] has a share t [i, 1], corresponding to the input terminals c [1], ..., c [N] of the element R. ..., t [i, N] are read from the temporary storage unit 92 [i], the element R and the shares t [i, 1], ..., t [i, N] and the pre-calculated data q [i, R] (if any) is input to the user authentication MPC execution unit 93 [i].
  • User authentication MPC execution unit 83 and user authentication MPC execution unit 93 [1],..., User authentication MPC execution unit 93 [M] are communication unit 414, communication unit 433 [1],.
  • the user device 41 and the user side auxiliary device 43 [i] communicate with each other using the communication unit 414 and the communication unit 433 [i], respectively, while the validity proof generation unit 84 and the validity proof verification unit 94 are executed.
  • Step 104 The user apparatus 41 outputs the share a [0] of the user authentication result.
  • i 1,..., M
  • the user side auxiliary device 43 [i] outputs a user authentication result share a [i].
  • the user device 41 and the device authentication server device 42 execute some public key authentication such as authentication standardized by the FIDO UAF standard.
  • the user device 41 performs authentication by using its own private key.
  • the device authentication server device 42 verifies the authentication of the user device 41 by using the public key of the user device 41.
  • the user device 41 does not have its own secret key, and the secret key of the user device 41 is the user device 41, the user side auxiliary device 43 [1],. Distributed sharing is performed by the device 43 [M]. Therefore, known public key authentication cannot be used in this embodiment as it is.
  • the data calculated by the user device 41 using the secret key in the public key authentication is the user device 41, the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M ] Change to calculate with MPC.
  • the method by which the user device 41 calculates necessary data is different from normal public key authentication.
  • the communication data exchanged between the user device 41 and the device authentication server device 42 is the same as normal public key authentication.
  • the calculation performed on the device authentication server device 42 side is also the same as normal public key authentication. Therefore, in this embodiment, the communication standard of the existing authentication method can be used as it is. That is, according to the present embodiment, it is possible to communicate with all server devices that satisfy the communication standard of the existing authentication method. Thereby, in this embodiment, the problem of the compatibility of communication protocols like the existing technology does not arise.
  • Device authentication based on public key authentication in this embodiment satisfies the following assumptions. Device authentication is performed using a subroutine (or unit) called a “secret key use calculation unit” (or a unit including a “secret key use calculation” as part of the unit name, and so on). Used only in the “use calculation unit”.
  • a subroutine or unit
  • secret key use calculation unit or a unit including a “secret key use calculation” as part of the unit name, and so on.
  • the part other than the “secret key use calculation unit” in the subroutine for device authentication is called a “secret key non-use calculation unit”.
  • only the secret key utilization calculation part of the authentication means is executed by MPC between the user device 41 and the device authentication server device 42.
  • the user device 41 executes the private key non-use calculation unit alone.
  • FIG. 11 is a block diagram illustrating the configuration of the user apparatus device authentication MPC unit 4127.
  • FIG. 12 is a block diagram illustrating the configuration of the user side auxiliary device authentication MPC unit 4312.
  • FIG. 13 is a flowchart illustrating the operation of device authentication.
  • Step 131 Each device inputs data as follows.
  • Step 1312: For i 1,..., M, the user side auxiliary device 43 [i] reads the secret key share k [i] and the public key pk of the user device 41 from the distributed share database 4321, and the user side Input to the input unit 121 of the auxiliary device authentication MPC unit 4312.
  • Step 132 The device authentication server device 42 and the user device 41 perform data transmission / reception as follows.
  • Step 1321 The device authentication server device 42 executes the device authentication verification unit 4212.
  • the device authentication server device 42 uses the server device front end 4231 to send the user device 41 to the user device 41.
  • Send data The user device 41 receives the data sent from the device authentication server device 42 using the user device front end 4142, inputs the received data to the secret key non-use computing unit 115, and executes the following.
  • Step 13221 Every time the secret key non-use calculation unit 115 requests a secret key use calculation as a subroutine, the data thrown by the secret key non-use calculation unit 115 to the subroutine is input to the secret key use calculation MPC execution unit 113 and the following is executed. To do.
  • the MPC is executed by mutual communication with the secret key use calculation MPC execution unit 122 [M], necessary data is calculated, and the calculated data is returned to the secret key non-use calculation unit 115.
  • Step 1323 Finally, when the device authentication verification unit 4212 of the device authentication server device 42 outputs data indicating “accept” or “reject”, the device authentication server device 42 ends the device authentication verification unit 4212.
  • the authentication system In the authentication system according to the present embodiment, multi-party calculation is performed between the user side auxiliary device and the user device using the distributed share of verification information and authentication information. Therefore, the user apparatus does not need to hold the verification information and the authentication information as they are, and it is not necessary to assume the existence of a secure area in the user apparatus unlike the FIDO method.
  • data exchanged between the user apparatus and the device authentication server apparatus is the same as that in the existing FIDO system. Therefore, according to the present embodiment, it is possible to use a communication front end with an existing device authentication server without providing a communication front end of an original specification unlike the server side MPC method and the encrypted communication method. Furthermore, according to the present embodiment, both user authentication and device authentication can be performed as in the FIDO method.
  • the authentication system of the present embodiment in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . Therefore, according to the present embodiment, it is possible to solve the above-described problems of existing methods such as the FIDO method, the server side MPC method, and the encrypted communication method.
  • the server machine is employed as the user side auxiliary device, thereby preventing the user side auxiliary device from deviating from the MPC protocol.
  • the user device can create the validity proof, and the generation of the validity proof by the server side auxiliary device can be omitted. Therefore, according to the present embodiment, it is possible to greatly improve the calculation efficiency and the communication efficiency as compared with the existing ZKIP method and the MAC method.
  • the configuration of the authentication system of this embodiment is the same as the configuration of the first embodiment (FIG. 4).
  • the flowchart showing the user authentication of this embodiment is the same as that of the first embodiment (FIG. 7). However, in this embodiment, the user authentication MPC in step 73 is replaced with the one described below.
  • the user device 41 executes the process of the user device user authentication MPC unit 4123.
  • the user side auxiliary device 43 executes the processing of the user side auxiliary device user authentication MPC unit 4311.
  • FIG. 14 is a block diagram illustrating the configuration of the user side auxiliary device user authentication MPC unit 4311.
  • FIG. 15 is a block diagram illustrating the configuration of the user device user authentication MPC unit 4123.
  • the user authentication MPC in this embodiment will be described with reference to FIG.
  • Step 161 The user side auxiliary device 43 [1] inputs the authentication information distributed share s [1], the verification information distributed share v [1], and the user authentication verification protocol to the user side auxiliary device user authentication MPC unit 4311. To do.
  • the user side auxiliary device user authentication MPC unit 4311 receives these data from the input unit 141 and inputs the circuit diagram of the function f to the GC generation unit 142 to create the GC and key data K.
  • the function f (a, b) is assumed that “a and b are regarded as a distributed share of authentication information and verification information, respectively, and the authentication information x is restored using a and s [1], and b and v [1 ] Is used to restore the verification information y, authenticate the user using x and y, and output the authentication result.
  • the user side auxiliary device 43 [1] transmits the GC to the user device 41 using the notification unit 433 [1].
  • Step 162 The user device user authentication MPC unit 4123 of the user device 41 receives the GC using the communication unit 414, and executes the processing of the GC execution unit 152 using the GC.
  • the user device 41 acquires the output E of the GC execution unit 152, and sends the output E to the user side auxiliary device 43 [1] using the communication unit 414.
  • Step 163 The user side auxiliary device user authentication MPC unit 4311 of the user side auxiliary device 43 [1] receives the output E using the notification unit 415 [1], and outputs the output E and the key data K to the GC output generation unit 143. As an output, data ans indicating that the result of the user authentication is “accept” or “reject” is obtained.
  • Step 164 The user device 41 does not output anything from the output unit 144. That is, the share s [0] of the MPC output is an empty character string.
  • the user side auxiliary device 43 [1] outputs ans as the share s [1] of the output of the MPC.
  • the same effects as those of the first embodiment are brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . In this embodiment, the user apparatus can obtain only the share and GC, not the authentication information and the verification information itself. Therefore, according to this embodiment, the problem of the GC method that authentication information and verification information leak to the user apparatus can be solved.
  • the user device 41 when user authentication is accepted, the user device 41 performs device authentication with the help of the user side auxiliary device 43. On the other hand, if the user authentication is rejected, the device authentication is not performed, the user 44 is notified that the user authentication is rejected, and the process is terminated. At this time, the user-side auxiliary device 43 acquires 1-bit information indicating whether the user authentication is accepted or rejected.
  • the user device 41 further includes the device authentication simulation MPC unit 17 after the user authentication result restoration unit 4124 (in the “permitted”).
  • step 755 in the flowchart (FIG. 7) showing user authentication.
  • the user device 41 replaces the device authentication server device 42 with the help of the user side auxiliary device 43 [1], ..., user side auxiliary device 43 [M].
  • the device authentication simulation MPC is executed. Details of the device authentication simulation MPC will be described later.
  • the user device 41 notifies the user 44 that the authentication is rejected via the notification unit 415 and ends.
  • the user authentication MPC in step 73 in FIG. 7 may use the ZKIP method or MAC method described in the first embodiment, or may use the GC method described in the second embodiment.
  • step 754 in FIG. 7 is the same except that whether the device authentication verification unit 4212 executes the device authentication server device 42 or the user device 41 is executed.
  • the user side auxiliary device 43 has no method for determining whether the device authentication verification unit 4212 is executing the device authentication server device 42 or the user device 41. Therefore, the user side auxiliary device 43 determines whether user authentication has been accepted (ie, step 754 has been executed) or user authentication has been rejected (ie, step 755 has been executed). There is no.
  • FIG. 17 is a block diagram illustrating the configuration of the device authentication simulation MPC unit 17.
  • the device authentication simulation MPC unit 17 executes MPC while communicating with the secret key use calculation MPC execution unit 122 of the user side auxiliary device 43 when the user device 41 executes the process of the secret key use calculation MPC execution unit 173. To do.
  • the secret key use calculation MPC execution unit 173, the secret key use calculation correctness proof generation unit 174, and the secret key non-use calculation unit 175 in FIG. The same as the unit 113, the secret key use calculation correctness proof generation unit 114, and the secret key non-use calculation unit 115.
  • the public key authentication verification unit 176 in FIG. 17 is the same as the device authentication verification unit 4212 of the device authentication server apparatus 42 in FIG.
  • FIG. 18 is a flowchart illustrating the operation of the device authentication simulation MPC:
  • Step 181 Each device inputs data as follows.
  • Step 1811 The user device 41 reads the secret key share k [0] from the storage unit 413 and inputs it to the input unit 171 of the device authentication simulation MPC unit 17.
  • the user device 41 further reads its own public key pk from the storage unit 413 and inputs it to the public key authentication verification unit 176.
  • Step 1812: For i 1,..., M, the user side auxiliary device 43 [i] reads the secret key share k [i] from the distributed share database 4321, and the user side auxiliary device device authentication MPC unit 4312 Input to the input unit 121.
  • Step 182 The user device 41 executes the following.
  • Step 1821 The user device 41 executes the public key authentication verifying unit 176, and when the public key authentication verifying unit 176 issues a data transmission request, the requested data is input to the secret key non-use computing unit 175.
  • Step 1822 The user apparatus 41 inputs the data requested to be transmitted to the secret key non-use calculation unit 175, and executes the following.
  • Step 18221 Every time the secret key non-use calculation unit 175 requests a secret key use calculation as a subroutine, the data thrown by the secret key non-use calculation unit 175 to the subroutine is input to the secret key use calculation MPC execution unit 173 and the following is executed. To do.
  • Step 182211 The secret key utilization calculation MPC execution unit 173 executes the user side auxiliary device 43 [1], ..., the secret key utilization calculation MPC execution unit 122 [1], ..., of the user side auxiliary device 43 [M].
  • the MPC is performed by mutual communication with the secret key use calculation MPC execution unit 122 [M], necessary data is calculated, and the calculated data is returned to the secret key non-use calculation unit 175.
  • Step 182212: For i 1,..., M, the user device 41 and the user side auxiliary device 43 [i] communicate with each other using the auxiliary communication unit 4141 and the auxiliary communication unit 4331 [i], respectively.
  • the processing of the key use calculation correctness proof generation unit 174 and the secret key use calculation correctness verification unit 123 [i] is executed.
  • Step 18222 When the secret key utilization calculation validity proof generation unit 174 issues a data transmission request, the user device 41 inputs the requested data to the public key authentication verification unit 176.
  • Step 1823 When the public key authentication verification unit 176 finally outputs data indicating “accept” or “reject”, the user apparatus 41 ends the device authentication simulation MPC.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . In the present embodiment, when user authentication is permitted, the user device executes the device authentication simulation MPC, so that the user side auxiliary device is not given any information regarding whether or not the user authentication is accepted. Can be. Therefore, according to the present embodiment, it is possible to further improve the safety of the authentication system according to the above-described embodiment.
  • a counter that counts the number of rejections by user authentication is added to the user side auxiliary device 43 [i] of the first embodiment, and the counter is determined. If the specified threshold is exceeded, user authentication is rejected.
  • the user side auxiliary device 43 [i] is provided with the user authentication result restoring unit 4124 as in the user device 41. Except for this point, the system configuration of this embodiment is the same as that of the first embodiment.
  • the storage unit 432 [i] of the user side auxiliary device 43 [i] indicates the number of times C the user 44 is rejected in the user authentication using the user device 41 (user device (For every 41).
  • the number C of times the user 44 is rejected is referred to as a rejection number counter.
  • the rejection number counter C is initialized to zero (0) in advance.
  • the threshold value T is determined in advance, and the user side auxiliary device 43 [i] stores the threshold value T in the storage unit 432 [i].
  • the user side auxiliary device 43 [i] uses the auxiliary communication unit 4331 [i] to share the user authentication result a [i].
  • M for the user side auxiliary device 43 [j] the user device 41 uses the auxiliary communication unit 4141 to share the user authentication result share a [0] with the user side auxiliary device 43 [ i].
  • the user side auxiliary device 43 [i] uses the auxiliary communication unit 4331 [i] to share the user authentication result share a [0], ..., a [M].
  • the user authentication result share a [0], ..., a [M] is input, and the process of the user authentication result restoring unit is executed.
  • the user side auxiliary device 43 [i] obtains acc as a result of the user authentication.
  • the user side auxiliary device 43 [i] adds 1 to the rejection number counter C of the user device 41 held by the storage unit 432 [i].
  • the user side auxiliary device 43 [i] subsequently rejects all user authentication requests from the user device 41.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . In the present embodiment, when the number of times user authentication is permitted or exceeded exceeds a predetermined threshold value, the user side auxiliary device permits subsequent user authentication. Therefore, according to the present embodiment, analysis by an unauthorized person can be avoided, and the security of the authentication system according to the first embodiment can be further enhanced.
  • a counter for counting the number of times the user authentication is rejected is added to the user side auxiliary device 43 [1] of the second embodiment, and the user authentication is rejected when the counter exceeds a predetermined threshold value. To do.
  • the configuration of the authentication system of this embodiment is the same as that of the second embodiment.
  • the storage unit 432 [1] of the user side auxiliary device 43 [1] stores the number C (for each user device 41) that the user 44 is rejected in the user authentication using the user device 41.
  • the number C of times the user 44 is rejected is referred to as a rejection number counter.
  • the rejection number counter C is initialized to zero (0) in advance.
  • the threshold value T is determined in advance, and the user side auxiliary device 43 [1] stores the threshold value T in the storage unit 432 [1].
  • step 163 The operation of this embodiment is the same as that of the second embodiment except that the following steps are added between step 163 and step 164 of the flowchart (FIG. 16) showing the user authentication MPC unit.
  • the user side auxiliary device 43 [1] When acc represents “rejection”, the user side auxiliary device 43 [1] adds 1 to the rejection number counter C of the user device 41 held by the storage unit 432 [1]. When the value of the rejection number counter C is equal to or greater than the threshold value T stored in the storage unit 432 [1], the user side auxiliary device 43 [1] subsequently rejects the user authentication request from the user device 41.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . Further, in the present embodiment, when the number of times user authentication is permitted or exceeded exceeds a predetermined threshold value, the user side auxiliary device permits subsequent user authentication. Therefore, according to the present embodiment, analysis by an unauthorized person can be avoided, and the security of the authentication system according to the second embodiment can be further enhanced.
  • the configuration of the authentication system of this embodiment is different from the configuration of the first embodiment in the following points.
  • the user device 41 includes a verification information distributed share generation unit 4122.
  • both the user device 41 and the user side auxiliary device 43 participate in the “verification information distribution share generation” in the present embodiment.
  • the verification information distribution share generation of the present embodiment does not have the functions of the verification information deriving unit 41221 and the verification information distribution unit 41222 in the first embodiment.
  • the user device 41 includes an authentication information distributed share generation unit 4121.
  • “authentication information distributed share generation” in the present embodiment is an MPC in which the user side auxiliary device 43 participates, and the user device 41 does not participate in this MPC.
  • “authentication information distributed share generation” of this embodiment does not have the functions of the authentication information deriving unit 41211 and the authentication information distributing unit 41212 in the first embodiment.
  • the “verification information distribution share generation” of the present embodiment includes the following three operations.
  • User-specific information distributed share creation for input verification during advance preparation User-specific information distributed share creation verification information for MPC input verification Multi-party calculation
  • An apparatus for executing “preparation of user-specific information distributed share for pre-preparation input verification”, when executed, and input / output are as follows. This process is performed in preparation for user authentication. This process is executed by the user device 41. This process receives as input the user-specific information and the number M of user-side auxiliary devices 43, and outputs M + 1 “pre-preparation verification user-specific information distribution shares”. One of these is for the user device 41 and the other M is for the M user-side auxiliary devices 43.
  • the details of “Preparation of user-specific information distributed share for input verification during advance preparation” are as follows.
  • the user-specific information received as input is secretly distributed to obtain distributed shares e [1], ..., e [M] of M user-specific information.
  • the shared share e [i] of user-specific information is secretly distributed, and two “distributed shares of distributed share of user-specific information” c [i], d [i] Get. Delete distributed shares e [1], ..., e [M].
  • the “user-specific information distribution share for verification during preliminary preparation” of the user side auxiliary device 43 [i] is d [i].
  • An apparatus for executing “MPC input verification user-specific information distributed share creation”, when executed, and input / output are as follows. This process is executed during user authentication. This process is executed by the user side auxiliary device 43 [1],..., The user side auxiliary device 43 [M]. There are the following two inputs for this process. Data obtained from “user-specific information distributed share for verification during advance preparation” stored in user device 41 “user-specific information distributed share for verification during preliminary preparation” stored in user-side auxiliary device 43 [i] The output of this process is a distributed share of user specific information (hereinafter referred to as “user specific information distributed share for MPC input verification”).
  • An apparatus that executes “verification information distributed share creation multi-party calculation”, when executed, and input / output are as follows.
  • This process is executed during user authentication.
  • This process is an MPC in which the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M] participates.
  • the user side auxiliary device 43 [i] uses the distributed share of user-specific information owned by the MPC and obtains the distributed share of verification information as the output of the MPC.
  • An apparatus that executes “authentication information distributed share generation” in the present embodiment, when executed, and input / output are as follows.
  • This process is executed during user authentication.
  • This process is an MPC in which the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M] participates.
  • i 1,..., M
  • the user side auxiliary device 43 [i] uses the distributed share of user-specific information owned by the MPC and obtains the distributed share of authentication information as the output of the MPC.
  • Verification information distribution share creation multi-party calculation and “MPC for authentication information distribution share generation” may receive precalculation data as an input, as with other MPCs of the first embodiment.
  • the user side auxiliary device 43 that is a server machine is much safer than the user device 41, and log monitoring is also performed. At this time, even if an unauthorized person hijacks the user-side auxiliary device 43, it is difficult to think that the user-side auxiliary device 43 takes an action that deviates from the determined operation.
  • the user side auxiliary device user authentication MPC unit 4311 [i] receives as input the distributed share v [i] of the verification information, the distributed share s [i] of the authentication information, and the pre-calculated data (if any).
  • the MPC calculation proceeds while communicating with the user side auxiliary device user authentication MPC unit 4311 of the side auxiliary device 43, and the distributed share a [i] of the authentication result is output.
  • the user device 41 does not participate in this MPC.
  • the MPC is executed while communicating with the user device 41 that is less secure than the user side auxiliary device 43 that is a server machine.
  • the user side auxiliary device user authentication MPC unit 4311 [i] of the first embodiment includes a validity proof verification unit 94 that verifies the validity of the operation of the user device 41.
  • the user device 41 does not participate in the MPC performed by the user side auxiliary device user authentication MPC unit 4311 [i]. Therefore, in this embodiment, the execution of the validity proof verification unit 94 can be omitted when performing MPC.
  • the user authentication result restoration unit 4124 receives M + 1 distributed shares as input.
  • the user authentication result restoration unit 4124 receives only M distributed shares as input. This is because, as described above, since the user device 41 does not participate in the user authentication MPC, there are only M shares in the first place.
  • the user authentication advance preparation of the present embodiment is as follows.
  • the acquisition unit 4111 acquires user specific information from the user 44. Execute "Create user-specific information share for pre-preparation input verification" using user-specific information and the number M of user-side auxiliary devices 43, and M + 1 "user-specific information distributed share for pre-preparation input verification"
  • D (c [1], ..., c [M]), d [1], ..., d [M].
  • D (c [1],..., C [M]) is stored in the storage unit 413.
  • For i 1,..., M, d [i] is transmitted to the user side auxiliary device 43 [i] using the auxiliary communication unit 4141 of the communication unit 414. Delete user-specific information and distributed shares d [1], ..., d [M].
  • the user side auxiliary device 43 [i] executes the following.
  • the distributed share d [i] transmitted by the user device 41 is received using the auxiliary communication unit 4331 [i] of the communication unit 433 [i].
  • the distributed share d [i] is stored in the distributed share database 4321 [i].
  • the user device 41 executes the following.
  • the acquisition unit 4111 acquires user specific information from the user 44.
  • the user unique information is secretly shared using the user unique information and the number M of the user side auxiliary devices 43, and the distributed shares f [1],..., F [M] of the authentication information are obtained.
  • Read “user-specific information distributed share for pre-preparation input verification” D (c [1],..., C [M]) from the storage unit 413.
  • For i 1,..., M, f [i] and c [i] are transmitted to the user side auxiliary device 43 [i] using the auxiliary communication unit 4141 of the communication unit 414.
  • the user side auxiliary device 43 [i] executes the following.
  • f [i] and c [i] are received using the auxiliary communication unit 4331 [i] of the communication unit 433 [i].
  • c [i] and d [i] are input and “MPC input verification user-specific information distributed share creation” is executed, whereby the user-specific information distributed share (MPC input verification user-specific information distributed share) e [ i].
  • the algorithm of the verification information deriving unit and the precomputed data p [i] (if any) are read from the storage unit 432, and e [i], the precalculated data p [i] (if any) and the algorithm of the verification information deriving unit are read. Is used to execute “verification information distributed share creation multi-party calculation [i]” while communicating with other user-side auxiliary devices 43 to obtain a distribution share v [i] of verification information as an output.
  • the algorithm of the authentication information deriving unit and the precomputed data q [i] (if any) are read from the storage unit 432, and f [i], the precalculated data q [i] (if any) and the algorithm of the authentication information deriving unit are read.
  • Authentication information distributed share generation [i] is executed by multi-party calculation while mutually communicating with "authentication information distributed share generation [j]” of other user side auxiliary devices 43, and authentication information is output as an output. Get the distributed share s [i].
  • the user authentication algorithm and pre-calculated data b [i] (if any) are read from the storage unit 432, and v [i], s [i], b [i] (if any), and the user authentication algorithm are read by the user.
  • the user device 41 executes the following. A [1], ..., a [M] are received using the auxiliary communication unit 4141. a [1],..., a [M] are input to the user authentication result restoration unit 4124, and a user authentication result acc is obtained as an output thereof. It is determined whether the result acc of the user authentication is “accepted” or “rejected”. When the user authentication result acc is “accepted”, the user device 41 receives from the device authentication server device 42 with the help of the user side auxiliary device 43 [1],... Get device certification. When the result of the user authentication is “rejected”, the user device 41 notifies the user 44 via the notification unit 415 that the authentication has been rejected, and the process ends.
  • the fact is notified to the user 44 and the process is terminated.
  • the user 44 may be notified of the “denied” status. Accordingly, it is possible to prevent the user side auxiliary device 43 from knowing whether or not the result of the user authentication is “rejected”.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . Further, in this embodiment, authentication information derivation, verification information derivation, and user authentication algorithms are stored only in the user side auxiliary device. Therefore, according to the present embodiment, these algorithms can be concealed from user devices used by an unspecified number of users.
  • the user device 41 includes a verification information distributed share generation unit 4122.
  • both the user device 41 and the user side auxiliary device 43 participate in the “verification information distribution share generation” in the present embodiment.
  • the “verification information distribution share generation” of the present embodiment does not have the functions of the verification information deriving unit 41221 and the verification information distribution unit 41222 in the first embodiment.
  • the user device 41 includes an authentication information distributed share generation unit 4121.
  • “authentication information distributed share generation” in the present embodiment is an MPC in which the user side auxiliary device participates, and the user device 41 does not participate in this MPC.
  • “authentication information distributed share generation” of the present embodiment does not have the functions of the authentication information deriving unit 41211 and the authentication information distributing unit 41212 in the first embodiment.
  • the “verification information distribution share generation” of the present embodiment includes the following four processes.
  • MPC input verification User-specific information Distributed share creation verification information
  • Distributed share creation verification information for multi-party calculation storage Distributed share restoration
  • An apparatus for executing “MPC input verification user-specific information distributed share creation”, when executed, and input / output are as follows. This process is executed by the user device. This process is executed in preparation for user authentication. This process receives as input the user specific information and the number M of the user side auxiliary devices 43, and outputs the distributed share of the user specific information.
  • the details of “MPC input verification user-specific information distributed share creation” are as follows.
  • the user specific information E and the number M of the user side auxiliary devices 43 are received as inputs.
  • the user specific information E is secretly distributed to M pieces to obtain a distributed share of user specific information (user specific information distributed share for MPC input verification) e [1], ..., e [M].
  • e [1], ..., e [M] are output.
  • An apparatus that executes “verification information distributed share creation multi-party calculation”, when executed, and input / output are as follows.
  • This process is an MPC in which the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M] participates.
  • This process is executed in preparation for user authentication.
  • the user side auxiliary device 43 [i] uses the distributed share e [i] of the user-specific information held by itself in the MPC, and the verification information distributed share as the output of the MPC Get v [i].
  • the device that executes “create distributed share for storage”, when it is executed, and the input / output are as follows.
  • This process is executed in preparation for user authentication.
  • This process receives the distribution share of the verification information as an input and outputs the storage share.
  • the user device 41 creates its own distributed share for storage based on the data sent from the user side auxiliary device 43.
  • the verification information distributed share v [i] is received as an input, and v [i] is secretly distributed into two to obtain “distributed share of verification information distributed share” u [i] and w [i].
  • u [i] is sent to the user apparatus 41.
  • W (u [1],..., U [M]) be the storage share of the user device 41 for storage.
  • An apparatus that executes “verification information distributed share restoration”, when executed, and input / output are as follows.
  • This process is executed by user authentication.
  • This process receives a storage distributed share as an input and outputs a verification information distribution share.
  • the user device 41 sends information obtained from its own storage shared share to the user side auxiliary device 43.
  • the user side auxiliary device 43 performs user authentication from the received data and its own storage distributed share. calculate.
  • the user side auxiliary device 43 [i] restores the secret sharing using the data u [i] sent from the user and its own shared sharing share w [i]. To obtain a distributed share v [i] of verification information.
  • An apparatus that executes “authentication information distributed share generation” in the present embodiment, when executed, and input / output are as follows.
  • This process is executed during user authentication.
  • This process is an MPC in which the user side auxiliary device 43 [1], ..., the user side auxiliary device 43 [M] participates.
  • i 1,..., M
  • the user side auxiliary device 43 [i] uses the distributed share of user-specific information held by itself in the MPC, and obtains the distributed share of authentication information as the output of the MPC.
  • the MPCs of “verification information distribution share creation multi-party calculation” and “authentication information distribution share generation” may receive precalculation data as input, as with other MPCs of the first embodiment.
  • the user side auxiliary device 43 that is a server machine is much safer than the user device 41, and log monitoring is also performed. At this time, even if an unauthorized person hijacks the user-side auxiliary device 43, it is difficult to think that the user-side auxiliary device 43 takes an action that deviates from the determined operation.
  • the user side auxiliary device user authentication MPC unit 4311 [i] is the same as the user side auxiliary device user authentication MPC unit 4311 [i] of the sixth embodiment. That is, the user side auxiliary device user authentication MPC unit 4311 [i] receives as input the distributed share v [i] of verification information, the distributed share s [i] of authentication information, and pre-calculated data (if any). The calculation of MPC is advanced while communicating with the user side auxiliary device user authentication MPC unit 4311 of the user side auxiliary device 43, and the distributed share a [i] of the authentication result is output. However, unlike the first embodiment, the user device 41 does not participate in this MPC. For the same reason as in the sixth embodiment, in the case of this embodiment, the execution of the validity proof verification unit 94 can be omitted when performing MPC.
  • the user authentication result restoration unit 4124 receives only M distributed shares as input.
  • the execution of the validity proof verification unit 94 can be omitted by the MPC performed by the user side auxiliary device user authentication MPC unit 4311 [i].
  • the acquisition unit 4111 acquires user specific information E from the user 44. “Create user-specific information distributed share for MPC input verification” is executed using the user-specific information E, and distributed shares e [1],..., E [M] of user-specific information are obtained as outputs. E [1] is transmitted to the user side auxiliary device 43 [1] using the auxiliary communication unit 4141 of the communication unit 414,..., E [M] are transmitted to the user side auxiliary device 43 [M]. Delete user-specific information E and distributed shares e [1], ..., e [M].
  • the user side auxiliary device 43 [i] executes the following.
  • E [i] transmitted by the user device 41 is received using the auxiliary communication unit 4331 [i] of the communication unit 433 [i].
  • the algorithm of the verification information deriving unit and the precomputed data p [i] (if any) are read from the storage unit 432, and e [i], the precalculated data p [i] (if any) and the algorithm of the verification information deriving unit are read.
  • the “verification information distributed share creation multi-party calculation” is executed while communicating with other user side auxiliary devices 43 using the above. As the output of the multi-party calculation, a distributed share v [i] of verification information is obtained.
  • the user side auxiliary device 43 [i] deletes v [i] and u [i].
  • the user device 41 executes the following.
  • the storage share W (u [1],..., U [M]) is stored in the storage unit 413.
  • the user device 41 executes the following.
  • the acquisition unit 4111 acquires user specific information from the user 44. Using the user-specific information and the number M of user-side auxiliary devices 43, the user-specific information is secretly distributed to obtain authentication information distributed shares f [1],..., F [M].
  • Read storage share W (u [1],..., U [M]) from storage unit 413.
  • For i 1,..., M, f [i] and u [i] are transmitted to the user side auxiliary device 43 [i] using the auxiliary communication unit 4141 of the communication unit 414. Delete user-specific information and f [1], ..., f [M].
  • the user side auxiliary device 43 [i] executes the following. f [i] and u [i] are received using the auxiliary communication unit 4331 [i] of the communication unit 433 [i].
  • the share for storage w [i] is read from the distributed share database 4321 [i].
  • the distributed shares v [i] of the verification information are restored by inputting the shares for storage u [i] and w [i] and executing “verification shared information restoration”.
  • the algorithm of the authentication information deriving unit and the precomputed data q [i] (if any) are read from the storage unit 432, and f [i], the precalculated data q [i] (if any) and the algorithm of the authentication information deriving unit are read.
  • authentication information distributed share generation is executed while mutually communicating with “authentication information distributed share generation” of another user side auxiliary device 43, and an authentication information distributed share s [i] is obtained as an output.
  • the user authentication algorithm and pre-calculated data b [i] (if any) are read from the storage unit 432, and v [i], s [i], b [i] (if any), and the user authentication algorithm are read by the user.
  • Input to the side auxiliary device user authentication MPC unit 4311 [i] while the user side auxiliary device user authentication MPC unit 4311 [i] communicates with the user side auxiliary device user authentication MPC unit 4311 of the other user side auxiliary device 43 Execute and obtain the distributed share a [i] of the user authentication result as the execution result.
  • a [i] is sent to the user device 41 using the auxiliary communication unit 4331 [i]. Delete f [i], u [i], v [i], s [i], a [i].
  • the user device 41 executes the following. A [1], ..., a [M] are received using the auxiliary communication unit 4141. a [1],..., a [M] are input to the user authentication result restoration unit 4124, and a user authentication result acc is obtained as an output thereof. It is determined whether the result acc of the user authentication is “accepted” or “rejected”. When the user authentication result acc is “accepted”, the user device 41 receives from the device authentication server device 42 with the help of the user side auxiliary device 43 [1],... Get device certification. When the result of the user authentication is “rejected”, the user device 41 notifies the user 44 via the notification unit 415 that the authentication has been rejected, and the process ends.
  • the user 44 may be notified of the “rejection”. Accordingly, it is possible to prevent the user side auxiliary device 43 from knowing whether or not the result of the user authentication is “rejected”.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . Further, in this embodiment, only the user side auxiliary device uses algorithms for authentication information derivation, verification information derivation, and user authentication. Therefore, according to this embodiment, it is not necessary to disclose these algorithms to user devices used by an unspecified number of users, and these algorithms are trade secrets (for example, trade secrets of enterprises providing server-side auxiliary devices). Can be protected as.
  • the configuration of the authentication system of this embodiment is the same as that of the first embodiment except for the following points.
  • server machines called “user authentication information distributed share generation device” and “user verification information distributed share generation device”.
  • the description will be made on the assumption that these are separate server machines, but they may be the same server machine.
  • the user device 41 includes a verification information distributed share generation unit 4122.
  • the verification information distribution share generation unit 4122 includes a verification information deriving unit 41221 and a verification information distribution unit 41222.
  • the user device 41 includes an authentication information distributed share generation unit 4121.
  • the user device 41 does not have this unit, and this unit is provided in the user authentication information distributed share generation device.
  • the authentication information distributed share generation unit of the present embodiment includes an authentication information derivation unit 41211 and an authentication information distribution unit 41212.
  • the verification information distribution unit 41222 generates only M shares held by the user side auxiliary device 43 [1],..., The user side auxiliary device 43 [M].
  • the authentication information distribution unit 41212 generates only M shares held by the user side auxiliary device 43 [1],..., The user side auxiliary device 43 [M].
  • the user device 41 does not participate in the user authentication MPC. Therefore, the user device 41 does not include the user device user authentication MPC unit 4123.
  • the user side auxiliary device user authentication MPC unit 4311 [i] of the user side auxiliary device 43 [i] communicates with other user side auxiliary devices 43, but the user device 41 Do not communicate with.
  • the user device 41 acquires user-specific information from the user 44 as in step 511 of FIG. Next, the user device 41 sends the user specific information to the user verification information distributed share generation device. Thereafter, the user device 41 deletes the user specific information.
  • the user verification information distributed share generation device executes steps 512 to 516 in FIG. 5 instead of the user device 41. That is, the user verification information distributed share generation device executes the following.
  • the user verification information distributed share generation apparatus inputs the user specific information received from the user apparatus 41 to the verification information deriving unit 41221 to obtain verification information.
  • the verification information and the number M of the user side auxiliary devices 43 are input to the verification information distribution unit 41222, and the distribution share v [1],..., V [M] of the verification information is obtained as the output.
  • the user verification information distributed share generation device sends the verification information distributed share v [i] to the user side auxiliary device 43 [i]. Thereafter, the user verification information distributed share generation apparatus deletes the user specific information, the verification information, and the verification information distributed shares v [1],..., V [M].
  • the user side auxiliary device 43 [i] receives the distributed share v [i] of the verification information and stores it in the distributed share database 4321 [i].
  • the user device 41 acquires user-specific information from the user 44 as in Step 711 of FIG. Next, the user device 41 sends the user specific information to the user verification information distributed share generation device. Thereafter, the user device 41 deletes the user specific information. Then, the user authentication information distributed share generation device executes steps 712 to 715 in FIG. That is, the user authentication information distributed share generation device executes the following.
  • the user authentication information distributed share generation device inputs the user specific information received from the user device 41 to the authentication information deriving unit 41211 to obtain authentication information.
  • the authentication information and the number M of the user side auxiliary devices 43 are input to the authentication information distribution unit 41212, and the authentication information distribution shares s [1],..., S [M] are obtained as outputs thereof.
  • the user authentication information distributed share generation device sends s [i] to the user side auxiliary device 43 [i]. Thereafter, the user authentication information distributed share generating apparatus deletes the user specific information, the authentication information, and the authentication information distributed shares s [1],..., S [M]. Since the user device user authentication MPC unit 4123 does not exist, step 716 of FIG. 7 for reading the input of the user device user authentication MPC unit 4123 becomes unnecessary. Similarly, in step 73 of FIG.
  • the user device 41 does not participate in the user authentication MPC in step 73 of FIG.
  • the user side auxiliary device user authentication MPC unit 4311 [i] communicates with the other user side auxiliary device 43 but does not communicate with the user device 41.
  • the user apparatus 41 does not obtain a [0] as the output of the user authentication MPC. Since there is no a [0], the result of user authentication is restored from a [1],..., a [M] in step 752 of FIG.
  • a distributed share of user authentication information and a distributed share of verification information may be calculated by preparing a plurality of these apparatuses and executing MPC between the plurality of apparatuses.
  • the same effect as the above-described embodiment is brought about. That is, according to the authentication system of the present embodiment, in the authentication system that performs user authentication and device authentication, it is possible to use a communication front end with an existing device authentication server without requiring a secure area in the user device. . In this embodiment, a dedicated server machine for calculating user authentication information and verification information and their shares instead of the user device is provided. Therefore, according to the present embodiment, it is not necessary to disclose an algorithm for deriving authentication information and verification information to a user device used by an unspecified number of users, and these algorithms are trade secrets (for example, dedicated server machines and users). It can be protected as a trade secret of the company providing the side assist device.
  • these algorithms are trade secrets (for example, dedicated server machines and users). It can be protected as a trade secret of the company providing the side assist device.
  • the present disclosure can be applied to various uses. For example, authentication is used in many web services including payment systems.
  • the present disclosure can be widely used in an authentication system that requires such authentication.
  • the present disclosure can use the front end of an existing authentication method as it is, it can be used by simply changing the internal configuration of the user device in an authentication system that is already widespread as a de facto standard including the FIDO method. .
  • FIG. 1 11 User equipment 111 User information acquisition unit 1111 Acquisition Department 112 Secure area 1121 Calculator 11211 Verification information deriving section 11212 Authentication information deriving section 11213 User authentication part 11214 Key pair generator 11215 Device Authentication Department 1122 Memory unit 113 Communication Department 1131 User equipment front end 114 Notification section 12 Device authentication server device 121 Calculator 1211 User authentication method selector 1212 Device Authentication Verification Department 122 Storage unit 1221 Public key database 123 Communications Department 1231 Server equipment front end 13 users ( Figure 2) 21 User equipment 211 User information acquisition unit 2111 Acquisition Department 212 Calculator 2121 Verification information deriving section 2122 Authentication information deriving section 2123 Authentication information distribution part 2124 Verification information distribution unit 213 Communication Department 2131 communication unit 214 Notification section 22 Server-side user authentication MPC device 221 Calculator 2211 User authentication MPC 2212 Authentication result restoration unit (server-side user authentication MPC device 22 [1] only) 222 Memory 2221 Distributed user verification information database 223 Communications Department 2231 Prop

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用可能とする。認証システムはユーザ装置と、ユーザ装置のユーザを認証するユーザ認証およびユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、ユーザ装置との間で機器認証を行う機器認証サーバ装置とを備え、ユーザサイド補助装置は検証情報の分散シェアを用いてユーザ装置との間でユーザ認証のためのマルチパーティ計算を行うとともに、ユーザ装置が生成した秘密鍵の分散シェアを用いて、ユーザ装置との間で機器認証のためのマルチパーティ計算を行う。

Description

認証システム、認証方法およびプログラム
[関連出願についての記載]
 本発明は、日本国特許出願:特願2016-097422号(2016年 5月13日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。本発明は、認証システム、認証方法およびプログラムに関し、特にユーザおよびユーザ装置をそれぞれ認証するユーザ認証および機器認証を行う認証システム、認証方法およびプログラムに関する。
 ウェブサービスの一例として、金銭の授受を伴うウェブバンキングの利用が拡大している。かかるウェブサービスを利用する際には、サービスを提供するサーバがユーザを認証することで、ユーザはサービスを利用可能となる。かかる認証を行うサーバを、以下「認証サーバ」と呼ぶ。
 既存のウェブサービスでは、主に、パスワードや生体情報などのユーザ固有の認証情報をユーザが自身の端末からウェブサービスを提供する認証サーバに送ることでユーザを認証する。
 これらの既存の認証方法では、認証の際にユーザが認証サーバに送信してきた認証情報を、ユーザが事前に認証サーバに登録した情報(以下「検証情報」という)と比較することでユーザの当人性を確認する。
 例えば単純なパスワード認証の場合、ユーザは事前に認証サーバにパスワードPを検証情報として登録しておく。後日認証を行う際、ユーザは再び認証サーバにパスワードP'を送る。認証サーバはP=P'である場合にはユーザ当人であると判断して認証を受理し、それ以外の場合には認証を棄却する。
 一方、生体認証の場合、ユーザは顔、指紋、光彩などの生体情報の特徴量Cを検証情報として認証サーバに登録しておく。後日認証を行う際、ユーザは再び生体情報の特徴量C'を認証サーバに送る。認証サーバは特徴量CとC'の「距離」(例えばハミング距離)が定められた閾値以下である場合には認証を受理し、それ以外の場合には棄却する。
 関連技術として、非特許文献1には、FIDO(Fast Identify Online)方式が記載されている。また、非特許文献2には、暗号化通信方式が記載されている。さらに、非特許文献3には、ゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)法およびメッセージ認証子(MAC:Message Authentication Code)法以外のマルチパーティ計算(MPC:Multi-Party Computation)が記載されている。また、非特許文献4には、ZKIP法が記載されている。さらに、非特許文献5~7には、MAC法が記載されている。また、非特許文献8には、依頼計算(Secure Function Evaluation)が記載されている。さらに、非特許文献9には、ガーブルドサーキット(GC:Garbled Circuit)法が記載されている。また、非特許文献10には、Shamirの秘密分散法が記載されている。
FIDO UAF Architectural Overview. FIDO Alliance Proposed Standard 08 December 2014. 肥後春菜、一色寿幸、森健吾、尾花賢、「テンプレートサイズの小さい秘匿指紋認証方式」 2015年暗号と情報.セキュリティシンポジウム(SCIS2015), IEICE, 2015. Michael Ben-Or, Shafi Goldwasser, Avi Wigderson, "Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation," (Extended Abstract), STOC 1988 1-10. O. Goldreich, S. Micali and A. Wigderson, "How to play any mental game or a completeness theorem for protocols with honest majority," STOC 1987. J. B. Nielsen, P. S. Nordholt, C. Orlandi, and S. S. Burra, "A New Approach To Practical Active-Secure Two-Party Computation," In CRYPTO 2012, Springer (LNCS 7417), pages 681-700, 2012. I. Damgard and S. Zakarias, "Constant-Overhead Secure Computation of Boolean Circuits using Preprocessing," In TCC, pages 621-641, 2013. Ivan Damgard, Valerio Pastro, Nigel P. Smart, Sarah Zakarias, "Multiparty Computation from Somewhat Homomorphic Encryption," CRYPTO 2012: 643-662. A. Yao, "How to generate and exchange secrets," In Foundations of Computer Science, 1986, 27th Annual Symposium on, pages 162-167, IEEE, 1986. D. Beaver, S. Micali, and P. Rogaway, "The round complexity of secure protocols," In Proceedings of the twenty-second annual ACM symposium on Theory of computing, pages 503-513, ACM, 1990. Shamir, Adi (1979), "How to share a secret," Communications of the ACM 22 (11): 612-613.
 上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
 上述の既存の認証方法によると、認証サーバ側が情報漏えいを起こした際、ユーザ固有の検証情報が不正者の手に渡ってしまうという危険を伴う。パスワード認証など多くの認証システムでは検証情報から認証情報を再現することが容易である。したがって、不正者は再現された認証情報を用いることで、ユーザに成りすまして認証サーバの提供するウェブサービスを利用できてしまう。
 また、ユーザは複数のウェブサービスで同一の認証情報を利用している可能性が高い。このとき、1つのウェブサービスで検証情報が漏えいすると、不正者はユーザの利用しているすべてのウェブサービスで成りすましが可能となるという問題がある。
 特に認証情報として生体情報を利用していた場合、重大な問題が生じ得る。なぜなら、ユーザの生体情報は終生不変であるため、一度の情報漏えいで未来永劫にユーザが成りすましの危険にさらされるからである。
 また、ウェブサービスを提供する認証サーバの管理者は、ユーザの検証情報を含めた認証サーバ内の全データを閲覧することができる。したがって、認証サーバ管理者は、ユーザの検証情報を入手することで容易に成りすましができてしまう。
[単純な問題回避策]
 こうした問題を回避する方法は、いくつか提案されているものの、いずれも決定的な解決策にはなっていない。例えば、パスワード認証においてこの問題を回避する古典的な方法として、認証サーバ側にユーザのパスワードPそのものではなく、パスワードPのハッシュ値h=Hash(P)を保管するというものがある。これにより、不正者が認証サーバ側のデータを読むことで直接認証情報Pを手に入れることが不可能となる。
 しかし、かかる方法は上述の問題を完全に解決するものではない。なぜなら、認証サーバ側のデータを読むことに成功した場合、不正者はハッシュ値hを手に入れることができる。パスワードや生体情報といった認証情報はエントロピーが小さいため、h=Hash(P)を満たすパスワードPを全数探索することで特定できてしまう。特に不正者が認証サーバ管理者当人である場合、ハッシュ値hの入手は容易であるため、認証サーバ管理者には認証情報の秘密を保つことができない。
 上述の攻撃手法のように、ユーザ側の装置と通信することなく、サーバ側の装置のみを不正利用して認証情報を特定する攻撃手法を、以下「サーバサイド・オフライン攻撃」と呼ぶ。Pの探索の度にユーザ側の装置との通信が必要となるタイプの攻撃の場合、ユーザ側の装置で通信回数に上限を定めることで、不正者に全数攻撃をさせないように防御することができる。しかしながら、サーバサイド・オフライン攻撃の場合、ユーザ側の装置とは一切通信しない。この場合、不正者はユーザに気付かれることなくPの全数探索ができてしまうため、大きな問題となる。
 別の解決手法として、検証情報Pを直接認証サーバに保管する代わりに、Pを暗号化した暗号文Enc(P)を認証サーバに保管する方法が知られている。この方法によれば、認証サーバに保管された暗号文を不正者に奪われたとしても、Pの情報を秘匿することができる。
 しかし、この解決手法の場合、Enc(P)を復号するための秘密鍵をどこに保管すべきかという問題が生じる。秘密鍵を認証サーバ自身に保管すると、認証サーバに侵入した不正者は、Enc(P)と秘密鍵の両方を取得することができ、検証情報Pを容易に復元できてしまう。さらに、上述のように、不正者はPからユーザの認証情報を再現することができる。このことは、かかる解決手法がサーバサイド・オフライン攻撃に弱いことを意味する。
 以上に述べたように、サーバサイド・オフライン攻撃に対して安全性を保証することは容易ではない。特に、不正者が認証サーバの管理者自身である場合、不正者はサーバサイド・オフライン攻撃を簡単に実行でき、非常に大きな問題となる。
[既存の暗号技術]
 認証に関して既にいくつかの発明が提案されている。これらの既存発明について述べるための準備として、既存の暗号技術である秘密分散、マルチパーティ計算(MPC:Multi-Party Computation)、および、依頼計算について述べる。
[秘密分散]
 秘密分散とは、秘密のデータを複数の装置で「分散シェア」することで、データの秘匿性を高める技術である。
 秘密分散には、1台の「分散装置」と、複数台の「シェア保有装置」と、1台の「復元装置」が関与する。なお、分散装置と復元装置とが同一である場合、または、シェア保有装置のうちの1台と分散装置もしくは復元装置とが同一である場合もある。以下では、分散装置、シェア保有装置および復元装置は、別個の装置である場合について説明する。
 ここで、シェア保有装置の台数をMとする。
 分散装置は秘密のデータKを入力として受け取り、K(とM)を使用して「分散手段」を実行し、分散手段の出力として「シェア」s[1],...,s[M]を得る。i=1,...,Mに対し、分散装置はシェアs[i]をi台目のシェア保有装置に送信する。
 秘密のデータKが必要になった場合、復元装置はシェア保有装置の何台かからシェアを受け取り、これらのシェアを入力して「復元手段」を実行することで秘密のデータKを復元することができる。
 秘密分散には「秘密分散安全性条件」と呼ばれている条件が存在し、以下を満たす。
不正者に乗っ取られた装置の集合が秘密分散安全性条件を満たしている限り、不正者は秘密のデータKの情報を一切知ることができない。
不正者に乗っ取られた装置の集合が秘密分散安全性条件を満たしている限り、不正者に乗っ取られていない装置のシェアを復元装置に送ることで復元装置は復元手段により秘密のデータKを復元することができる。
[Shamir秘密分散]
 秘密分散の代表的な方法の1つとして、Shamir秘密分散がある(非特許文献10)。
Shamir秘密分散では、値t≦Mを1つ固定し、t+1個以上の元を持つ有限体Fを1つ固定し、さらにFの元a[0],...,a[M]を固定する。
 Shamir秘密分散法において、秘密Kは有限体Fの元である。Shamir秘密分散法の分散手段では、f(a[0])=Kを満たすt次多項式fをランダムに選び、s[1]=f(a[1]),...,s[M]=f(a[M])とする。
 復元装置が、これらのシェアのうちのt個のシェアs[i1],....,s[it]を得たとする。すると、復元装置は任意のj=1,...,tに対してs[ij]=f(a[ij])を満たす多項式fを一意に決定できるため、多項式fを用いて秘密K=f(a[0])を復元することができる。
 Shamir秘密分散法において、秘密分散安全性条件は「不正者に乗っ取られた装置の台数はt-1台以下である」という条件である。したがって、Shamir秘密分散法では以下が満たされる。
不正者に乗っ取られた装置の台数がt-1台以下であれば、不正者は秘密Kの情報を一切得ることができない。
不正者に乗っ取られた装置の台数がt-1台以下であれば、不正者に乗っ取られていない装置のシェアを復元装置に送ることで復元装置は復元手段により秘密Kを復元することができる。
[マルチパーティ計算(MPC:Multi-Parti Computation)]
 認証の安全性を高める方式は、他にもいくつか提案されている。これらを説明するために、これらの要素技術であるマルチパーティ計算(MPC:Multi-Party Computation)を説明する。
 MPCとは、複数台の装置(以下、MPC装置)が相互に通信することで、与えられたデータx[1],...,x[M]の秘匿性を保ちつつ、計算結果のデータf(x[1],...,x[M])を計算する手法である。ここでfは事前に定められた関数である。本明細書では以下、関数fのことをMPCの「計算関数」と呼ぶ。
 マルチパーティ計算として、様々な手法が知られている。これらの手法の多くは、装置が複数台結託して不正を行った場合に対しても安全である。すなわち、結託した装置の集合が事前に定められた条件(以下、「MPC安全性条件」という。例えば「結託した装置の台数が閾値kよりも小さい」という条件)を満たしている限り、次のことが保証される。すなわち、データx[1],...,x[N]の秘匿性が保証され、かつ、MPCの計算結果として出力されるデータyがf(x[1],...,x[N])と等しいことが保証される。
 一方、結託した装置の集合がMPC安全性条件を満たさない場合、結託した装置に対してデータx[1],...,x[N]の情報が漏れる可能性があり、さらに、MPCの計算結果として出力されるデータyがf(x[1],...,x[N])とは異なる値になる可能性がある。
 特に、MPCに参加するすべての装置が結託した場合、結託した装置にデータx[1],...,x[N]の情報が完全に漏れてしまう。
[秘密分散を利用したMPC]
 既存のMPCの多くでは、秘密分散をサブルーチンとして用いる。このようなMPCでは、上述したMPC装置以外に、秘密分散の「分散装置」と「復元装置」がある。MPC装置は、秘密分散のシェア保有装置に対応する。なお、分散装置と復元装置が同一である場合、分散装置とMPC装置が同一である場合、または、復元装置とMPC装置が同一である場合も考えられる。ただし、以下では、分散装置、MPC装置および復元装置が別個の装置である場合について説明する。それ以外の場合も、同様である。
 MPCは以下の手段で行われる。以下、MPC装置の台数をMとする。
 各MPC装置には、事前に関数fを計算する手段が(回路図やアルゴリズムの形で)入力されているものとする。
 まず、分散装置はi=1,...,Nに対して秘密のデータx[i]を入力として受け取り、秘密分散の「分散手段」を実行することで、秘密のデータx[i]の「シェア」s[i,1],...,s[i,M]を作成する。次に、分散装置は、j=1,...,Mに対し、シェアs[1,j],...,s[N,j]をj番目のMPC装置に送信する。
 次に、MPC装置は相互に通信しながら「MPC手段」を実行し、計算結果として「出力のシェア」を得る。j番目のMPC装置が得た出力のシェアをt[j]とする。1番目,...,M番目のMPC装置は、それぞれ出力のシェアt[1],....,t[M]を復元装置に送る。
 復元装置は、t[1],....,t[M]を用いて「復元手段」を実行することで「MPCの出力」yを得る。
 分散装置、MPC装置および復元装置のいずれも不正を行っていない場合、MPCの出力yはf(x[1],...,x[N])と一致する。
 以上で述べたMPCには、サブルーチンとして用いた秘密分散法が定める秘密分散安全性条件がある。MPCの安全性を保証するMPC安全性条件は、秘密分散安全性条件とは必ずしも一致しない。ただし、秘密分散安全性条件はMPC安全性条件の必要条件である。すなわち、MPC安全性条件が成り立てば秘密分散安全性条件が成り立つが、逆は必ずしも成り立たない。
 例えば、秘密分散安全性条件が「結託した装置の台数が閾値kよりも小さい」という条件とし、MPC安全性条件が「結託した装置の台数が閾値tよりも小さい」という条件とする。このとき、k≧tは成り立つものの、k=tは成り立つとは限らない。
[事前計算を利用したMPC]
 非特許文献5~7では、MPCの計算に必要となるデータの一部を事前計算しておくことでMPCの効率化を図る。
 本明細書では、事前計算について詳述しない。ただし、何らかの方法(例えば非特許文献5~7の方法)で事前計算データが用意されている場合も考慮して、「事前計算データがもしあれば、それを用いる」という趣旨の文言を実施形態の説明に加えた。
[ZKIP法、MAC法]
 秘密分散を利用した既存のMPCには、不正者に乗っ取られたMPC装置が不正を働くことで秘密の情報を盗んだり、計算結果を偽ったりできないような仕組みを持っているものが多い。
 このような仕組みとして、ゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)法(非特許文献4)とメッセージ認証子(MAC:Message Authentication Code)法(非特許文献5~7)が知られている。いずれの方法も、MPC装置が行った計算が不正なものではないことを示すための「正当性証明」を作成する「正当性証明作成部」と正当性証明を検証する「正当性検証部」を備えている。ただし、正当性証明の作り方やその検証方法については、ZKIP法とMAC法とで相違する。また、「正当性証明作成部」と「正当性検証部」を備えた装置構成自体は、ZKIP法とMAC法の間で共通する。
 ZKIP法およびMAC法のMPC装置の装置構成は、以下のとおりである。
入力部
通信部
計算部
 MPC実行部
 正当性証明部
 正当性証明検証部
出力部
 ZKIP法およびMAC法では秘密分散をサブルーチンとして用いており、MPC装置以外に秘密分散のための「分散装置」と「復元装置」が用いられる。
 ZKIP法およびMAC法では、各MPC装置に事前に関数fを計算する手段が回路図の形で入力されているものとする。関数fの回路図はANDゲートやORゲートのような「素子」から構成され、各素子には「素子番号」が振られているものとする。以下では、説明を簡単にするため、入力ゲートに近い素子ほど小さい素子番号が割り振られていると仮定して説明する。ただし、かかる仮定は必須のものではない。
 また、以下では、何らかの事前計算データが用意されていることを仮定して説明する。ただし、以下の記述の中から事前計算データに関する記述を無視することで、事前計算のないMPCに対しても同様の説明が当てはまる。
 ZKIP法およびMAC法は、いずれも以下のように動作する。
j=1,...,Mに対し、j番目のMPC装置は、分散装置から秘密x[1],...,x[N]のシェアs[1,j],...,s[N,j]を入力部を用いて受け取る。
関数fの回路図を構成する各素子Rに対し、素子番号が小さいものから順に以下を実行する。
 各MPC装置は素子R、素子Rの入力端子に対応するシェア、および、事前計算データ(もしあれば)をMPC実行部に入力する。そして、通信部を用いることで相互通信しながらMPC実行部の処理を実行する。
 各MPC装置は素子R、素子Rの入力端子に対応するシェア、事前計算データ(もしあれば)、および、MPC実行部の実行に使用した乱数(もしあれば)を入力として正当性証明部の処理を実行することで正当性証明を作成し、他のMPC装置に正当性証明を送信する。
 各MPC装置は素子Rと正当性証明を正当性証明検証部に入力することで、他のMPC装置の正当性証明の正当性を検証する。
関数fの回路図の出力端子に対応するシェアを、出力部を用いて出力する。
 出力されたシェアは、復元装置に送られる。復元装置は、送られてきたシェアからMPCの出力を復元する。
 上記の説明では、MPC装置の正当性証明部が生成した正当性証明を別のMPC装置が受け取った上で正当性証明検証部を使って正当性証明を検証することを仮定して説明した。ただし、既存のMPC方式の中には、非特許文献4に記載された方式のように、正当性証明部と正当性証明検証部の間で複数回の相互通信を伴うものもある。
 また、非特許文献6に記載された方式のように、最後に一括して正当性証明を検証することでMPCを効率化するものもある。
 しかし、いつどのような方法で正当性証明部と正当性証明検証部の処理を実行するのかという点を除くと、いずれの方式も上述のフローに当てはまる。
[ZKIP法とMAC法の問題点]
 ZKIP方式とMAC方式には、以下の問題点がある。
実行速度が遅く、サーバ同士、ユーザ・サーバ間双方の通信量が多い。
 認証システムにおいては、数多くのユーザがシステムを利用する。したがって、これらのユーザの処理をすべて実行するために、システムには高い性能が求められる。既存方式は、実行速度や通信量の点で難がある。したがって、認証システムに求められる性能を出すためには、システムで用いるサーバを高性能なものにしたり、回線を高速度のものにしたりすることが求められる。このとき、システム構築に必要となる費用が嵩むという問題が生じる。
 ユーザ端末として、スマートフォンのような計算能力および通信性能が低い端末が用いられることが想定される。したがって、ZKIP方式またはMAC方式のように高い実行速度と多くの通信量を必要とする方式は、利用できない可能性もある。
[依頼計算とガーブルドサーキット(GC:Garbled Circuit)法]
 依頼計算(Secure Function Evaluation)とは、2つの装置を利用した方式である。具体的には、1つ目の装置が関数f(の回路図)を保持し、2つ目の装置が秘密の情報x[1],....,x[N]を保持する状態からスタートして、1つ目の装置が関数値f(x[1],...,x[N])を得ることを目標に行われる(非特許文献8)。
 依頼計算では2つ目の装置は関数fの情報を完全には知ることはできず、1つ目の装置は秘密の情報x[1],....,x[N]の情報を一切知ることはできない。
 ガーブルドサーキット(GC:Garbled Circuit)法(非特許文献9)は、依頼計算の代表的な方法である。GC法では、関数fを保有する側の装置が「GC(Garbled Circuit)」というデータを作成し、秘密の情報x[1],....,x[N]を保有する側の装置がGCを計算する。以下では、前者の装置を「GC作成装置」と呼び、後者の装置を「GC実行装置」と呼ぶ。
 GC作成装置は、以下のユニットを備えている。
入力部
GC生成部
GC出力生成部
送信部
出力部
 一方、GC実行装置は、以下のユニットを備えている。
入力部
GC実行部
送信部
 GCは、以下のように動作する。
GC作成装置は、関数fを入力としてGC生成部の処理を実行することでGCと鍵データKを作成し、GCをGC実行装置に送信する。
GC実行装置はGCと秘密の情報x[1],...,x[N]を入力としてGC実行部の処理を実行することで、「GCの出力」Eを取得し、GCの出力EをGC作成装置に送信する。
GC作成装置はGCの出力Eと鍵データKとを入力としてGC出力生成部の処理を実行することで、出力yを得て、出力yを出力する。
 GC法においては、以下の性質が成立する。
(たとえGC実行装置が不正者に乗っ取られたとしても)GC作成装置が不正者に乗っ取られない限り、出力yはf(x[1],...,x[N])に一致する。
[GC法の問題点]
 後述するように、本願開示ではGC法に適切に改良を施した上でMPCとして用いる。しかし、GC法それ自身には以下の問題があるため、そのままでは本願開示には適用することができない。
GC法自身はあくまで依頼計算を実現するための方式であり、MPCを実現するための方式ではない。したがって、GC実行装置が秘密の情報x[1],...,x[N]を知っていることを前提にしている。しかし、本願開示ではGC法をMPCとして用いるため、秘密のデータx[1],...,x[N]の秘匿性も担保する必要がある。
GC法ではGC作成装置が不正者に乗っ取られないかぎり、出力yがf(x[1],...,x[N])に一致することが保証できる。しかしながら、GC作成装置が不正者に乗っ取られた場合に関しては何ら保証がない。
[既存の認証技術とその問題点]
 以上で本願開示および既存方式において利用する技術に関する説明を終了する。以下では、認証に関する既存方式を説明する。
[FIDO方式]
 前述した認証に関する問題を解決する一手法として、オンライン認証技術の標準化を行っている標準化団体FIDO(Fast Identify Online)は、UAF(Universal Authentiation Framework)標準と呼ばれる認証手法を提案している(非特許文献1)。以下では、この認証手法を「FIDO方式」と呼ぶ。
 FIDO方式の特徴は、ユーザ装置に「セキュア領域」と呼ばれる安全性の高い領域の存在を仮定した点にある。FIDO方式では、ユーザの本人性を認証する「ユーザ認証」とユーザの機器を認証する「機器認証」が別個に行われる。ユーザの本人認証に用いる検証情報およびユーザの機器認証に使う秘密鍵は、このセキュア領域に格納される。
 図1は、FIDO方式の構成を例示するブロック図である。
 認証を行うには、以下の事前準備を行う必要がある。
 ユーザ装置11はユーザ情報取得部111を有する。ユーザ情報取得部111は、顔情報、指紋情報、光彩情報などの1つまたは複数のユーザ認証情報を取得する取得部1111を提供する。ユーザ装置11は、認証におけるこれらの検証情報を登録するため、ユーザ13からユーザ固有情報(顔情報、指紋情報、光彩情報など)を、取得部1111を用いて取得する。また、ユーザ装置11は取得したユーザ固有情報を検証情報導出部11211に入力することで検証情報を得る。登録された検証情報は、セキュア領域112(非特許文献1の「FIDO AUTHENTICATOR」)の記憶部1122に保管される。
 ユーザ装置11は、セキュア領域112の鍵ペア生成部11214を用いて(事前に定められた何らかの公開鍵認証方式の)鍵生成を行う。また、ユーザ装置11は生成された公開鍵pkと秘密鍵skをセキュア領域112の記憶部1122に保管し、公開鍵pkを機器認証サーバ装置12に送信する。機器認証サーバ装置12は、受信した公開鍵pkを自身の公開鍵データベース1221に保存する。
 認証を行う際、まず機器認証サーバ装置12はユーザ認証方法選択部1211を用いていずれの認証方法を用いて認証するのかを指定する。
 ユーザ装置11は、指定された認証方法におけるユーザ固有情報を、取得部1111を用いてユーザ13から受け取る。ユーザ装置11は、受け取ったユーザ固有情報を認証情報導出部11212に入力することで認証情報を得る。
 ユーザ装置11は、入力された認証情報と記憶部1122に保管された検証情報とを用いて、セキュア領域112のユーザ認証部11213の処理を実行する。これにより、ユーザ装置11はユーザ13の当人性を確認する。
 ユーザ認証部11213がユーザ13の認証を拒否した場合、ユーザ装置11は通知部114を用いて認証が拒否された旨をユーザ13に伝えて動作を終了する。
 一方、ユーザ認証部11213がユーザ13の認証を受理した場合、ユーザ装置11はセキュア領域112の記憶部1122に保管された秘密鍵skと公開鍵pkを用いて機器認証部11215の処理を実行する。機器認証サーバ装置12は、これを受けて公開鍵データベース1221に保管されたユーザ装置11の公開鍵pkを用いて機器認証検証部1212の処理を実行する。これにより、機器認証サーバ装置12はユーザ装置11の認証を受理または拒否する。最後に、ユーザ装置11は認証が受理または拒否された旨を通知部114を用いてユーザ13に伝えて動作を終了する。
 なお、機器認証部11215と機器認証検証部1212が通信する際には、ユーザ装置フロントエンド1131とサーバ装置フロントエンド1231を経由する。これらのフロントエンドはFIDOにより通信方法の標準化がなされているフロントエンドであり、広く普及している。
[FIDO方式の問題点]
 FIDO方式には、ユーザ装置11にセキュア領域112が存在することを仮定している(ないし前提としている)という問題がある。
 例えばマルウェア感染などによりセキュア領域112が侵された場合、そこに保存されている検証情報や秘密鍵が漏えいしてしまう可能性がある。
 特に、不正者は漏えいした検証情報や秘密鍵を用いることでユーザ13に成りすましてウェブサービスを行うことができるため、深刻な問題が生じ得る。
 また、FIDO方式の認証を利用したユーザアプリを開発した企業にとっては、企業イメージの悪化、これに伴う収益の減少、さらにはユーザ13に対する損害賠償費用の負担といったリスクも生じ得る。
 さらに、認証として生体認証を用いた場合、検証情報は生体情報という最高度に機微な情報であることから、重大な危険が生じ得る。
 以上の理由により、FIDO方式のようにユーザ装置11にセキュア領域112の存在を仮定する方式は望ましくない。
[サーバサイドMPC方式]
 MPCを利用した認証方式の一形態について、説明する。以下では、この認証方式を「サーバサイドMPC方式」と呼ぶ。
 図2は、サーバサイドMPC方式の装置構成を例示するブロック図である。以下、サーバサイドユーザ認証MPC装置22の台数をMとする。
 サーバサイドMPC方式の基本的なアイデアは、通常の認証方式であればサーバ装置1台で認証の正当性を検証するところを、M台の「サーバサイドユーザ認証MPC装置22」を使ってMPCを行いながら認証の正当性を検証するところにある。
 サーバサイドユーザ認証MPC装置22は、全部でM台ある。そこで、以下j番目のサーバサイドユーザ認証MPC装置22に含まれるユニットの符号には、末尾に「[j]」を付すことで装置を区別する。例えば、「サーバサイドユーザ認証MPC装置22[j]の分散ユーザ検証情報データベース2221[j]」といった表現を用いる。
 図2は、1つの認証方法のみを提供する場合を図示した。なお、FIDO方式の場合と同様、複数の認証方法を提供して、それらの中から認証方法を選ぶように拡張することも可能である。
 FIDO方式では、ユーザ認証と機器認証が行われる。一方、サーバサイドMPC方式ではユーザ認証のみが行われる。なお、サーバサイドMPC方式を機器認証も行うように改良することも可能である。ただし、このように改良しても、後述するようにサーバサイドMPC方式の問題点は解決されない。以下では、サーバサイドMPC方式において機器認証を行う場合についての説明を省略する。
 サーバサイドMPC方式では、ユーザ装置21がMPCにおける分散装置の役割を果たす。ユーザ装置21は、ユーザ23の認証情報を分散する認証情報分散部2123と検証情報を分散する検証情報分散部2124を備えている。
 サーバサイドユーザ認証MPC装置22は、MPCにおけるMPC装置である。しかし、1台目のサーバサイドユーザ認証MPC装置22[1]のみは復元装置の役割も担っており、MPCの出力である認証結果を復元するための認証結果復元部2212[1]を有する。
 サーバサイドMPC方式におけるMPCの計算関数fは、ユーザ認証の認証関数である。すなわち、関数fはユーザ23の認証情報と検証情報を入力として受け取り、認証を受理または拒否したことを示す何らかのデータ(例えば受理なら1、拒否なら0)を出力する。サーバサイドMPC方式は、以下のように行われる。
 まず事前準備として、ユーザ装置21はユーザ情報取得部211の取得部2111を用いてユーザ23からユーザ固有情報を受け取る。次に、ユーザ装置21は検証情報導出部2121を用いてユーザ固有情報から検証情報を導出し、導出した検証情報を検証情報分散部2124に入力して検証情報のシェアv[1],...,v[M]を得る。次に、ユーザ装置21は独自仕様通信部2131を用いることでシェアv[1]をサーバサイドユーザ認証MPC装置22[1]に送り、...、シェアv[M]をサーバサイドユーザ認証MPC装置22[M]に送る。
 サーバサイドユーザ認証MPC装置22[1]、...、サーバサイドユーザ認証MPC装置22[M]は、それぞれ独自仕様通信部2231[1],...,独自仕様通信部2231[M]を用いることでシェアv[1],...,v[M]を受信し、それぞれ分散ユーザ検証情報データベース2221[1],...,分散ユーザ検証情報データベース2221[M]に保管する。
 認証を受けるには、ユーザ装置21はユーザ情報取得部211の取得部2111を用いてユーザ23からユーザ固有情報を受け取る。次に、ユーザ装置21は認証情報導出部2122を用いてユーザ固有情報から認証情報を導出し、導出した認証情報を認証情報分散部2123に入力することで認証情報のシェアs[1],...,s[M]を作る。次に、ユーザ装置21は独自仕様通信部2131を用いることで、シェアs[1]をサーバサイドユーザ認証MPC装置22[1]に送り、...、シェアs[M]をサーバサイドユーザ認証MPC装置22[M]に送る。
 サーバサイドユーザ認証MPC装置22[1]、...、サーバサイドユーザ認証MPC装置22[M]は、それぞれ独自仕様通信部2231[1],...,独自仕様通信部2231[M]を用いることでシェアs[1],...,s[M]を受信する。次に、サーバサイドユーザ認証MPC装置22[1]、...、サーバサイドユーザ認証MPC装置22[M]は、それぞれ分散ユーザ検証情報データベース2221[1],...,分散ユーザ検証情報データベース2221[M]からユーザ23の検証情報のシェアv[1],...,v[M]を読み出し、そしてシェアv[1],...,v[M]およびシェアs[1],...,s[M]を使用して相互に通信しながらユーザ認証MPC部2211[1],...,ユーザ認証MPC部2211[M]の処理を実行する。これにより、サーバサイドユーザ認証MPC装置22[1]、...、サーバサイドユーザ認証MPC装置22[M]は、それぞれMPCの出力のシェアt[1],...,t[M]を得る。
 サーバサイドユーザ認証MPC装置22[2]、...、サーバサイドユーザ認証MPC装置22[M]は、それぞれ独自仕様通信部2231[2],...,独自仕様通信部2231[M]を用いることで、それぞれシェアt[2],...,t[M]をサーバサイドユーザ認証MPC装置22[1]に送信する。サーバサイドユーザ認証MPC装置22[1]は、独自仕様通信部2231[1]を用いてこれらのシェアを受け取り、シェアt[1],...,t[M]を入力して認証結果復元部2212[1]の処理を実行することで、認証結果が受理なのか拒否なのかを把握する。
[サーバサイドMPC方式の問題点]
 通常のユーザ認証における通信プロトコルには、様々な標準がある。しかしながら、いずれの通信プロトコルもユーザ装置とサーバ装置の1対1の通信を前提としたものである。実際、FIDOが提案している通信プロトコルもユーザ装置とサーバ装置の1対1の通信を前提としている。具体的には、図1におけるユーザ装置フロントエンド1131とサーバ装置フロントエンド1231がFIDOの提案する通信プロトコル標準に対応する箇所である。
 しかるに、サーバサイドMPC方式では、1台のユーザ装置21とM台のサーバサイドユーザ認証MPC装置22による1対多の通信を利用する。しかし、1対1の通信を前提とした通信プロトコルを利用したウェブサービスやインフラストラクチャーが普及している現状において、サーバサイドMPC方式のように1対多の通信を利用する方式を利用することは現実的ではない。
 また前述のように、MPCは不正なMPC装置の集合がMPC安全性条件を満たしている場合に限って安全性を保つことができる。サーバサイドMPC方式では、ユーザ装置21はユーザ23の検証情報の特徴量のシェアをサーバ側に送出してしまう。したがって、MPC安全性条件を超える台数のMPC装置が不正に結託した場合、サーバ側にユーザ23の検証情報の特徴量という最高度に機微な情報を知られてしまう危険が生じる。
[サーバサイドMPC方式の変形例とその問題点]
 上述したサーバサイドMPC方式では、ユーザの認証情報のみを用いて認証を行うことを想定している。ここで、サーバサイドMPC方式の変形例として、FIDO方式のようにユーザの認証情報とユーザ秘密鍵情報の両方を用いて認証するものが考えられる。
 しかしながら、かかる変形例によると、ユーザ秘密鍵をどのように保管するべきかという問題を抱える。
 ここでFIDO方式と同様に、ユーザ装置21にセキュア領域の存在を仮定した上で、セキュア領域にユーザ秘密鍵を保存した場合、FIDO方式と同様にマルウェアなどによりセキュア領域が侵される危険性が生じる。
 また、M台のサーバサイドユーザ認証MPC装置22にユーザ秘密鍵を分散した場合、サーバサイドMPC装置側がMPC条件を超えて結託したときにユーザ秘密鍵の秘匿性を担保できないという問題が生じる。
[暗号化通信方式]
 最後に暗号化通信を利用した認証方式の一形態について説明する。以下では、この方式を「暗号化通信方式」と呼ぶ。暗号化通信方式の例として、例えば非特許文献2に記載されたものがある。ここでは、非特許文献2のものよりも簡略化したものを紹介する。
 暗号化通信方式の基本的なアイデアは、ユーザの認証情報および検証情報をサーバ装置の公開鍵で暗号化した上でサーバ装置に送信するというものである。これにより、サーバ装置には、認証情報や検証情報が暗号化された形でしか保管されない。したがって、サーバ装置のデータが不正者に見られたとしても安全性を保つことができる。
 しかし、サーバ装置の秘密鍵もサーバ装置上に置いた場合、サーバ装置のデータを不正者に見られたときに、認証情報や検証情報の暗号文のみならず秘密鍵も不正者にとられてしまう。このとき、不正者は暗号文を復号することで、認証情報や検証情報という機微な情報を復元できてしまうという問題がある。
 そこで暗号化通信方式では、サーバ装置とは別に「サーバ補助装置」という装置を設け、サーバ装置の秘密鍵をサーバ装置ではなくサーバ補助装置に保管する。
 FIDO方式では、ユーザ認証と機器認証が行われる。一方、暗号化通信方式では、ユーザ認証しか行わない。なお、暗号化通信方式を機器認証も行うように改良することができる。しかしながら、そのように改良しても、後述するような暗号化通信方式の問題点は解決されない。そこで、以下では、暗号化通信方式において機器認証を行う場合に関する説明を省略する。
 図3は、暗号化通信方式の構成を例示するブロック図である。
 まず事前準備として、ユーザ認証サーバ補助装置33は、計算部331のサーバ補助装置鍵生成部3311の処理を実行することで(何らかの公開鍵暗号方式における)サーバ補助装置秘密鍵skとサーバ補助装置公開鍵pkを生成し、サーバ補助装置秘密鍵skを記憶部332に保管し、サーバ補助装置公開鍵pkを、通信部333を経由してユーザ装置31に送る。
 ユーザ装置31は、サーバ補助装置公開鍵pkを受信して記憶部313に保管する。
 次にユーザ装置31は、ユーザ情報取得部311の取得部3111を用いてユーザ34からユーザ固有情報を受け取る。ユーザ装置31は、ユーザ固有情報を検証情報導出部3122に入力することで検証情報を取得する。ユーザ装置31は、検証情報とサーバ補助装置公開鍵pkを検証情報暗号化部3124に入力することで検証情報の暗号文を作成する。ユーザ装置31は、ユーザ装置独自仕様フロントエンド3141を経由して暗号文をユーザ認証サーバ装置32に送る。ユーザ認証サーバ装置32は、サーバ装置独自仕様フロントエンド3231を経由して暗号文を受け取り、暗号文を暗号化ユーザ検証情報データベース3221に保管する。
 認証の際、ユーザ装置31はユーザ情報取得部311の取得部3111を用いてユーザ34からユーザ固有情報を受け取る。ユーザ装置31は、ユーザ固有情報を認証情報導出部3121に入力することで認証情報を得る。ユーザ装置31は、認証情報とサーバ補助装置公開鍵を認証情報暗号化部3123に入力することで認証情報の暗号文を作成する。ユーザ装置31は、ユーザ装置独自仕様フロントエンド3141を経由して暗号文をユーザ認証サーバ装置32に送る。ユーザ認証サーバ装置32は、暗号化ユーザ検証情報データベース3221からユーザの暗号化された検証情報を探し出す。
 次に、ユーザ認証サーバ装置32は暗号化された検証情報と暗号化された認証情報をサーバ装置暗号化認証検証部3211に入力する。また、ユーザ認証サーバ補助装置33は、サーバ補助装置秘密鍵skをサーバ補助装置暗号化認証検証部3312に入力する。ユーザ認証サーバ装置32とユーザ認証サーバ補助装置33は、補助通信部3232と補助通信部3331を利用して相互に通信しながら、それぞれサーバ装置暗号化認証検証部3211とサーバ補助装置暗号化認証検証部3312の処理を実行する。最終的に認証結果(受理するか拒否するか)を決定し、ユーザ認証サーバ装置32はサーバ装置独自仕様フロントエンド3231を用いて認証結果をユーザ装置31に通知する。ユーザ装置31は、ユーザ装置独自仕様フロントエンド3141を使って認証結果を受信する。また、ユーザ装置31は通知部315を使用して認証結果をユーザ34に通知する。
 サーバ装置暗号化認証検証部3211とサーバ補助装置暗号化認証検証部3312をどのように実現するかには、様々な方法がある。一例として、MPCを実行することで認証の受理または拒否を決定する方法が考えられる。
[暗号化通信方式の問題点]
 ユーザ認証サーバ装置32とユーザ認証サーバ補助装置33の両方が不正者に乗っ取られた場合、ユーザの認証情報という最高度に機微な情報が不正者の手に渡ってしまうという問題がある。
 また、ユーザ認証サーバ装置32のみが不正者に乗っ取られた場合であっても、以下の方法によりサーバサイド・オフライン攻撃が可能である。
ユーザ認証サーバ装置32は、通常の手段でユーザ装置31の検証情報の暗号文Cを受け取る。
ユーザ認証サーバ装置32は、任意の情報Mを暗号化して暗号文C'を作成する。
ユーザ認証サーバ装置32は暗号文C、C'をサーバ装置暗号化認証検証部3211に入力し、ユーザ認証サーバ補助装置33と通信しながらサーバ装置暗号化認証検証部3211の処理を実行する。
サーバ装置暗号化認証検証部3211の出力が受理であるか拒否であるかに応じて、ユーザ認証サーバ装置32は任意の情報Mがユーザの認証情報と一致するか否かを判定することができる。
 上述の攻撃は、ユーザ装置31と通信することなく実行可能である。したがって、ユーザ装置31(または、ユーザ装置31を保有するユーザ)に気付かれることなく、不正者は何度でも攻撃を実行することができる。ユーザの認証情報がパスワードや生体情報である場合、認証情報のエントロピーは小さい。したがって、上述の攻撃をMを変えつつ何度も実行することで、不正者はユーザの認証情報を特定することができる。
 暗号化通信方式のもう1つの問題点は、ユーザ装置31とユーザ認証サーバ装置32の間の認証情報のやり取りが(暗号化された状態で)行われる点である。
 FIDOが標準化しているフロントエンドでは、ユーザ装置31とユーザ認証サーバ装置32の間で認証情報をやり取りしていることを想定していない。したがって、暗号化通信方式では、FIDOのフロントエンドというすでに普及している標準を使うことができないという問題がある。
[暗号化通信方式の変形例とその問題点]
 暗号化通信方式の変形例として、以下のものが考えられる。ただし、いずれの変形例も、上述した問題と同様の問題を抱える。
ユーザの検証情報や認証情報の暗号化において、公開鍵暗号ではなく共通鍵暗号を使う。
上述の方式では、ユーザサイド補助装置が1台であることを想定している。そこで、複数台のユーザサイド補助装置を用意し、ユーザサイド補助装置秘密鍵を分散シェアする。
 次に、本発明が解決しようとする課題について、さらに詳細に説明する。これまで説明したように、既存の認証方式は、いずれも以下に挙げる1つ以上の問題をはらんでいる。
ユーザ装置にセキュア領域が存在することを仮定する必要がある。したがって、セキュア領域がマルウェアに侵されるなどした場合、ユーザの認証情報という最高度に機微な情報が不正者に漏えいする。
サーバ側の装置(サーバ装置やサーバ補助装置)がMPC条件以上に結託すると、ユーザの認証情報という最高度に機微な情報が不正者に漏えいする。
サーバサイド・オフライン攻撃に対して、安全でない。したがって、不正者がサーバの乗っ取りに成功すると、サーバサイド・オフライン攻撃によりユーザの認証情報という最高度に機微な情報が不正者に漏えいする。特にサーバの管理者自身が不正者である場合、一切安全を保てない。
FIDOが標準化しているフロントエンドをはじめとする既存の通信標準を満たしていない。したがって、既存の通信標準を利用している大多数の装置との通信が不可能である。
 なお、既存の認証方式の中には、MPCを使うものも存在する。しかしながら、既存のMPCであるZKIP法およびMAC法には、以下の問題点がある。
ZKIPやMACを生成、送受信および検証するのに計算コストと通信コストがかかるため、計算効率と通信効率が悪化する。特にユーザ装置がスマートフォンのような非力なデバイスである場合、計算効率と通信効率の悪さがネックとなる。したがって、既存の認証方式は実用性に乏しい。
 さらに、GCには以下の問題がある。
GC法自身はあくまで依頼計算を実現するための方式であり、MPCを実現するための方式ではない。したがって、GC法によると、入力データの秘密を担保できない。
GC作成装置が不正者に乗っ取られた場合に関して、何ら保証がない。
 そこで、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用可能とすることが課題となる。本発明の目的は、かかる課題解決に寄与する認証システム、認証方法およびプログラムを提供することにある。その他の課題および解決手段は、以下の説明において明らかとなる。
 本発明の第1の態様に係る認証システムは、ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えている。前記ユーザサイド補助装置は、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うとともに、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う。
 本発明の第2の態様に係る認証方法は、ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、前記ユーザ装置が、秘密鍵の分散シェアを生成するステップと、検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含む。
 本発明の第3の態様に係る方法は、ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、前記ユーザサイド補助装置が、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含む。
 本発明の第4の態様に係るプログラムは、ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、秘密鍵の分散シェアを生成する処理と、検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザ装置に設けられたコンピュータに実行させる。
 本発明の第5の態様に係るプログラムは、ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザサイド補助装置に設けられたコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。
 本発明に係る認証システム、認証方法およびプログラムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。
FIDO方式の構成を例示するブロック図である。 サーバサイドMPC方式の構成を例示するブロック図である。 暗号化通信方式の構成を例示するブロック図である。 第1の実施形態に係る認証システムの構成を例示するブロック図である。 ユーザ認証事前準備(検証情報の登録)の動作を例示するフロー図である。 機器認証事前準備(公開鍵・秘密鍵ペアの生成と登録)の動作を例示するフロー図である。 ユーザ認証の動作を例示するフロー図である。 ユーザ装置ユーザ認証MPC部の構成を例示するブロック図である。 ユーザサイド補助装置ユーザ認証MPC部の構成を例示するブロック図である。 ユーザ認証MPCの動作を例示するフロー図である。 ユーザ装置機器認証MPC部の構成を例示するブロック図である。 ユーザサイド補助装置機器認証MPC部の構成を例示するブロック図である。 機器認証の動作を例示するフロー図である。 ユーザサイド補助装置ユーザ認証MPC部の構成を例示するブロック図である。 ユーザ装置ユーザ認証MPC部の構成を例示するブロック図である。 第2の実施形態におけるユーザ認証MPCの動作を例示するフロー図である。 機器認証シミュレートMPC部の構成を例示するブロック図である。 機器認証シミュレートMPCの動作を例示するフロー図である。 一実施形態に係る認証システムの構成を例示する図である。
<一実施形態>
 はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
 図19は、一実施形態に係る認証システムの構成を例示する図である。図19を参照すると、認証システムは、ユーザ装置41と、ユーザ装置41のユーザを認証するユーザ認証およびユーザ装置41を認証する機器認証を補助するユーザサイド補助装置43[1]-43[M](Mは自然数)と、ユーザ装置41との間で機器認証を行う機器認証サーバ装置42とを備えている。ユーザサイド補助装置43[1]-43[M]は、検証情報の分散シェアを用いてユーザ装置41との間でユーザ認証のためのマルチパーティ計算を行うとともに、ユーザ装置41が生成した秘密鍵の分散シェアを用いて、ユーザ装置41との間で機器認証のためのマルチパーティ計算を行う。
 一実施形態に係る認証システムでは、ユーザサイド補助装置とユーザ装置との間で検証情報の分散シェアを用いてマルチパーティ計算を行う。したがって、ユーザ装置は検証情報をそのまま保持する必要がなく、FIDO方式のようにユーザ装置内にセキュアな領域の存在を仮定する必要がなくなる。また、一実施形態では、ユーザ装置と機器認証サーバ装置の間でやり取りされるデータは既存のFIDO方式と同様である。したがって、一実施形態によれば、サーバサイドMPC方式および暗号化通信方式のように独自仕様の通信フロントエンドを設けることなく、既存の機器認証サーバとの通信フロントエンドを利用することができる。さらに、一実施形態によると、FIDO方式と同様にユーザ認証および機器認証の双方の認証が可能となる。すなわち、一実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。
<第1ないし第8の実施形態の概要>
 はじめに、以下で詳述する第1ないし第8の実施形態の構成および効果について概説する。
 実施形態では、2種類のマシンを利用することを想定する。1つ目のマシンはユーザが自身のユーザ装置として用いられるマシンであり、具体的にはスマートフォン、タブレット、PC(Personal Computer)などである。2つ目のマシンは、サーバマシンである。サーバマシンはユーザ装置として使われるマシンよりも高性能であり、複数のユーザ装置と通信することが可能である。
 実施形態では、サーバとして用いられるマシンの方がユーザ装置として用いられるマシンよりも、以下の理由によりはるかにセキュリティの強度が高いことを利用する。安価であることが求められるユーザ装置は、セキュリティ保護機能が軽視される傾向にある上、ユーザ装置にはユーザが様々なアプリを自由にインストールできる。したがって、ユーザが不正なアプリをインストールしてしまうことなどにより、ユーザ装置は不正者に乗っ取られる可能性が高い。一方、サーバマシンであるユーザサイド補助装置は、ユーザ装置よりも高度なセキュリティ保護機能を備えることができ、しかもアプリのインストールなどは行われないため、ユーザ装置よりもはるかに安全性が高い。
 そこで、以下の実施形態では、ユーザ装置の認証を補助するサーバマシンである「ユーザサイド補助装置」を準備する。なお、ここで「ユーザサイド」とは、サーバサイド(例えば図1の機器認証サーバ装置12の側)と対比する意味でのユーザサイド(例えば図1のユーザ装置11の側)を意味するに過ぎない。すなわち、「ユーザサイド補助装置」はユーザ装置のユーザが保持する装置を意味するものではなく、むしろ複数の(多数の)ユーザ装置によって「ユーザサイド補助装置」が共有される使用形態が想定される。
 実施形態では、FIDO方式と同様、ユーザ認証と機器認証を分離する。ユーザ装置は、ユーザサイド補助装置の助けを借りながらユーザ認証を行う。その後、ユーザ装置はユーザサイド補助装置の助けを借りながら外部の「機器認証サーバ装置」から機器認証を受ける。
 具体的には、実施形態では(何らかの公開鍵認証方式における)ユーザ装置の秘密鍵と公開鍵を作成し、秘密鍵をユーザ装置とユーザサイド補助装置で分散シェアする。そしてユーザ装置とユーザサイド補助装置とがユーザの検証情報と認証情報の分散シェアを用いてMPCを実行することでユーザ認証を行う。その後、ユーザ秘密鍵の分散シェアを用いてMPCを実行することで、機器認証サーバ装置との公開鍵認証で必要な情報を作成する。
 なお、ユーザサイド補助装置は多数のユーザの検証情報の分散シェアを保管し、多数のユーザ装置とともにユーザ認証のMPCを行うサーバであることを想定している。
 実施形態においては、機器認証の公開鍵認証方式のMPCを効率的に実行するために、次のアイデアを用いる。既知の多くの公開鍵認証方式における認証は、秘密鍵を利用する「秘密鍵利用演算」と「それ以外」の部分に分けられる。以下、「それ以外」の部分を「秘密鍵不用演算」と呼ぶ。例えば、乱数cに対するHash-then-RSA署名H(c)d mod Nを計算するタイプの認証では、h=H(c)の計算が「秘密鍵不用演算」に相当する。一方、hd mod Nの計算が「秘密鍵利用演算」に相当する。
 秘密鍵利用演算に関しては、効率的なMPCが知られている。
 例えば、xが秘密鍵であり、y=gx mod pを計算したいものとする。また、gの位数をqとする。
 M台のユーザサイド補助装置があり、i番目のユーザサイド補助装置がxの分散シェアx[i]∈{0,...,q-1}を保持し、x=x[1]+...+x[M] mod qが成り立つ場合、yは以下のMPCによって計算することができる。
i=1,...,Mに対し、i番目のユーザサイド補助装置はy[i]=hx[i] mod qを計算し、y[i]を他のユーザサイド補助装置に送信する。
各ユーザサイド補助装置は、積y=y[1]…y[M] mod qを計算する。
 このように、秘密鍵利用演算に関しては効率的なMPCが知られている。したがって、ユーザ装置はユーザサイド補助装置とともに、こうした効率的なMPCを実行することで効率的に秘密鍵利用演算を実行する。一方、秘密鍵不用演算では秘密鍵を使用しない。そこで、ユーザ装置はユーザサイド補助装置の助けを借りることなく、ユーザ装置単独で秘密鍵不用演算を実行する。
[第1の実施形態の概要]
 第1の実施形態では、さらに以下のアイデアに基づいて問題点を解決する。
 前述のとおり、実施形態のユーザサイド補助装置はサーバマシンであることが想定されている。すなわち、ユーザサイド補助装置は通常のマシンよりもはるかにセキュアである。しかも、サーバマシンでは、通常ログ監視などが行われている。したがって、サーバマシンが不正者に乗っ取られたとしても、不正者が行った不正をログ監視により特定することができる。
 実施形態においては、不正者がユーザサイド補助装置を乗っ取ることに成功したとしても、定められたMPCのプロトコルを逸脱した場合、ログ監視により不正者の存在が発覚してしまう。かかる場合には、不正者はMPCのプロトコルを逸脱しないものと考えられる。
 既存のMPCであるZKIP法およびMAC法では、MPC装置がMPCのプロトコルを逸脱することを防ぐため、ZKIPやMACを生成し、これらを他のMPC装置に送信し、受信したMPC装置がZKIPやMACの正当性を検証する。これらの一連の手続きが、MPCの計算効率および通信効率を悪化させている。
 しかし、実施形態の装置構成においては、上述のようにユーザサイド補助装置はMPCのプロトコルを逸脱しない。したがって、ユーザサイド補助装置はZKIPやMACを生成する必要がなくなる。一方、PCやスマートフォンであることが想定されているユーザ装置にはログ監視機能がない。すなわち、ユーザ装置が不正者に乗っ取られた場合、不正者に操られたユーザ装置はMPCのプロトコルを逸脱するおそれがある。
 以上の理由により、実施形態のユーザ認証においては、ユーザ装置のみがZKIPまたはMACを生成し、ユーザサイド補助装置はZKIPおよびMACを生成しないものとする。これにより、本実施形態によると、既存発明と比較してZKIPまたはMACの生成、送受信および検証に要するコストを削減することができる。
 また、既存発明ではZKIPまたはMACの生成、送受信および検証がMPCの計算効率および通信効率において支配的である。したがって、実施形態によると、既存発明と比較してはるかに効率の良い処理が実現可能となる。
[第2の実施形態の概要]
 第2の実施形態では、MPCとしてGC法を利用する。GC法には、前述した2つの問題点がある。第2の実施形態では、これらの問題点を以下のように解決する。
 第1の問題として、GC法にはGCを作成する装置が不正を行った場合に安全性が損なわれる。前述のように実施形態において、ユーザサイド補助装置はMPCのプロトコルを逸脱しないと考えられる。そこで、第2の実施形態ではユーザサイド補助装置がGCを作成する装置として振る舞うことにより、かかる問題を回避することができる。
 第2の問題として、GC法は依頼計算でありMPCではないため、入力データの秘密を守ることができない。この問題を解決するため、実施形態では入力データ(実施形態では認証情報や検証情報が入力データとして取り扱われる)をユーザ装置とユーザサイド補助装置の間で分散シェアする。以下、ユーザ装置が保持する認証情報および検証情報の分散シェアをそれぞれs[0],v[0]とする。一方、ユーザサイド補助装置が保持する認証情報および検証情報の分散シェアをそれぞれs[1],v[1]とする。
 また、f(a,b)を以下の関数とする。すなわち、関数f(a,b)はa,bをそれぞれ認証情報および検証情報の分散シェアとみなし、分散シェアaと分散シェアs[1]とを用いて認証情報xを復元し、分散シェアbと分散シェアv[1]を用いて検証情報yを復元し、認証情報xと検証情報yを用いてユーザ認証を行い、認証結果を出力する。
 GCを作成する装置であるユーザサイド補助装置は、分散シェアs[1],v[1]を用いることでf(a,b)の回路図を作成し、その回路図をGC生成部に入力することでGCと鍵データKを作成し、GCをユーザ装置に送る。また、ユーザ装置はGC実行部にGCと分散シェアs[0],v[0]を入力してGCの出力Eを得て、出力Eをユーザサイド補助装置に送る。最後に、ユーザサイド補助装置は出力Eと鍵データKから出力ansを得る。
 上述の方法に従って認証を行う場合、ユーザ装置が入手可能なデータは認証情報および検証情報自身ではなく、それらのシェアs[0],v[0]とGCのみである。したがって、本実施形態によると、秘密の情報である認証情報と検証情報がユーザ装置に漏れてしまうという問題が解決される。
 なお、実施形態では、安全性を高めるために以下の3つの手法を盛り込むことが可能である。
[安全性を高める手法(その1)]
 まず、1つ目の手法について述べる。この手法の詳細は、第3の実施形態として記載する。実施形態において、ユーザ装置とユーザサイド補助装置は、MPCでユーザ認証を終えた後、機器認証サーバとの機器認証プロトコルにおける返答をMPCで作成する。このとき、ユーザ認証を通った場合に限って機器認証が行われる。すなわち、実施形態において、前者のMPCで「拒否」が出た場合には、後者のMPCを実行する必要はない。しかし、前者のMPCで「拒否」の場合に後者のMPCを行わないものとすると、後者のMPCを行なったか否かという1ビット分の情報をユーザサイド補助装置が取得してしまう。
 ユーザの認証情報の秘匿性を高めるためには、ユーザ認証でユーザが受理されたのか否かという情報も、ユーザサイド補助装置から隠すことが好ましい。そこで、ユーザ認証でユーザが受理されたのか否かに関する情報をユーザサイド補助装置から隠したいケースでは、以下のような動作を行う。すなわち、ユーザ認証が受理された場合、ユーザ装置は通常通り機器認証に関するMPCを行う。一方、それ以外の場合、機器認証に関するMPCを行っているかのように偽装するためのプロトコル(以下「機器認証シミュレートMPC」という)を実行する。これにより、機器認証に関するMPCを行ったか否かに関する1ビット分の情報をユーザサイド補助装置に対して隠ぺいすることができる。
 なお、「機器認証シミュレートMPC」は、ユーザ認証でユーザが受理されたのか否かという情報をユーザサイド補助装置から隠したいケースに対処するためのオプションである。したがって、かかる情報をユーザサイド補助装置に隠す必要がないケースでは、「機器認証シミュレートMPC」を実行する必要はない。
[安全性を高める手法(その2)]
 次に、安全性を高めるための2つ目の手法について述べる。この手法の詳細は、第4および第5の実施形態として記載する。
 この手法について説明するために、まず実施形態に係る認証システムに対する攻撃について述べる。実施形態の認証システムでは、ユーザ装置を乗っ取った不正者は、(実際にはユーザからユーザ認証の要求がないにも関わらず)、ユーザからユーザ認証の要求があったかのように偽ることで、ユーザサイド補助装置にユーザ認証MPCを実行させることが可能である。具体的には、任意に選んだ認証情報Mを用いてユーザサイド補助装置とともにユーザ認証MPCを実行し、結果が受理であるか拒否であるかを知ることができる。これにより、不正者は任意に選択した認証情報Mがユーザの認証情報と一致するか否かを知ることができる。認証情報のエントロピーは小さいため、認証情報Mをいろいろな値に変えつつ全数検索することで、不正者はユーザの認証情報を特定できてしまう。
 しかし、この攻撃手法は、ユーザ装置とユーザサイド補助装置の間の通信を伴う。そこで、ユーザ装置側でユーザサイド補助装置との通信回数に制限を課すことにより、不正者による解析を逃れることができ、安全性が保証される。
[安全性を高める手法(その3)]
 次に、安全性を高めるための3つ目の手法について述べる。この手法の詳細は、第6ないし第8の実施形態として記載する。第6ないし第8の実施形態では、構成に若干の差がある。そこで、最初に第6の実施形態について説明する。
 この手法について説明する前に、まず背後にある動機について説明する。これまでに説明した実施形態では、ユーザ認証のMPCをユーザ装置とユーザサイド補助装置が共同で行う。このため、ユーザ装置とユーザサイド補助装置の双方がユーザ認証のアルゴリズムを保持することを前提としている。しかしながら、ユーザ認証、特に生体認証のアルゴリズムは企業秘密として保護すべき対象であることが多い。また、ユーザ認証に付随してユーザ固有情報(顔、光彩、指紋などの情報)から認証情報や検証情報を得るために特徴量を抽出する認証情報導出や検証情報導出も企業秘密として保護すべき対象であることが多い。したがって、企業秘密を保護するために、不特定多数のユーザの手に渡るおそれがあるユーザ装置に対して、認証情報導出のアルゴリズム、検証情報導出のアルゴリズム、および、ユーザ認証アルゴリズムを隠したいケースが考えられる。
 これらのアルゴリズムをユーザ装置から隠すための方法として、次の方法が考えられる。すなわち、ユーザ装置はユーザ固有情報の取得とその秘密分散のみを実行する。一方、ユーザサイド補助装置の側で、ユーザ固有情報の分散シェアを使用してMPCにより検証情報や認証情報の分散シェアを計算し、MPCでユーザ認証アルゴリズムを実行する方法が考えられる。
 しかし、かかる方法によると、不正者がMPC安全性条件以上のユーザサイド補助装置と結託した場合、検証情報や認証情報という非常に機微な情報が不正者の手に渡ってしまうという問題がある。
 そこで、第6の実施形態では、まずユーザ装置がユーザからユーザ固有情報を取得し、ユーザ固有情報を秘密分散することで分散シェアe[1],...,e[M]を得る。ここで、Mはユーザサイド補助装置の台数である。そしてi=1,...,Mに対し、分散シェアe[i]をさらに秘密分散することで、「ユーザ固有情報の分散シェアの分散シェア」c[i],d[i]を得て、c[1],...,c[M]をユーザ装置自身が保管し、d[i]をi番目のユーザサイド補助装置が保管する。
 このように、第6の実施形態ではユーザ固有情報の分散シェアをユーザ装置とユーザサイド補助装置で分けて保管している。したがって、不正者がMPC安全性条件以上のユーザサイド補助装置を乗っ取った場合にも安全性を担保することができる。
 一方、認証情報導出のアルゴリズム、検証情報導出のアルゴリズム、および、ユーザ認証アルゴリズムはユーザ装置には秘密にし、ユーザサイド補助装置のみに記憶させる。
 ユーザ認証の際には、ユーザ装置は、自身が保持する「ユーザ固有情報の分散シェアの分散シェア」c[i]をi番目のユーザサイド補助装置に送り、i番目のユーザサイド補助装置はc[i]とd[i]からe[i]を復元する。
 さらに、ユーザ装置はユーザから取得したユーザ固有情報を秘密分散して分散シェアf[1],...,f[M]を得て、i=1,...,Mに対しf[i]をi番目のユーザサイド補助装置に送る。i番目のユーザサイド補助装置は、e[i]、f[i]、認証情報導出のアルゴリズム、検証情報導出のアルゴリズム、および、ユーザ認証アルゴリズムを使用して、他のユーザサイド補助装置と相互通信しながらMPCを行うことでユーザ認証を行う。
 なお、第6の実施形態では、ユーザ認証の際にユーザ装置が「ユーザ固有情報の分散シェアの分散シェア」c[i]をユーザサイド補助装置に送付する。したがって、ユーザ認証の際に不正者にユーザサイド補助装置を乗っ取られた場合、不正者はユーザサイド補助装置に保管されているd[i]とユーザ装置から受け取ったc[i]を用いることで、e[i]を復元できてしまう。よって、この段階でMPC安全性条件以上のユーザサイド補助装置が不正者に乗っ取られていた場合、e[i]からユーザ固有情報や認証情報、検証情報が復元されてしまい、これら機微な情報の秘匿性を保つことができない。
 そこで、第6の実施形態では、ユーザ認証が終わり次第、ユーザサイド補助装置が「ユーザ固有情報のシェアのシェア」c[i]を消去することを義務化する。これにより、かかる危険を可能な限り回避する。
 一方、第7の実施形態は、第6の実施形態と同一の動機に基き、第6の実施形態と類似した方法で問題を解決する。しかし、第7の実施形態では、事前登録段階でユーザ装置がユーザ固有情報を取得すると、これを秘密分散した上でユーザサイド補助装置に送り、ユーザサイド補助装置間のMPCを行う。これにより、i=1,...,Mに対し、i番目のユーザサイド補助装置はユーザ検証情報の分散シェアv[i]を得る。そしてi番目のユーザサイド補助装置はv[i]を秘密分散することで「検証情報の分散シェアの分散シェア」u[i]とw[i]を作り、u[i]をユーザ装置に送り、w[i]を自身で保管する。
 ユーザ認証の際、ユーザ装置はu[i]をi番目のユーザサイド補助装置に送り、i番目のユーザサイド補助装置はu[i]とw[i]から検証情報の分散シェアv[i]を復元する。さらに、ユーザ装置はユーザから得た固有情報を秘密分散することでユーザ固有情報の分散シェアf[1],...,f[M]を取得し、i=1,...,Mに対し、f[i]をi番目のユーザサイド補助装置に送る。i番目のユーザサイド補助装置は、v[i]、f[i]、認証情報導出のアルゴリズム、検証情報導出のアルゴリズム、および、ユーザ認証アルゴリズムを用いて他のユーザサイド補助装置と相互通信しながらMPCを行うことでユーザ認証を行う。
 また、第8の実施形態では、ユーザの認証情報およびそのシェアを計算する専用のサーバマシンである「ユーザ認証情報分散シェア生成装置」と、ユーザの検証情報およびそのシェアを計算する専用のサーバマシンである「ユーザ検証情報分散シェア生成装置」を用意する。これらの装置は、認証情報、検証情報、および、これらのシェアの計算をユーザ装置の代わりに実行する。
 かかる方法により、ユーザ装置は認証情報や検証情報の計算を行わなくなる。したがって、認証情報や検証情報の導出アルゴリズムをユーザ装置に明かす必要がなくなる。
<実施形態によってもたらされる効果の概要>
 本発明の各実施形態によると、上述の各課題が解決される。
 第1に、FIDO方式では認証情報および検証情報をユーザ装置に保管しているため、ユーザ装置にはこれらの情報を守るセキュア領域の存在が必須とされ、セキュア領域が不正者に侵された場合、ユーザの認証情報および検証情報という最高度に機微な情報が不正者の手に渡ってしまうという問題点がある。しかし、本発明の実施形態では、ユーザ装置には(認証情報や検証情報の分散シェアは保存されているが)認証情報や検証情報自身は保存されていない。したがって、仮にユーザ装置が不正者に完全に乗っ取られたとしても、不正者に認証情報や検証情報を奪われる危険はなく、セキュア領域も必要とされない。
 なお、実施形態においても、ユーザ装置のみならずユーザサイド補助装置の側もMPC条件を超えて不正者に乗っ取られた場合、認証情報および検証情報が不正者に漏えいする。しかしながら、前述のように実施形態では、ユーザサイド補助装置としてサーバマシンを想定している。したがって、ユーザ装置と併せてユーザサイド補助装置も不正者に乗っ取られるという危険性は非常に小さい。
 また、実施形態では、ユーザ認証が通ったか否かをユーザサイド補助装置に隠す方法も第3の実施形態として提示している。かかる方法を用いれば、不正者にユーザサイド補助装置が乗っ取られた場合における安全性を高めることができる。
 さらに、FIDO方式では、ユーザ認証のアルゴリズム、認証情報導出のアルゴリズム、および、検証情報導出のアルゴリズムもセキュア領域に保管することで、これらのアルゴリズムが漏えいしないよう保護している。しかしながら、このことは、セキュア領域が不正者に侵された場合にこれらのアルゴリズムが流出することを意味する。ユーザ認証の方法として生体認証を用いている場合、これらのアルゴリズムは企業秘密であることが多い。したがって、アルゴリズムが不正者に流出することに対する懸念は大きい。
 そこで、実施形態では、これらのアルゴリズムをユーザ装置に秘匿しつつユーザ認証を実行する方法を第6および第7の実施形態として提示している。
 第2に、既存技術の中には、認証サーバ装置やこれを補助する装置がMPC条件を超えて不正者に乗っ取られると、認証情報または検証情報という最高度に機微な情報が不正者に漏えいしてしまう問題を抱えているものがある。しかし、本願開示の実施形態では、FIDO方式と同様にユーザ認証と機器認証を分離している。したがって、認証サーバ装置には、認証情報や検証情報を教えないのみならず、これらの分散シェアすらも教えない。したがって、認証サーバ装置やこれを補助する装置がMPC条件を超えて不正者に乗っ取られた場合であっても、不正者は認証情報や検証情報を一切知ることはできない。
 第3に、既存方式の中には、認証サーバ装置がユーザ装置と通信することなく認証情報を全数探索できてしまう「サーバサイド・オフライン攻撃」に対して脆弱性を抱えているものがある。しかし、本願開示の実施形態では、前述のように認証サーバ装置やその補助装置には認証情報や検証情報はもちろんそれらの分散シェアすら教えない。すなわち、本願開示の実施形態では、かかる攻撃は不可能である。
 また、実施形態では、ユーザ装置が不正者に乗っ取られた場合であっても、ユーザ認証回数を制限することで認証情報や検証方法の漏洩を防ぐ方法を第4および第5の実施形態として提示している。
 第4に、実施形態では、ユーザ装置とサーバ装置の間で通信するデータをMPCで作成する。このとき、データの作り方については、実施形態とFIDO方式などの既存の認証方式との間で相違する。しかしながら、通信するデータ自身は既存の認証方式のものと全く同一である。したがって、本願開示の実施形態によると、既存の認証方式の通信標準をそのまま利用することができる。すなわち、本願開示の実施形態によると、既存の認証方式の通信標準を満たすすべてのサーバ装置と通信可能であり、既存方式のような通信プロトコルの互換性の問題は生じない。
<実施形態1>
 次に、第1の実施形態に係る認証システムについて図面を参照して説明する。
[構成]
 図4を参照して、本実施形態の認証システムの構成を説明する。
 本実施形態の認証システムは、ユーザ装置41、ユーザサイド補助装置43、および、機器認証サーバ装置42を備えている。ユーザ44は、ユーザ装置41を保有するユーザである。
 ユーザ装置41はユーザ44が保有する装置であり、例えばスマートフォン、タブレット、PC(Personal Computer)などが想定される。
 ユーザサイド補助装置43および機器認証サーバ装置42は、何らかのサーバマシンであることが想定される。
 ユーザ装置41、ユーザサイド補助装置43および機器認証サーバ装置42は、「計算部」、「記憶部」および「通信部」を備えている。計算部はCPU(Central Processing Unit)などのプロセッサである。記憶部は、メモリやハードディスクなどの記憶媒体である。通信部は、インターネットなどを介して装置同士が相互に通信することを可能にするための部分である。
 ユーザ装置41は、さらにユーザ情報取得部411および通知部415を備えている。ユーザ情報取得部411は、認証に使う情報をユーザ44から取得する。通知部415は、認証が受理されたのか拒否されたのかをユーザ44に伝える。通知部415は、例えばPCやスマートフォンのディスプレイである。
 本実施形態の認証システムでは、1人または複数のユーザ44が存在する。各ユーザ44は、1台以上のユーザ装置41を保有する。図4は、そのうちの1人のユーザ44と当該ユーザ44が保有する1台のユーザ装置41のみを示す。
 機器認証サーバ装置42は、ユーザ装置41を認証するサーバである。機器認証サーバ装置42は、例えばユーザ44がユーザ装置41を使用して何らかのウェブサービスを利用する際の認証に用いられる。本実施形態の認証システムにおいて、機器認証サーバ装置42は一般には複数台存在する。図4は、そのうちの1台のみを示す。
 機器認証サーバ装置42は、一般には複数台のユーザ装置41と通信する。機器認証サーバ装置42は、各装置の公開鍵を保存するためのデータベースである公開鍵データベース4221を記憶部422に保持する。なお、記憶部422は公開鍵データベース4221以外の領域も有し、そこに必要な情報を適時保存することもできる。
 ユーザサイド補助装置43は、認証においてユーザ装置41を補助する。図4にはM台のユーザサイド補助装置43を示す。これらのユーザサイド補助装置43は認証の際、ユーザ装置41や他のユーザサイド補助装置43と通信しながら、認証を遂行する。
 各ユーザサイド補助装置43は、一般に複数の認証を補助し、各認証において(認証ごとに異なるまたは同一の)ユーザ装置41と通信をする。
 以下、1台目,...,M台目のユーザサイド補助装置43をユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]と表記する。
 同様に、ユーザサイド補助装置43に含まれるユニットについても、末尾に「[i]」を付すことでi番目のユーザサイド補助装置43のものであることを明示する。例えば、ユーザサイド補助装置43[3]の計算部431を計算部431[3]のように表記する。
 各ユーザサイド補助装置43は、ユーザ44の検証情報の分散シェアや、ユーザ44の保有するユーザ装置41の秘密鍵の分散シェアを保有するためのデータベースである分散シェアデータベース4321を記憶部432に保持する。なお、記憶部432は分散シェアデータベース4321以外の領域も有し、そこに必要な情報を適時保存することもできる。
[本実施形態における認証]
 本実施形態では、認証として、ユーザ44を認証するための「ユーザ認証」とユーザ44が持っている装置であるユーザ装置41を認証する「機器認証」の2種類の認証がある。本実施形態において、ユーザ認証とはユーザ44がユーザ装置41に対して自身が事前登録されたユーザ44と同一であることを証明する行為を指す。一方、機器認証とは、ユーザ装置41が機器認証サーバ装置42に対して、自身が事前登録された装置と同一であることを証明することをいう。
 ユーザ44は、ユーザ装置41を利用してユーザ認証を行う。ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]と通信することでユーザ認証を行う。また、ユーザ認証が受理された場合、ユーザ装置41は機器認証サーバ装置42と通信することで機器認証を行う。この際、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]はユーザ装置41と通信することで、機器認証を手助けする。
 機器認証において、ユーザ装置41と機器認証サーバ装置42は事前に定められた何らかの通信プロトコル(例えばFIDOが提案しているUAF標準)に従って通信すべきデータを決定する。この通信プロトコルに従って通信するためのユニット(ないし手段)が、通信部414のユーザ装置フロントエンド4142と通信部423のサーバ装置フロントエンド4231である。
 上述したようにユーザ装置フロントエンド4142は、機器認証の通信プロトコルに従って機器認証サーバ装置42と通信するためのものである。一方、これとは別にユーザ装置41の通信部414は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]と通信するための補助通信部4141を有する。同様に、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の通信部433はユーザ装置41と通信するための補助通信部4331を有する。
 補助通信部4141および補助通信部4331は、認証情報や検証情報のシェアを送出するなど、ユーザ装置41とユーザサイド補助装置43の間の様々な通信を行う。
 ユーザ認証においては、ユーザ44を識別するための情報(以下「ユーザ固有情報」という)として、例えば以下の3種類のものが用いられる。
ユーザの記憶(暗証番号、パスワード、パスフレーズなど)
ユーザ生体情報(顔、指紋、光彩など)
ユーザの所有物(セキュリティトークン、IC(Integrated Circuit)カードなど)
 ユーザ装置41は、これらのユーザ固有情報の1つ以上を読み取るための手段を有するものとする。ユーザ装置41のユーザ情報取得部411は、読み取る認証情報ごとにその情報を読み取るための取得部4111を有する。
 取得部4111として、例えば以下のものが考えられる。
暗証番号、パスワード、パスフレーズなどを読み取るためのキーボード
顔、指紋、光彩などを読み取るためのカメラ
セキュリティトークンやICカード内の情報を読み取るための読み取り機
 ユーザ装置41は、取得部4111が得たユーザ固有情報を加工して「認証情報」を得る認証情報導出部41211と、ユーザ固有情報を加工して「検証情報」を得る検証情報導出部41221を有する。
 「認証情報」とは、ユーザ認証においてユーザの当人性を示すための情報である。一方、「検証情報」とは、認証情報と比較するために事前に登録されている情報である。
 認証情報導出部41211および検証情報導出部41221の具体例をいくつか示す。
 例えば、認証情報および検証情報が生体情報である場合、取得部4111は画像データとして生体情報を取得する。また、認証情報導出部41211と検証情報導出部41221は、画像データから生体情報の特徴量を抽出し、抽出された特徴量を認証情報および検証情報として用いる。
 一方、認証情報がパスワードPである場合、安全性の観点から、検証情報としてパスワードPそのものではなくPのハッシュ値Hash(P)を使うことが考えられる。この場合、検証情報導出部41221は取得部4111が取得したパスワードPをハッシュ化する操作に対応する。一方、認証情報導出部41211は、取得部4111が取得したパスワードPをそのまま使用する。このとき、認証情報導出部41211は「取得部4111が得た情報Pをそのまま出力する」手段となる。
 図4に例示した構成によると、機器認証サーバ装置42の計算部421に設けられたユーザ認証方法選択部4211が、複数のユーザ認証の方法のうちのいずれを用いるのかを決定する。ただし、ユーザ認証方法選択部4211はユーザ装置41に実装されていてもよい。
 機器認証においては、ユーザ装置41が作成した(何らかの公開鍵認証方式における)公開鍵・秘密鍵ペアを利用して認証を行う。図4は、機器認証に用いられる公開鍵認証方式が事前に1通りに決定していることを前提に記載した。しかし、ユーザ認証の場合と同様に、複数の公開鍵認証方式から1つの方式を選ぶように拡張することも可能である。
[予め装置に登録されているデータ]
 ユーザ装置41は、事前に以下のデータを受け付けて記憶部413に保持するものとする。
ユーザサイド補助装置43の台数M
ユーザ認証の検証プロトコル(複数のユーザ認証が提供されている場合、それらすべての認証プロトコル)
機器認証の認証プロトコル
 ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]は、事前に以下のデータを受け付けて記憶部432に保持するものとする。
ユーザサイド補助装置43の台数M
ユーザ認証の検証プロトコル(複数のユーザ認証が提供されている場合、それらすべての認証プロトコル)
 機器認証サーバ装置42は、事前に以下のデータを受け付けて記憶部422に保持するものとする。
機器認証の検証プロトコル
 また、ユーザ認証や機器認証で行うMPCが事前計算を必要とするものである場合、ユーザ装置41および機器認証サーバ装置42は、それぞれ記憶部413および記憶部432にMPCの事前計算データを保管しておく。
[全体の流れ]
 本実施形態の認証システムの各部の詳細を述べる前に、全体の流れを概括する。
 本実施形態では、認証に先立って以下の事前準備を行う。
ユーザ認証事前準備
 ユーザ認証で必要となるデータを事前準備する。本実施形態では、検証情報を計算しておく。
機器認証事前準備
 機器認証で必要となるデータを事前準備する。本実施形態では、ユーザ装置の公開鍵および秘密鍵の生成を行う。
 認証において、以下の2つの動作を行う
ユーザ認証
 ユーザ装置41がユーザサイド補助装置43の助けを借りながらユーザ44を認証する。
機器認証
 ユーザ装置41がユーザサイド補助装置43の助けを借りながら機器認証サーバ装置42から認証を受ける。
[ユーザ認証事前準備]
 本実施形態では、ユーザ認証事前準備においてユーザ44が検証情報を事前登録する。検証情報を事前登録する方法として、様々な方法を用いることができる。図4は、ユーザ装置41の取得部4111を利用して検証情報を事前登録する場合を示す。しかし、例えば企業が新入社員全員を認証システムに一括登録するようなケースでは、検証情報を登録するための専用マシンを用意し、これを利用して検証部の事前登録を行ってもよい。以降、図4に記載した装置構成における検証情報の事前登録を説明する。
 ユーザ認証を複数用意している場合、すべての認証に対して以下の動作を行う。
 図5に従って検証情報の登録を説明する。
 ステップ51:まず、ユーザ装置41は以下を実行する。
 ステップ511:取得部4111は、ユーザ44からユーザ固有情報を取得する。
 ステップ512:検証情報導出部41221はユーザ固有情報を入力とし、検証情報を出力する。
 ステップ513:検証情報分散部41222は検証情報とユーザサイド補助装置43の台数Mとを入力とし、検証情報の分散シェアv[0],v[1],...,v[M]を出力する。
 ステップ514:記憶部413は分散シェアv[0]を保管する。
 ステップ515:通信部414の補助通信部4141は、分散シェアv[1]をユーザサイド補助装置43[1]に送信し,...,分散シェアv[M]をユーザサイド補助装置43[M]に送信する。
 ステップ516:ユーザ装置41は、ユーザ固有情報、検証情報および分散シェアv[1],...,v[M]を消去する。
 ステップ52:次に、i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
 ステップ521:通信部433[i]の補助通信部4331[i]は、ユーザ装置41が送信した分散シェアv[i]を受信する。
 ステップ522:分散シェアデータベース4321[i]は、分散シェアv[i]を保持する。
[機器認証事前準備]
 本実施形態では、機器認証の事前準備として、公開鍵・秘密鍵ペアの生成と登録を行う。
 図6に従って、公開鍵・秘密鍵ペアの生成と登録を説明する。
 ステップ61:ユーザ装置41は、以下を実行する。
 ステップ611:鍵ペア生成部4125は、ユーザ装置41の公開鍵pkと秘密鍵skを生成する。
 ステップ612:秘密鍵分散部4126は生成された秘密鍵skを入力とし、秘密鍵の分散シェアk[0],...,k[M]を出力する。
 ステップ613:記憶部413は秘密鍵の分散シェアk[0]と公開鍵pkをに保管する。
 ステップ614:i=1,...,Mに対し、通信部414の補助通信部4141は秘密鍵の分散シェアk[i]と公開鍵pkをユーザサイド補助装置43[1]に送信する。
 ステップ615:ユーザ装置41は、秘密鍵skおよび秘密鍵の分散シェアk[1],...,k[M]を消去する。
 ステップ616:ユーザ装置フロントエンド4142は、公開鍵pkを機器認証サーバ装置42に送信する。
 ステップ62:i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
 ステップ621:通信部433[i]の補助通信部4331[i]は、秘密鍵の分散シェアk[i]と公開鍵pkを受信する。
 ステップ622:分散シェアデータベース4321[i]は、秘密鍵の分散シェアk[i]と公開鍵pkを保持する。
 ステップ63:機器認証サーバ装置42は、以下を実行する。
 ステップ631:サーバ装置フロントエンド4231は、ユーザ装置41の公開鍵pkを受信する。
 ステップ632:公開鍵データベース4221は、受信した公開鍵pkを保持する。
[ユーザ認証]
 図7に従って、ユーザ認証を説明する。
 ステップ71:ユーザ装置41は、以下を実行する
 ステップ711:取得部4111は、ユーザ44からユーザ固有情報を取得する。
 ステップ712:認証情報導出部41211はユーザ固有情報を入力とし、認証情報を出力する。
 ステップ713:認証情報分散部41212は認証情報とユーザサイド補助装置43の台数Mとを入力とし、認証情報の分散シェアs[0],s[1],...,s[M]を出力する。
 ステップ714:i=1,...,Mに対し、通信部414の補助通信部4141は認証情報の分散シェアs[i]をユーザサイド補助装置43[i]に送信する。
 ステップ715:ユーザ装置41は、ユーザ固有情報と認証情報の分散シェアs[1],...,s[M]を消去する。
 ステップ716:ユーザ装置ユーザ認証MPC部4123は、記憶部413からユーザ44の検証情報のシェアv[0]とユーザ認証の検証プロトコルと事前計算データp[0](もしあれば)を読み込む。
 ステップ72:i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
 ステップ721:通信部433[i]の補助通信部4331[i]は、認証情報の分散シェアs[i]を受信する。
 ステップ722:ユーザサイド補助装置ユーザ認証MPC部4311[i]は、分散シェアデータベース4321[i]から、ユーザ装置41を保有するユーザ44の検証情報のシェアv[i]とユーザ認証の検証プロトコルを読み込み、記憶部432[i]から事前計算データp[i](もしあれば)を読み込む。
 ステップ73:ユーザ装置41は、認証情報の分散シェアs[0]と検証情報の分散シェアv[0]と事前計算データp[0](もしあれば)とユーザ認証の検証プロトコルをユーザ装置ユーザ認証MPC部4123に入力する。また、i=1,...,Mに対し、ユーザサイド補助装置43[i]は認証情報の分散シェアs[i]と検証情報の分散シェアv[i]と事前計算データp[i](もしあれば)とユーザ認証の検証プロトコルを、ユーザサイド補助装置ユーザ認証MPC部4311[i]に入力する。これにより「ユーザ認証MPC」を実行する。実行結果として、ユーザ装置41はユーザ認証結果のシェアa[0]を得る。また、i=1,...Mに対し、ユーザサイド補助装置43[i]はユーザ認証結果のシェアa[i]を得る。なお「ユーザ認証MPC」の詳細については後述する。
 ステップ74:i=1,...,Mに対し、ユーザサイド補助装置43[i]の補助通信部4331[i]はユーザ認証結果のシェアa[i]をユーザ装置41に送る。
 ステップ75:ユーザ装置41は、以下を実行する。
 ステップ751:補助通信部4141は、ユーザ認証結果のシェアa[1],...,a[M]を受信する。
 ステップ752:ユーザ認証結果復元部4124はa[0],...,a[M]を入力とし、ユーザ認証の結果accを出力する。
 ステップ753:ユーザ認証結果復元部4124は、ユーザ認証の結果accが「受理」か「拒否」かを判定する。
 ステップ754:ユーザ認証の結果accが「受理」の場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら機器認証サーバ装置42から機器認証を受ける。なお「機器認証」の詳細については後述する。
 ステップ755:ユーザ認証の結果が「拒否」の場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
[ユーザ認証MPC]
 ZKIP法またはMAC法に基づいてユーザ認証MPCを実現する方法を述べる。
 図7に記載したユーザ認証のステップ73で行うユーザ認証MPCの詳細を述べる。ユーザ認証MPCでは、ユーザ装置41はユーザ装置ユーザ認証MPC部4123を用いる。一方、ユーザサイド補助装置43はユーザサイド補助装置ユーザ認証MPC部4311を用いる。
 まず、ユーザ装置ユーザ認証MPC部4123およびユーザサイド補助装置ユーザ認証MPC部4311の構成を説明する。
 図8は、ユーザ装置ユーザ認証MPC部4123の構成を例示するブロック図である。
 図9は、ユーザサイド補助装置ユーザ認証MPC部4311の構成を例示するブロック図である。
 図8および図9を参照すると、ユーザ装置ユーザ認証MPC部4123は正当性証明生成部84を有し、一方ユーザサイド補助装置ユーザ認証MPC部4311は正当性証明検証部94を有する点で相違する。
 既存のZKIP法およびMAC法においては、いずれも、MPCの各ステップを実行するたびに、各MPC装置がそのステップの実行を正しく行ったことを証明する正当性証明を生成するステップと、他のMPC装置がそのステップの実行を正しく行ったことを確認するために他のMPC装置が生成した正当性証明を検証するステップがある。
 しかし、本実施形態の場合、[第1の実施形態の概要]で述べた理由により、ユーザ装置41のみに正当性証明を作成する正当性証明生成部84を設け、ユーザサイド補助装置43にはユーザ装置41の正当性証明を検証する正当性証明検証部94のみを設ける。
 図10に従ってユーザ認証MPCを説明する。
 ステップ101:ユーザ装置41において、ユーザ装置ユーザ認証MPC部4123の入力部81は認証情報の分散シェアs[0]と検証情報の分散シェアv[0]とユーザ認証の検証プロトコルを入力とし、認証情報の分散シェアs[0]と検証情報の分散シェアv[0]を一時記憶部82に保管する。i=1,...Mに対し、ユーザサイド補助装置43[i]におけるユーザサイド補助装置ユーザ認証MPC部4311[i]の入力部91[i]は、認証情報の分散シェアs[i]と検証情報の分散シェアv[i]とユーザ認証の検証プロトコルを入力とし、一時記憶部92[i]に保管する。
 ステップ102:ユーザ認証の検証プロトコルの各素子Rに対し、素子番号が小さいものから順番に以下を実行する。
 ステップ1021:素子Rの入力端子をc[1],...,c[N]とする。ここで、Nは素子Rの入力端子の個数である。ユーザ装置41は素子Rの入力端子c[1],...,c[N]に対応するシェアt[0,1],...,t[0,N]と事前計算データq[0,R](もしあれば)を一時記憶部82から読み込み、素子Rとシェアt[0,1],...,t[0,N]をユーザ認証MPC実行部83に入力する。i=1,...,Mに対し、ユーザサイド補助装置43[i]は素子Rの入力端子c[1],...,c[N]に対応するシェアt[i,1],...,t[i,N]を一時記憶部92[i]から読み込み、素子Rとシェアt[i,1],...,t[i,N]と事前計算データq[i,R](もしあれば)をユーザ認証MPC実行部93[i]に入力する。
 ステップ1022:ユーザ認証MPC実行部83およびユーザ認証MPC実行部93[1],...,ユーザ認証MPC実行部93[M]は、通信部414、通信部433[1],..,通信部433[M]を用いて通信し、素子Rに関するMPCを実行する。
 ステップ1023:ユーザ認証MPC実行部83は、素子Rの出力端子のシェアu[0]をユーザ装置41に返す。i=1,...,Mに対し、ユーザ認証MPC実行部93[i]は素子Rの出力端子のシェアu[i]をユーザサイド補助装置43[i]に返す。
 ステップ1024:ユーザ装置41は、素子R、シェアt[0,1],...,t[0,N]、ユーザ認証MPC実行部83の実行に利用した乱数(もしあれば)および事前計算データq[0,R](もしあれば)を正当性証明生成部84に入力する。i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ、通信部414および通信部433[i]を用いて通信しながらは正当性証明生成部84および正当性証明検証部94の処理を実行する。
 ステップ103:実行結果として、ユーザ装置41はユーザ認証結果のシェアa[0]を得る。i=1,...,Mに対し、ユーザサイド補助装置43[i]はユーザ認証結果のシェアa[i]を得る。
 ステップ104:ユーザ装置41は、ユーザ認証結果のシェアa[0]を出力する。i=1,...,Mに対し、ユーザサイド補助装置43[i]はユーザ認証結果のシェアa[i]を出力する。
[機器認証]
 次に、本実施形態の機器認証の詳細について説明する。本実施形態の機器認証では、ユーザ装置41と機器認証サーバ装置42がFIDOのUAF標準で標準化されている認証などの何らかの公開鍵認証を実行する。既知の公開鍵認証では、ユーザ装置41は自身の秘密鍵を使用することで認証を行う。一方、機器認証サーバ装置42はユーザ装置41の公開鍵を使用することでユーザ装置41の認証を検証する。
 しかし、本実施形態の場合、ユーザ装置41は自身の秘密鍵を保有しておらず、ユーザ装置41の秘密鍵はユーザ装置41、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]で分散シェアされている。したがって、既知の公開鍵認証をそのまま本実施形態で使用することはできない。
 そこで、本実施形態では、公開鍵認証においてユーザ装置41が秘密鍵を使用して計算するデータは、ユーザ装置41、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]のMPCで計算するように変更する。
 なお、以上で説明したように、本実施形態では、ユーザ装置41が必要データを計算する方法は通常の公開鍵認証とは異なる。しかし、ユーザ装置41と機器認証サーバ装置42の間でやり取りされる通信データは、通常の公開鍵認証と同一である。また、機器認証サーバ装置42の側で行う計算も、通常の公開鍵認証と同一である。したがって、本実施形態では、既存の認証方式の通信標準をそのまま利用することができる。すなわち、本実施形態によると、既存の認証方式の通信標準を満たしているすべてのサーバ装置と通信可能である。これにより、本実施形態では、既存技術のような通信プロトコルの互換性の問題は生じない。
 本実施形態における公開鍵認証に基づく機器認証は、以下の仮定を満たすものとする。
機器認証は「秘密鍵利用演算部」(ないし、ユニット名の一部に「秘密鍵利用演算」を含むユニット、以下同様)というサブルーチン(ないしユニット)を用いて行われ、秘密鍵は「秘密鍵利用演算部」でのみ用いられる。
 機器認証を行うサブルーチンのうちの「秘密鍵利用演算部」以外の部分を「秘密鍵不用演算部」と呼ぶ。
 本実施形態では、認証手段のうちの秘密鍵利用演算部の部分のみをユーザ装置41と機器認証サーバ装置42の間でのMPCで実行する。一方、秘密鍵不用演算部の部分はユーザ装置41が単独で実行する。
 図11は、ユーザ装置機器認証MPC部4127の構成を例示するブロック図である。
 図12は、ユーザサイド補助装置機器認証MPC部4312の構成を例示するブロック図である。
 図13は、機器認証の動作を例示するフロー図である。
 ステップ131:各装置は、以下のようにデータの入力を行う。
 ステップ1311:ユーザ装置41は秘密鍵のシェアk[0]とユーザ装置41の公開鍵pkを記憶部413から読み込み、ユーザ装置機器認証MPC部4127の入力部111に入力する。
 ステップ1312:i=1,...,Mに対し、ユーザサイド補助装置43[i]は秘密鍵のシェアk[i]とユーザ装置41の公開鍵pkを分散シェアデータベース4321から読み込み、ユーザサイド補助装置機器認証MPC部4312の入力部121に入力する。
 ステップ1313:機器認証サーバ装置42はユーザ装置41の公開鍵pkを公開鍵データベース4221から読み込み、機器認証検証部4212に入力する。
 ステップ132:機器認証サーバ装置42およびユーザ装置41は、以下のようにデータの送受信を行う。
 ステップ1321:機器認証サーバ装置42は機器認証検証部4212を実行し、機器認証検証部4212がユーザ装置41へのデータの送信要求を出した場合、サーバ装置フロントエンド4231を用いてユーザ装置41にデータを送信する。
 ステップ1322:ユーザ装置41はユーザ装置フロントエンド4142を使って機器認証サーバ装置42から送られてきたデータを受信し、受信したデータを秘密鍵不用演算部115に入力し、以下を実行する。
 ステップ13221:秘密鍵不用演算部115がサブルーチンとして秘密鍵利用演算を要求するたびに、秘密鍵不用演算部115がサブルーチンに投げたデータを秘密鍵利用演算MPC実行部113に入力し、以下を実行する。
 ステップ132211:秘密鍵利用演算MPC実行部113はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の秘密鍵利用演算MPC実行部122[1],...,秘密鍵利用演算MPC実行部122[M]と相互通信してMPCを実行し、必要データを計算し、計算されたデータを秘密鍵不用演算部115に返答する。
 ステップ132212:i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ補助通信部4141および補助通信部4331[i]を用いて通信しながら、秘密鍵利用演算正当性証明生成部114および秘密鍵利用演算正当性証明検証部123[i]の処理を実行する。これにより、ステップ132211で行ったMPCの正当性証明とその検証を行う。
 ステップ13222:秘密鍵不用演算部115が機器認証サーバ装置42へのデータ送信要求を出した場合、ユーザ装置41はユーザ装置フロントエンド4142を用いて機器認証サーバ装置42にデータを送信する。
 ステップ1323:最終的に、機器認証サーバ装置42の機器認証検証部4212が「受理」または「拒否」を意味するデータを出力した場合、機器認証サーバ装置42は機器認証検証部4212を終了する。
 本実施形態に係る認証システムでは、ユーザサイド補助装置とユーザ装置との間で検証情報および認証情報の分散シェアを用いてマルチパーティ計算を行う。したがって、ユーザ装置は検証情報および認証情報をそのまま保持する必要がなく、FIDO方式のようにユーザ装置内にセキュアな領域の存在を仮定する必要がなくなる。また、本実施形態では、ユーザ装置と機器認証サーバ装置の間でやり取りされるデータは既存のFIDO方式と同様である。したがって、本実施形態によれば、サーバサイドMPC方式および暗号化通信方式のように独自仕様の通信フロントエンドを設けることなく、既存の機器認証サーバとの通信フロントエンドを利用することができる。さらに、本実施形態によると、FIDO方式と同様にユーザ認証および機器認証の双方の認証が可能となる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。したがって、本実施形態によると、FIDO方式、サーバサイドMPC方式および暗号化通信方式などの既存方式が抱える上述の問題を解消することが可能となる。
 また、本実施形態では、ユーザサイド補助装置としてサーバマシンを採用することで、ユーザサイド補助装置がMPCのプロトコルを逸脱することを防ぐ。このとき、ユーザ装置のみが正当性証明を作成し、サーバサイド補助装置による正当性証明の生成を省略することができる。したがって、本実施形態によると、既存のZKIP法およびMAC法と比較して計算効率および通信効率を大幅に改善することが可能となる。
<実施形態2>
 次に、第2の実施形態に係る認証システムについて図面を参照して説明する。本実施形態では、ガーブルドサーキット(GC:Garbled Circuit)法に基づくユーザ認証MPCを採用する。
 本実施形態の認証システムの構成は、第1の実施形態の構成(図4)と同様である。
 本実施形態のユーザ認証を示すフロー図は、第1の実施形態(図7)と同様である。ただし、本実施形態では、ステップ73のユーザ認証MPCが以下に説明するものに置換される。
[ユーザ認証MPC]
 GC法に基づくユーザ認証MPCについて説明する。
 図7に示した認証手続きのステップ73で行うユーザ認証MPCの詳細について説明する。ユーザ認証MPCでは、ユーザ装置41はユーザ装置ユーザ認証MPC部4123の処理を実行する。一方、ユーザサイド補助装置43はユーザサイド補助装置ユーザ認証MPC部4311の処理を実行する。
 まず、ユーザサイド補助装置ユーザ認証MPC部4311およびユーザ装置ユーザ認証MPC部4123の構成を説明する。
 図14は、ユーザサイド補助装置ユーザ認証MPC部4311の構成を例示するブロック図である。
 なお、ここで述べるユーザ認証では、ユーザサイド補助装置43は1台のみである。図14の装置構成は、この1台のみのユーザサイド補助装置43[1]について説明するためのものである。
 図15は、ユーザ装置ユーザ認証MPC部4123の構成を例示するブロック図である。
 図16に従って、本実施形態におけるユーザ認証MPCを説明する。
 ステップ161:ユーザサイド補助装置43[1]は、認証情報の分散シェアs[1]と検証情報の分散シェアv[1]とユーザ認証の検証プロトコルをユーザサイド補助装置ユーザ認証MPC部4311に入力する。ユーザサイド補助装置ユーザ認証MPC部4311は、これらのデータを入力部141から受け取り、関数fの回路図をGC生成部142に入力することでGCと鍵データKを作成する。ここで、関数f(a,b)は「a,bをそれぞれ認証情報、検証情報の分散シェアとみなし、aとs[1]とを使って認証情報xを復元し、bとv[1]を使って検証情報yを復元し、xとyを使ってユーザ認証を行い、認証結果を出力する」関数とする。ユーザサイド補助装置43[1]は、通知部433[1]を用いてユーザ装置41にGCを送信する。
 ステップ162:ユーザ装置41のユーザ装置ユーザ認証MPC部4123は通信部414を使ってGCを受け取り、GCを使用してGC実行部152の処理を実行する。ユーザ装置41は、GC実行部152の出力Eを取得し、通信部414を用いて出力Eをユーザサイド補助装置43[1]に送る。
 ステップ163:ユーザサイド補助装置43[1]のユーザサイド補助装置ユーザ認証MPC部4311は通知部415[1]を用いて出力Eを受信し、出力Eと鍵データKをGC出力生成部143に入力し、その出力としてユーザ認証の結果が「受理」または「拒否」であることを意味するデータansを得る。
 ステップ164:ユーザ装置41は出力部144から何も出力しない。すなわち、MPCの出力のシェアs[0]は空文字列である。ユーザサイド補助装置43[1]はMPCの出力のシェアs[1]としてansを出力する。次に、ユーザ装置41はユーザサイド補助装置43[1]からs[1]=ansを受信し、ユーザ認証結果復元部4124はansを出力する。
 上述したMPCでは、第1の実施形態と同様にステップ713で行う認証情報分散部41212で認証情報が秘密分散され、結果として分散シェアs[0],s[1]が生成されることを前提として説明した。しかし、ステップ713において認証情報分散部41212を実行せず、s[0]を認証情報自身として、s[1]を空文字列とした場合にも、本実施形態は正しく動作し、安全性も担保することができる。
 本実施形態に係る認証システムにおいても、第1の実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、ユーザ装置は認証情報および検証情報そのものではなく、これらのシェアとGCしか入手できない。したがって、本実施形態によると、ユーザ装置に対して認証情報および検証情報が漏れるというGC法の問題点を解消することができる。
<実施形態3>
 次に、第3の実施形態に係る認証システムについて図面を参照して説明する。
 第1および第2の実施形態においては、ユーザ認証が受理された場合、ユーザ装置41はユーザサイド補助装置43の助けを借りながら機器認証を行う。一方、ユーザ認証が拒否された場合、機器認証は行わず、ユーザ認証が拒否された旨をユーザ44に通知して終了する。このとき、ユーザサイド補助装置43は、ユーザ認証が受理されたのか拒否されたのかという1ビット分の情報を取得してしまう。
 本実施形態では、ユーザ認証が受理されたのか拒否されたのかという情報をユーザサイド補助装置43に対して隠す方法を説明する。
 本実施形態の認証システムの構成は、第1の実施形態(図4)と同様である。ただし、本実施形態では、ユーザ装置41はユーザ認証結果復元部4124の(「許否」の)後段にさらに機器認証シミュレートMPC部17を有する。
 また、本実施形態の動作は、ユーザ認証を示すフロー図(図7)のステップ755を除いて、第1の実施形態と同様である。
 本実施形態では、ステップ755の代わりに以下の動作を実行する。
ユーザ認証の結果が「拒否」の場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42の代わりに機器認証シミュレートMPCを実行する。なお、機器認証シミュレートMPCの詳細については、後述する。機器認証シミュレートMPCが終了すると、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
 図7のステップ73のユーザ認証MPCは、第1の実施形態で説明したZKIP法またはMAC法を用いたものでもよいし、第2の実施形態で説明したGC法を用いたものでもよい。
 図7のステップ754の機器認証は、第1の実施形態で説明したRSAを用いたものでもよいし、第2の実施形態で説明した離散対数を用いたものでもよい。
[機器認証シミュレートMPC]
 機器認証シミュレートMPCの基本的なアイデアは、通常の機器認証において機器認証サーバ装置42が実行していた機器認証検証部4212の動作を、ユーザ装置41が実行するというものである。このようにすると、図7のステップ754は、機器認証検証部4212の処理を実行するのが機器認証サーバ装置42なのかユーザ装置41なのかを除いて同一になる。
 ユーザサイド補助装置43には、機器認証検証部4212を実行しているのが機器認証サーバ装置42なのかユーザ装置41なのかを判定する方法がない。したがって、ユーザサイド補助装置43には、ユーザ認証が受理された(すなわちステップ754を実行している)のか、それともユーザ認証が拒否された(すなわちステップ755を実行している)のかを判別する方法はない。
 図17は、機器認証シミュレートMPC部17の構成を例示するブロック図である。
 機器認証シミュレートMPC部17は、ユーザ装置41が秘密鍵利用演算MPC実行部173の処理を実行する際、ユーザサイド補助装置43の秘密鍵利用演算MPC実行部122と相互通信しながらMPCを実行する。
 図17における秘密鍵利用演算MPC実行部173、秘密鍵利用演算正当性証明生成部174および秘密鍵不用演算部175は、それぞれ、図11におけるユーザ装置機器認証MPC部4127の秘密鍵利用演算MPC実行部113、秘密鍵利用演算正当性証明生成部114および秘密鍵不用演算部115と同一である。また、図17における公開鍵認証検証部176は、図4における機器認証サーバ装置42の機器認証検証部4212と同一である。
 図18は、機器認証シミュレートMPCの動作を例示するフロー図である:
 ステップ181:各装置は、以下のようにデータ入力を行う。
 ステップ1811:ユーザ装置41は秘密鍵のシェアk[0]を記憶部413から読み込み、機器認証シミュレートMPC部17の入力部171に入力する。ユーザ装置41は、さらに自身の公開鍵pkを記憶部413から読み込み、公開鍵認証検証部176に入力する。
 ステップ1812:i=1,...,Mに対し、ユーザサイド補助装置43[i]は秘密鍵のシェアk[i]を分散シェアデータベース4321から読み込み、ユーザサイド補助装置機器認証MPC部4312の入力部121に入力する。
 ステップ182:ユーザ装置41は以下を実行する。
 ステップ1821:ユーザ装置41は公開鍵認証検証部176を実行し、公開鍵認証検証部176がデータの送信要求を出すと、送信要求されたデータを秘密鍵不用演算部175に入力する。
 ステップ1822:ユーザ装置41は送信要求されたデータを秘密鍵不用演算部175に入力し、以下を実行する。
 ステップ18221:秘密鍵不用演算部175がサブルーチンとして秘密鍵利用演算を要求するたびに、秘密鍵不用演算部175がサブルーチンに投げたデータを秘密鍵利用演算MPC実行部173に入力し、以下を実行する。
 ステップ182211:秘密鍵利用演算MPC実行部173はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の秘密鍵利用演算MPC実行部122[1],...,秘密鍵利用演算MPC実行部122[M]と相互通信してMPCを実行し、必要データを計算し、計算されたデータを秘密鍵不用演算部175に返答する。
 ステップ182212:i=1,...,Mに対し、ユーザ装置41およびユーザサイド補助装置43[i]は、それぞれ補助通信部4141および補助通信部4331[i]を用いて通信しながら、秘密鍵利用演算正当性証明生成部174および秘密鍵利用演算正当性証明検証部123[i]の処理を実行する。これにより、ステップ182211で行ったMPCの正当性証明とその検証を行う。
 ステップ18222:秘密鍵利用演算正当性証明生成部174がデータ送信要求を出すと、ユーザ装置41は要求されたデータを公開鍵認証検証部176に入力する。
 ステップ1823:最終的に公開鍵認証検証部176が「受理」または「拒否」を意味するデータを出力すると、ユーザ装置41は機器認証シミュレートMPCを終了する。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、ユーザ認証が許否された場合、ユーザ装置が機器認証シミュレートMPCを実行することで、ユーザサイド補助装置に対して、ユーザに受理されたか否かに関する情報を一切与えないようにすることができる。したがって、本実施形態によると、上述の実施形態に係る認証システムの安全性をさらに高めることが可能となる。
<実施形態4>
 次に、第4の実施形態に係る認証システムについて図面を参照して説明する。
 本実施形態では、i=1,...,Mに対し、ユーザ認証で拒否された回数をカウントするカウンタを第1の実施形態のユーザサイド補助装置43[i]に付け加え、カウンタが定められたしきい値を超えた場合にはユーザ認証を拒絶する。
 本実施形態では、i=1,...,Mに対し、ユーザサイド補助装置43[i]にもユーザ装置41と同様、ユーザ認証結果復元部4124が備わっている。この点を除くと、本実施形態のシステム構成は第1の実施形態の構成と同様である。
 i=1,...,Mに対し、ユーザサイド補助装置43[i]の記憶部432[i]は、ユーザ装置41を用いたユーザ認証においてユーザ44が拒否された回数Cを(ユーザ装置41ごとに)保管しているものとする。ここでは、ユーザ44が拒否された回数Cを拒否回数カウンタと呼ぶ。拒否回数カウンタCは、予めゼロ(0)に初期化されている。また、しきい値Tが事前に定められ、ユーザサイド補助装置43[i]は、しきい値Tを記憶部432[i]に保管している。
 本実施形態の動作は、ユーザ認証を示すフロー図(図7)のステップ74とステップ75との間に以下のステップが挿入される点を除いて、第1の実施形態と同様である。
i=1,...,M、j=1,...,Mに対し、ユーザサイド補助装置43[i]は補助通信部4331[i]を用いてユーザ認証結果のシェアa[i]をユーザサイド補助装置43[j]に送るi=1,...,Mに対し、ユーザ装置41は補助通信部4141を用いてユーザ認証結果のシェアa[0]をユーザサイド補助装置43[i]に送る。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は補助通信部4331[i]を用いてユーザ認証結果のシェアa[0],...,a[M]を受信し、ユーザ認証結果のシェアa[0],...,a[M]を入力してユーザ認証結果復元部の処理を実行する。これにより、ユーザサイド補助装置43[i]はユーザ認証の結果accを得る。ユーザ認証の結果accが「拒否」を表している場合、ユーザサイド補助装置43[i]は記憶部432[i]が保持するユーザ装置41の拒否回数カウンタCに1加える。拒否回数カウンタCの値が記憶部432[i]に保管されているしきい値T以上である場合、ユーザサイド補助装置43[i]は以後ユーザ装置41からのユーザ認証要求をすべて拒絶する。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、ユーザ認証が許否された回数が所定のしきい値以上となると、ユーザサイド補助装置は以降のユーザ認証を許否する。したがって、本実施形態によると、不正者による解析を回避することができ、第1の実施形態に係る認証システムの安全性をさらに高めることが可能となる。
<実施形態5>
 次に、第5の実施形態に係る認証システムについて図面を参照して説明する。本実施形態では、ユーザ認証で拒否された回数をカウントするカウンタを実施形態2のユーザサイド補助装置43[1]に付け加え、カウンタが定められたしきい値を超えた場合にはユーザ認証を拒絶する。
 本実施形態の認証システムの構成は、第2の実施形態の構成と同様である。
 ユーザサイド補助装置43[1]の記憶部432[1]は、ユーザ装置41を用いたユーザ認証においてユーザ44が拒否された回数Cを(ユーザ装置41ごとに)保管しているものとする。ここでは、ユーザ44が拒否された回数Cを拒否回数カウンタと呼ぶ。拒否回数カウンタCは、予めゼロ(0)に初期化されている。また、しきい値Tが事前に定められており、ユーザサイド補助装置43[1]は、しきい値Tを記憶部432[1]に保管している。
 本実施形態の動作は、ユーザ認証MPC部を示すフロー図(図16)のステップ163とステップ164の間に以下のステップが追加される点を除いて、第2の実施形態と同様である。
accが「拒否」を表す場合、ユーザサイド補助装置43[1]は記憶部432[1]が保持するユーザ装置41の拒否回数カウンタCに1加える。拒否回数カウンタCの値が記憶部432[1]に保管されているしきい値T以上である場合、ユーザサイド補助装置43[1]は以後ユーザ装置41からのユーザ認証要求を拒絶する。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、ユーザ認証が許否された回数が所定のしきい値以上になると、ユーザサイド補助装置は以降のユーザ認証を許否する。したがって、本実施形態によると、不正者による解析を回避することができ、第2の実施形態に係る認証システムの安全性をさらに高めることが可能となる。
<実施形態6>
 次に、第6の実施形態に係る認証システムについて図面を参照して説明する。
 本実施形態の認証システムの構成は、第1の実施形態の構成と以下の点で相違する。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態における「検証情報分散シェア生成」には、ユーザ装置41およびユーザサイド補助装置43の双方が参加する。また、第1の実施形態とは異なり、本実施形態の検証情報分散シェア生成は第1の実施形態における検証情報導出部41221および検証情報分散部41222の機能を有していない。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態における「認証情報分散シェア生成」は、ユーザサイド補助装置43が参加するMPCであり、ユーザ装置41はこのMPCに参加しない。また、第1の実施形態と異なり、本実施形態の「認証情報分散シェア生成」は第1の実施形態における認証情報導出部41211および認証情報分散部41212の機能を有していない。
 本実施形態の「検証情報分散シェア生成」は、下記の3つの動作を含む。
事前準備時入力検証用ユーザ固有情報分散シェア作成
MPC入力検証用ユーザ固有情報分散シェア作成
検証情報分散シェア作成マルチパーティ計算
 「事前準備時入力検証用ユーザ固有情報分散シェア作成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証事前準備で行われる。
この処理は、ユーザ装置41によって実行される。
この処理は、ユーザ固有情報とユーザサイド補助装置43の台数Mとを入力として受け取り、M+1個の「事前準備時検証用ユーザ固有情報分散シェア」を出力する。これらのうちの1つはユーザ装置41のためのものであり、他のM個はM台のユーザサイド補助装置43のためのものである。
 「事前準備時入力検証用ユーザ固有情報分散シェア作成」の詳細は、次のとおりである。
入力として受け取ったユーザ固有情報を秘密分散してM個のユーザ固有情報の分散シェアe[1],...,e[M]を得る。
i=1,...,Mに対し、ユーザ固有情報の分散シェアe[i]を秘密分散して2個の「ユーザ固有情報の分散シェアの分散シェア」c[i],d[i]を得る。
分散シェアe[1],...,e[M]を消去する。
ユーザ装置の「事前準備時検証用ユーザ固有情報分散シェア」はD=(c[1],...,c[M])である。i=1,...,Mに対し、ユーザサイド補助装置43[i]の「事前準備時検証用ユーザ固有情報分散シェア」はd[i]である。
 「MPC入力検証用ユーザ固有情報分散シェア作成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]によって実行される。
この処理の入力は、以下の2つである。
 ユーザ装置41が保管している「事前準備時検証用ユーザ固有情報分散シェア」から求められるデータ
 ユーザサイド補助装置43[i]が保管している「事前準備時検証用ユーザ固有情報分散シェア」
この処理の出力は、ユーザ固有情報の分散シェア(以下「MPC入力検証用ユーザ固有情報分散シェア」という)である。
 i=1,...,Mに対し、ユーザサイド補助装置43[i]が実行する「MPC入力検証用ユーザ固有情報分散シェア作成[i]」の詳細は、次のとおりである。
ユーザ装置41が保管している「事前準備時検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M])から求められるデータc[i]と、自身の保持している「事前準備時検証用ユーザ固有情報分散シェア」d[i]を入力として受け取る。
c[i],d[i]を用いて秘密分散の復元を実行することで、ユーザ固有情報の分散シェア(すなわちMPC入力検証用ユーザ固有情報分散シェア)e[i]を得てe[i]を出力する。
 「検証情報分散シェア作成マルチパーティ計算」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身の持っているユーザ固有情報の分散シェアをMPCで用い、MPCの出力として検証情報の分散シェアを得る。
 本実施形態における「認証情報分散シェア生成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身の持っているユーザ固有情報の分散シェアをMPCで用い、MPCの出力として認証情報の分散シェアを得る。
 「検証情報分散シェア作成マルチパーティ計算」と「認証情報分散シェア生成のMPC」は、第1の実施形態の他のMPCと同様に、事前計算データを入力として受け取る場合がある。
 また、第1の実施形態でも述べたように、サーバマシンであるユーザサイド補助装置43はユーザ装置41と比較してはるかに安全性が高く、ログ監視も行われている。このとき、たとえ不正者がユーザサイド補助装置43を乗っ取ったとしても、ユーザサイド補助装置43が定められた動作から外れた行動をとることは考えづらい。
 したがって、「検証情報分散シェア作成マルチパーティ計算」と「認証情報分散シェア生成」のMPCでは、既存のMPCであるZKIP法やMAC法における正当性証明および検証が必要なくなる。このとき、これらのMPCは高速に実行することができる。
 次に、第1の実施形態の動作のうちの、本実施形態とは詳細が異なるものに関して述べる。
ユーザサイド補助装置ユーザ認証MPC部4311[i]は、検証情報の分散シェアv[i]と認証情報の分散シェアs[i]と事前計算データ(もしあれば)を入力として受け取り、他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながらMPCの計算を進め、認証結果の分散シェアa[i]を出力する。しかし、本実施形態では、第1の実施形態とは異なり、ユーザ装置41がこのMPCに参加しない。第1の実施形態においては、サーバマシンであるユーザサイド補助装置43よりも安全性の劣るユーザ装置41と相互通信しながらMPCを実行している。このため、第1の実施形態のユーザサイド補助装置ユーザ認証MPC部4311[i]は、ユーザ装置41の動作の正当性を検証する正当性証明検証部94を備えている。しかし、本実施形態では、上述したように、ユーザサイド補助装置ユーザ認証MPC部4311[i]の行うMPCにユーザ装置41が参加しない。したがって、本実施形態では、MPCを行う際に、正当性証明検証部94の実行を省略することができる。
第1の実施形態では、ユーザ認証結果復元部4124はM+1個の分散シェアを入力として受け取っている。一方、本実施形態では、ユーザ認証結果復元部4124は入力としてM個の分散シェアしか受け取らない。これは上述したように、ユーザ認証のMPCにユーザ装置41が参加しないため、シェアがそもそもM個しか存在しないからである。
[ユーザ認証事前準備]
 本実施形態のユーザ認証事前準備は、以下のとおりである。
まず、ユーザ装置41は以下を実行する。
 取得部4111によりユーザ44からユーザ固有情報を取得する。
 ユーザ固有情報とユーザサイド補助装置43の台数Mを用いて「事前準備時入力検証用ユーザ固有情報分散シェア作成」を実行し、M+1個の「事前準備時入力検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M]),d[1],...,d[M]を得る。
 D=(c[1],...,c[M])を記憶部413に保管する。
 i=1,...,Mに対し、通信部414の補助通信部4141を用いてd[i]をユーザサイド補助装置43[i]に送信する。
 ユーザ固有情報および分散シェアd[1],...,d[M]を消去する。
次に、i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
 ユーザ装置41が送信した分散シェアd[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
 分散シェアd[i]を分散シェアデータベース4321[i]に保存する。
[機器認証事前準備]
 第1の実施形態と同一である。
[ユーザ認証]
本実施形態のユーザ認証は、以下のとおりである。
 ユーザ装置41は、以下を実行する。
  取得部4111によりユーザ44からユーザ固有情報を取得する。
  ユーザ固有情報とユーザサイド補助装置43の台数Mとを用いてユーザ固有情報を秘密分散し、、認証情報の分散シェアf[1],...,f[M]を得る。
  記憶部413から「事前準備時入力検証用ユーザ固有情報分散シェア」D=(c[1],...,c[M])を読み込む。
  i=1,...,Mに対し、通信部414の補助通信部4141を用いてf[i]とc[i]をユーザサイド補助装置43[i]に送信する。
  ユーザ固有情報と分散シェアf[1],...,f[M]を消去する。
 i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
  f[i]とc[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
  分散シェアデータベース4321[i]から「事前準備時入力検証用ユーザ固有情報分散シェア」d[i]を読み込む。
  c[i]とd[i]を入力して「MPC入力検証用ユーザ固有情報分散シェア作成」を実行することで、ユーザ固有情報の分散シェア(MPC入力検証用ユーザ固有情報分散シェア)e[i]を得る。
  記憶部432から検証情報導出部のアルゴリズムと事前計算データp[i](もしあれば)を読み込み、e[i]と事前計算データp[i](もしあれば)と検証情報導出部のアルゴリズムを用いて、「検証情報分散シェア作成マルチパーティ計算[i]」を他のユーザサイド補助装置43と相互通信しながら実行し、出力として検証情報の分散シェアv[i]を得る。
  記憶部432から認証情報導出部のアルゴリズムと事前計算データq[i](もしあれば)を読み込み、f[i]と事前計算データq[i](もしあれば)と認証情報導出部のアルゴリズムを用いて、「認証情報分散シェア生成[i]」を他のユーザサイド補助装置43の「認証情報分散シェア生成[j]」と相互通信しながらマルチパーティ計算により実行し、出力として認証情報の分散シェアs[i]を得る。
  記憶部432からユーザ認証のアルゴリズムと事前計算データb[i](もしあれば)を読み込み、v[i]とs[i]とb[i](もしあれば)とユーザ認証のアルゴリズムをユーザサイド補助装置ユーザ認証MPC部4311[i]に入力し、ユーザサイド補助装置ユーザ認証MPC部4311[i]を他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながら実行し、実行結果としてユーザ認証結果の分散シェアa[i]を得る。
  補助通信部4331[i]を用いてa[i]をユーザ装置41に送る。
  f[i]、c[i]、v[i]、s[i]、a[i]を消去する。
 ユーザ装置41は、以下を実行する。
  補助通信部4141を用いてa[1],...,a[M]を受信する。
  a[1],...,a[M]をユーザ認証結果復元部4124に入力し、その出力としてユーザ認証の結果accを得る。
  ユーザ認証の結果accが「受理」か「拒否」かを判定する。
  ユーザ認証の結果accが「受理」である場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42から機器認証を受ける。
  ユーザ認証の結果が「拒否」である場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
 本実施形態では、第1の実施形態と同様、ユーザ認証の結果が「拒否」の場合にはその旨をユーザ44に伝えて終了するものとした。ただし、第3の実施形態と同様に、機器認証シミュレートMPCを実行した後、ユーザ44に「拒否」された旨を通知してもよい。これにより、ユーザ認証の結果が「拒否」されたか否かがユーザサイド補助装置43には分からないようにすることもできる。
 また、本実施形態においても、第4の実施形態と同様に、ユーザ認証が拒否される回数の上限を定め、安全性を高めることも可能である。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、認証情報導出、検証情報導出およびユーザ認証の各アルゴリズムをユーザサイド補助装置にのみ記憶させる。したがって、本実施形態によると、これらのアルゴリズムを不特定多数のユーザによって使用されるユーザ装置に対して隠蔽することが可能となる。
<実施形態7>
 次に、第7の実施形態に係る認証システムについて図面を参照して説明する。
 本実施形態の認証システムの構成は、以下の点を除いて第1の実施形態の構成と同一である。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態における「検証情報分散シェア生成」には、ユーザ装置41およびユーザサイド補助装置43の双方が参加する。また、第1の実施形態と異なり、本実施形態の「検証情報分散シェア生成」は、第1の実施形態における検証情報導出部41221と検証情報分散部41222の機能を有していない。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態における「認証情報分散シェア生成」は、ユーザサイド補助装置が参加するMPCであり、ユーザ装置41はこのMPCに参加しない。また、第1の実施形態と異なり、本実施形態の「認証情報分散シェア生成」は第1の実施形態における認証情報導出部41211と認証情報分散部41212の機能を有していない。
 本実施形態の「検証情報分散シェア生成」は、以下の4つの処理を含む。
MPC入力検証用ユーザ固有情報分散シェア作成
検証情報分散シェア作成マルチパーティ計算
保存用分散シェア作成
検証情報分散シェア復元
 「MPC入力検証用ユーザ固有情報分散シェア作成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ装置が実行する。
この処理は、ユーザ認証事前準備で実行される。
この処理は、ユーザ固有情報とユーザサイド補助装置43の台数Mを入力として受け取り、ユーザ固有情報の分散シェアを出力する。
 「MPC入力検証用ユーザ固有情報分散シェア作成」の詳細は、以下のとおりである。
ユーザ固有情報Eとユーザサイド補助装置43の台数Mを入力として受け取る。
ユーザ固有情報EをM個に秘密分散してユーザ固有情報の分散シェア(MPC入力検証用ユーザ固有情報分散シェア)e[1],...,e[M]を得る。
e[1],...,e[M]を出力する。
 「検証情報分散シェア作成マルチパーティ計算」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
この処理は、ユーザ認証事前準備で実行される。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は、自身の保持するユーザ固有情報の分散シェアe[i]をMPCで用い、MPCの出力として検証情報の分散シェアv[i]を得る。
 「保存用分散シェア作成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証事前準備で実行される。
この処理は、検証情報の分散シェアを入力として受け取り、保存用分散シェアを出力する。
この処理は、まずi=1,...,Mに対し、ユーザサイド補助装置43[i]が実行することで自身の保存用分散シェアとユーザ装置41に送るデータを作成する。ユーザ装置41は、ユーザサイド補助装置43から送られてきたデータをもとに自身の保存用分散シェアを作成する。
 「保存用分散シェア作成」の詳細は以下のとおりである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
 検証情報の分散シェアv[i]を入力として受け取り、v[i]を2つに秘密分散することで「検証情報の分散シェアの分散シェア」u[i]とw[i]を得る。
 w[i]をユーザサイド補助装置43[i]自身の保存用分散シェアとする。
 u[i]をユーザ装置41に送る。
ユーザ装置41は、以下を実行する
 i=1,...,Mに対し、u[i]をユーザサイド補助装置43[i]から受け取る。
 W=(u[1],...,u[M])をユーザ装置41の保存用分散シェアとする。
 「検証情報分散シェア復元」を実行する装置、実行されるとき、および、入出力は以下のとおりである。
この処理は、ユーザ認証で実行される。
この処理は、保存用分散シェアを入力として受け取り、検証情報分散シェアを出力する。
この処理では、まずユーザ装置41が自身の保存用分散シェアから得られる情報をユーザサイド補助装置43に送り、ユーザサイド補助装置43は送られてきたデータと自身の保存用分散シェアからユーザ認証を計算する。
 「検証情報分散シェア復元」の詳細は、以下のとおりである。
i=1,...,Mに対し、ユーザ装置41は自身の保存用分散シェアW=(u[1],...,u[M])から求まるデータu[i]をユーザサイド補助装置43[i]に送る。
i=1,...,Mに対し、ユーザサイド補助装置43[i]はユーザから送られてきたデータu[i]と自身の保存用分散シェアw[i]を用いて秘密分散の復元部を行い、検証情報の分散シェアv[i]を得る。
 本実施形態における「認証情報分散シェア生成」を実行する装置、実行されるとき、および、入出力は、以下のとおりである。
この処理は、ユーザ認証時に実行される。
この処理は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が参加するMPCである。
i=1,...,Mに対し、ユーザサイド補助装置43[i]は自身が保持するユーザ固有情報の分散シェアをMPCで用い、MPCの出力として認証情報の分散シェアを得る。
 「検証情報分散シェア作成マルチパーティ計算」と「認証情報分散シェア生成」のMPCは、第1の実施形態の他のMPCと同様に、事前計算データを入力として受け取る場合がある。
 また、第1の実施形態でも述べたように、サーバマシンであるユーザサイド補助装置43はユーザ装置41と比較してはるかに安全性が高く、ログ監視も行われている。このとき、たとえ不正者がユーザサイド補助装置43を乗っ取ったとしても、ユーザサイド補助装置43が定められた動作から外れた行動をとることは考えづらい。
 したがって、「検証情報分散シェア作成マルチパーティ計算」と「認証情報分散シェア生成」のMPCでは、既存のMPCであるZKIP法やMAC法における正当性証明および検証が必要なくなる。したがって、これらのMPCは高速に実行することができる。
 次に、第1の実施形態の構成および動作のうちの、本実施形態とは詳細が異なるものに関して述べる。
ユーザサイド補助装置ユーザ認証MPC部4311[i]は、第6の実施形態のユーザサイド補助装置ユーザ認証MPC部4311[i]と同様である。すなわち、ユーザサイド補助装置ユーザ認証MPC部4311[i]は、検証情報の分散シェアv[i]と認証情報の分散シェアs[i]と事前計算データ(もしあれば)を入力として受け取り、他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながらMPCの計算を進め、認証結果の分散シェアa[i]を出力する。しかし、第1の実施形態とは異なり、ユーザ装置41はこのMPCに参加しない。また、第6の実施形態と同様の理由により、本実施形態の場合、MPCを行う際に正当性証明検証部94の実行を省略することができる。
第6の実施形態と同様の理由により、ユーザ認証結果復元部4124は入力としてM個の分散シェアしか受け取らない。
 なお、第6の実施形態と同様の理由により、本実施形態でも、ユーザサイド補助装置ユーザ認証MPC部4311[i]の行うMPCで、正当性証明検証部94の実行を省略することができる。
[ユーザ認証事前準備]
ユーザ認証事前準備は、以下のとおりである。
 まず、ユーザ装置41は以下を実行する。
  取得部4111によりユーザ44からユーザ固有情報Eを取得する。
  ユーザ固有情報Eを用いて「MPC入力検証用ユーザ固有情報分散シェア作成」を実行し、出力としてユーザ固有情報の分散シェアe[1],...,e[M]を得る。
  通信部414の補助通信部4141を用いてe[1]をユーザサイド補助装置43[1]に送信し,...,e[M]をユーザサイド補助装置43[M]に送信する。
  ユーザ固有情報Eおよび分散シェアe[1],...,e[M]を消去する。
 次に、i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
  ユーザ装置41が送信したe[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
  記憶部432から検証情報導出部のアルゴリズムと事前計算データp[i](もしあれば)を読み込み、e[i]と事前計算データp[i](もしあれば)と検証情報導出部のアルゴリズムを用いて「検証情報分散シェア作成マルチパーティ計算」を他のユーザサイド補助装置43と相互通信しながら実行する。このマルチパーティ計算の出力として、検証情報の分散シェアv[i]を得る。
  v[i]を入力して「保存用分散シェア作成」を実行する。結果として、ユーザサイド補助装置43[i]は自身の保存用シェアw[i]を得て分散シェアデータベース4321[i]に保管し、ユーザ装置41は自身の保存用シェアW=(u[1],...,u[M])を得る。
  ユーザサイド補助装置43[i]は、v[i]、u[i]を消去する。
 ユーザ装置41は、以下を実行する。
  保存用シェアW=(u[1],...,u[M])を記憶部413に保管する。
[機器認証事前準備]
 第1の実施形態と同一である。
[ユーザ認証]
本実施形態のユーザ認証は、以下のとおりである。
 ユーザ装置41は、以下を実行する。
  取得部4111によりユーザ44からユーザ固有情報を取得する。
  ユーザ固有情報とユーザサイド補助装置43の台数Mとを用いて、ユーザ固有情報を秘密分散し、認証情報の分散シェアf[1],...,f[M]を得る。
  記憶部413から保存用分散シェアW=(u[1],...,u[M])を読み込む。
  i=1,...,Mに対し、通信部414の補助通信部4141を用いてf[i]とu[i]をユーザサイド補助装置43[i]に送信する。
  ユーザ固有情報とf[1],...,f[M]を消去する。
 i=1,...,Mに対し、ユーザサイド補助装置43[i]は以下を実行する。
  f[i]とu[i]を通信部433[i]の補助通信部4331[i]を用いて受信する。
  分散シェアデータベース4321[i]から保存用シェアw[i]を読み込む。
  保存用シェアu[i],w[i]を入力して「検証情報分散シェア復元」を実行することで検証情報の分散シェアv[i]を復元する。
  記憶部432から認証情報導出部のアルゴリズムと事前計算データq[i](もしあれば)を読み込み、f[i]と事前計算データq[i](もしあれば)と認証情報導出部のアルゴリズムとを用いて、「認証情報分散シェア生成」を他のユーザサイド補助装置43の「認証情報分散シェア生成」と相互通信しながら実行し、出力として認証情報の分散シェアs[i]を得る。
  記憶部432からユーザ認証のアルゴリズムと事前計算データb[i](もしあれば)を読み込み、v[i]とs[i]とb[i](もしあれば)とユーザ認証のアルゴリズムをユーザサイド補助装置ユーザ認証MPC部4311[i]に入力し、ユーザサイド補助装置ユーザ認証MPC部4311[i]を他のユーザサイド補助装置43のユーザサイド補助装置ユーザ認証MPC部4311と相互通信しながら実行し、実行結果としてユーザ認証結果の分散シェアa[i]を得る。
  補助通信部4331[i]を用いてa[i]をユーザ装置41に送る。
  f[i]、u[i]、v[i]、s[i]、a[i]を消去する。
 ユーザ装置41は、以下を実行する。
  補助通信部4141を用いてa[1],...,a[M]を受信する。
  a[1],...,a[M]をユーザ認証結果復元部4124に入力し、その出力としてユーザ認証の結果accを得る。
  ユーザ認証の結果accが「受理」か「拒否」かを判定する。
  ユーザ認証の結果accが「受理」である場合、ユーザ装置41はユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]の助けを借りながら、機器認証サーバ装置42から機器認証を受ける。
  ユーザ認証の結果が「拒否」である場合、ユーザ装置41は認証が拒否された旨を、通知部415を経由してユーザ44に伝えて終了する。
 本実施形態においても、第6の実施形態と同様に、第3の実施形態における機器認証シミュレートMPCを実行した後、ユーザ44に「拒否」された旨を通知してもよい。これにより、ユーザ認証の結果が「拒否」されたか否かが、ユーザサイド補助装置43には分からないようにすることもできる。
 また、本実施形態においても、第4の実施形態と同様に、ユーザ認証が拒否される回数の上限を定め、安全性の向上を図ることも可能である。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、認証情報導出、検証情報導出およびユーザ認証の各アルゴリズムをユーザサイド補助装置のみが使用する。したがって、本実施形態によると、これらのアルゴリズムを不特定多数のユーザによって使用されるユーザ装置に開示する必要がなくなり、これらのアルゴリズムを企業秘密(例えばサーバサイド補助装置を提供する企業の企業秘密)として保護することができる。
<実施形態8>
 次に、第8の実施形態に係る認証システムについて図面を参照して説明する。
 本実施形態の認証システムの構成は、以下の点を除いて、第1の実施形態の構成と同一である。
本実施形態には、「ユーザ認証情報分散シェア生成装置」、「ユーザ検証情報分散シェア生成装置」というサーバマシンがある。以下、これらが別個のサーバマシンであることを前提として話を進めるが、これらは同一のサーバマシンであってもよい。
第1の実施形態では、ユーザ装置41は検証情報分散シェア生成部4122を備えている。一方、本実施形態では、ユーザ装置41はこのユニットを有しておらず、ユーザ検証情報分散シェア生成装置にこのユニットを設ける。検証情報分散シェア生成部4122は、第1の実施形態と同様に、検証情報導出部41221と検証情報分散部41222を有する。
第1の実施形態では、ユーザ装置41は認証情報分散シェア生成部4121を備えている。一方、本実施形態では、ユーザ装置41はこのユニットを有しておらず、ユーザ認証情報分散シェア生成装置にこのユニットを設ける。本実施形態の認証情報分散シェア生成部は、第1の実施形態と同様に、認証情報導出部41211と認証情報分散部41212を有する。
 本実施形態では、第1の実施形態と異なり、ユーザ装置41用の検証情報分散シェアも認証情報分散シェアも作成しない。すなわち、検証情報分散部41222は、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が保有するM個のシェアしか生成しない。同様に、認証情報分散部41212も、ユーザサイド補助装置43[1],...,ユーザサイド補助装置43[M]が保有するM個のシェアしか生成しない。
 また、本実施形態では、ユーザ装置41はユーザ認証MPCに参加しない。したがって、ユーザ装置41はユーザ装置ユーザ認証MPC部4123を備えていない。i=1,...,Mに対し、ユーザサイド補助装置43[i]のユーザサイド補助装置ユーザ認証MPC部4311[i]は、他のユーザサイド補助装置43と通信するものの、ユーザ装置41とは通信しない。
 本実施形態の詳細は、以下のとおりである。
[ユーザ認証事前準備]
ユーザ装置41は、図5のステップ511と同様、ユーザ44からユーザ固有情報を取得する。次に、ユーザ装置41はユーザ固有情報をユーザ検証情報分散シェア生成装置に送る。その後、ユーザ装置41はユーザ固有情報を消去する。
ユーザ検証情報分散シェア生成装置は、ユーザ装置41の代わりに、図5のステップ512~516を実行する。すなわち、ユーザ検証情報分散シェア生成装置は以下を実行する。
 ユーザ検証情報分散シェア生成装置は、ユーザ装置41から受け取ったユーザ固有情報を検証情報導出部41221に入力して検証情報を得る。次に、検証情報と、ユーザサイド補助装置43の台数Mを検証情報分散部41222に入力し、その出力として検証情報の分散シェアv[1],...,v[M]を得る。i=1,...,Mに対し、ユーザ検証情報分散シェア生成装置は検証情報の分散シェアv[i]をユーザサイド補助装置43[i]に送る。その後、ユーザ検証情報分散シェア生成装置は、ユーザ固有情報、検証情報、および、検証情報の分散シェアv[1],...,v[M]を消去する。
 i=1,...,Mに対し、ユーザサイド補助装置43[i]は検証情報の分散シェアv[i]を受信して分散シェアデータベース4321[i]に保存する。
[機器認証事前準備]
 第1の実施形態と同様である。
[ユーザ認証]
 第1の実施形態との相違点は、以下のとおりである。
ユーザ装置41は、図7のステップ711と同様、ユーザ44からユーザ固有情報を取得する。次に、ユーザ装置41は、ユーザ固有情報をユーザ検証情報分散シェア生成装置に送る。その後、ユーザ装置41はユーザ固有情報を消去する。そして、ユーザ認証情報分散シェア生成装置は、図7ステップ712~715をユーザ装置41の代わりに実行する。すなわち、ユーザ認証情報分散シェア生成装置は以下を実行する。
 ・ユーザ認証情報分散シェア生成装置は、ユーザ装置41から受け取ったユーザ固有情報を認証情報導出部41211に入力して認証情報を得る。次に、認証情報と、ユーザサイド補助装置43の台数Mを認証情報分散部41212に入力し、その出力として、認証情報の分散シェアs[1],...,s[M]を得る。i=1,...,Mに対し、ユーザ認証情報分散シェア生成装置はs[i]をユーザサイド補助装置43[i]に送る。その後、ユーザ認証情報分散シェア生成装置はユーザ固有情報、認証情報、および、認証情報の分散シェアs[1],...,s[M]を消去する。
ユーザ装置ユーザ認証MPC部4123が存在しないため、ユーザ装置ユーザ認証MPC部4123の入力を読み込む図7のステップ716は不要となる。同様に、図7のステップ73においても、ユーザ装置ユーザ認証MPC部4123に関連する処理がなくなる。図7のステップ73のユーザ認証MPCに対して、ユーザ装置41は参加しない。i=1,..,Mに対し、ユーザサイド補助装置ユーザ認証MPC部4311[i]は他のユーザサイド補助装置43と通信するものの、ユーザ装置41とは通信しない。このとき、ユーザ装置41はユーザ認証MPCの出力としてa[0]を得ることもない。
a[0]がないため、図7のステップ752ではa[1],...,a[M]からユーザ認証の結果を復元する。
 なお、本実施形態では、ユーザ認証情報分散シェア生成装置およびユーザ検証情報分散シェア生成装置がそれぞれ1台の場合を想定した。ただし、これらの装置を複数台用意し、複数の装置間でMPCを実行することで、ユーザ認証情報の分散シェアや検証情報の分散シェアを計算してもよい。
 本実施形態に係る認証システムにおいても、上記実施形態と同様の効果がもたらされる。すなわち、本実施形態の認証システムによると、ユーザ認証と機器認証を行う認証システムにおいて、ユーザ装置内にセキュアな領域を必要とせず、既存の機器認証サーバとの通信フロントエンドを利用することができる。また、本実施形態では、ユーザの認証情報および検証情報、ならびに、これらのシェアをユーザ装置の代わりに計算する専用のサーバマシンを設けた。したがって、本実施形態によると、認証情報および検証情報を導出するアルゴリズムを不特定多数のユーザによって使用されるユーザ装置に開示する必要がなくなり、これらのアルゴリズムを企業秘密(例えば専用のサーバマシンおよびユーザサイド補助装置を提供する企業の企業秘密)として保護することができる。
 本願開示は、さまざまな用途に適用可能である。例えば、決済システムをはじめとする多くのウェブサービスにおいて、認証が使われている。本願開示は、こうした認証を必要とする認証システムにおいて広く利用することができる。特に、本願開示は既存の認証方式のフロントエンドをそのまま利用できるため、FIDO方式をはじめとするすでにデファクト・スタンダードとして広まっている認証システムにおいて、ユーザ装置の内部の構成を変えるだけで利用可能である。
(付記)
 本発明の請求の範囲全記載が、実施形態として以下に繰り込み記載されているものとする。但し、「請求項」は「形態(mode)」と読み替えるものとし、その際、従属関係は単に好ましい関係を示しそれに限定されないものとする。
 なお、上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
(図1)
11  ユーザ装置
111  ユーザ情報取得部
1111  取得部
112  セキュア領域
1121  計算部
11211  検証情報導出部
11212  認証情報導出部
11213  ユーザ認証部
11214  鍵ペア生成部
11215  機器認証部
1122  記憶部
113  通信部
1131  ユーザ装置フロントエンド
114  通知部
12  機器認証サーバ装置
121  計算部
1211  ユーザ認証方法選択部
1212  機器認証検証部
122  記憶部
1221  公開鍵データベース
123  通信部
1231  サーバ装置フロントエンド
13  ユーザ
(図2)
21  ユーザ装置
211  ユーザ情報取得部
2111  取得部
212  計算部
2121  検証情報導出部
2122  認証情報導出部
2123  認証情報分散部
2124  検証情報分散部
213  通信部
2131  独自仕様通信部
214  通知部
22  サーバサイドユーザ認証MPC装置
221  計算部
2211  ユーザ認証MPC部
2212  認証結果復元部(サーバサイドユーザ認証MPC装置22[1]のみ)
222  記憶部
2221  分散ユーザ検証情報データベース
223  通信部
2231  独自仕様通信部
23  ユーザ
(図3)
31  ユーザ装置
311  ユーザ情報取得部
3111  取得部
312  計算部
3121  認証情報導出部
3122  検証情報導出部
3123  認証情報暗号化部
3124  検証情報暗号化部
313  記憶部
314  通信部
3141  ユーザ装置独自仕様フロントエンド
315  通知部
32  ユーザ認証サーバ装置
321  計算部
3211  サーバ装置暗号化認証検証部
322  記憶部
3221  暗号化ユーザ検証情報データベース
323  通信部
3231  サーバ装置独自仕様フロントエンド
3232  補助通信部
33  ユーザ認証サーバ補助装置
331  計算部
3311  サーバ補助装置鍵生成部
3312  サーバ補助装置暗号化認証検証部
332  記憶部
333  通信部
3331  補助通信部
34  ユーザ
(図4)
41  ユーザ装置
411  ユーザ情報取得部
4111  取得部
412  計算部
4121  認証情報分散シェア生成部
41211  認証情報導出部
41212  認証情報分散部
4122  検証情報分散シェア生成部
41221  検証情報導出部
41222  検証情報分散部
4123  ユーザ装置ユーザ認証MPC部
4124  ユーザ認証結果復元部
4125  鍵ペア生成部
4126  秘密鍵分散部
4127  ユーザ装置機器認証MPC部
413  記憶部
414  通信部
4141  補助通信部
4142  ユーザ装置フロントエンド
415  通知部
42  機器認証サーバ装置
421  計算部
4211  ユーザ認証方法選択部
4212  機器認証検証部
422  記憶部
4221  公開鍵データベース
423  通信部
4231  サーバ装置フロントエンド
43  ユーザサイド補助装置
431  計算部
4311  ユーザサイド補助装置ユーザ認証MPC部
4312  ユーザサイド補助装置機器認証MPC部
432  記憶部
4321  分散シェアデータベース
433  通信部
4331  補助通信部
44  ユーザ
(図8)
81  入力部
82  一時記憶部
83  ユーザ認証MPC実行部
84  正当性証明生成部
85  出力部
(図9)
91  入力部
92  一時記憶部
93  ユーザ認証MPC実行部
94  正当性証明検証部
95  出力部
(図11)
111  入力部
112  受信部
113  秘密鍵利用演算MPC実行部
114  秘密鍵利用演算正当性証明生成部
115  秘密鍵不用演算部
116  出力部
(図12)
121  入力部
122  秘密鍵利用演算MPC実行部
123  秘密鍵利用演算正当性証明検証部
124  出力部
(図14)
141  入力部
142  GC生成部
143  GC出力生成部
144  出力部
(図15)
151  入力部
152  GC実行部
153  出力部
(図17)
17  機器認証シミュレートMPC部
171  入力部
172  受信部
173  秘密鍵利用演算MPC実行部
174  秘密鍵利用演算正当性証明生成部
175  秘密鍵不用演算部
176  公開鍵認証検証部
177  出力部

Claims (41)

  1.  ユーザ装置と、
     前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、
     前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備え、
     前記ユーザサイド補助装置は、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うとともに、前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う、
     認証システム。
  2.  ユーザ認証事前準備、ユーザ認証、検証情報分散シェア生成、機器認証事前準備および機器認証を行うように構成され、
     前記ユーザ認証事前準備では前記ユーザ認証に先立って必要情報を準備し、
     前記機器認証準備では前記機器認証に先立って必要情報を準備し、
     前記ユーザ認証事前準備では、前記ユーザ装置を所有するユーザの固有情報である検証用ユーザ固有情報を取得し、
     前記検証情報分散シェア生成では、前記検証用ユーザ固有情報から前記ユーザ認証で取得した情報と照合するための検証情報の分散シェアである検証情報分散シェアを計算し、前記ユーザサイド補助装置は前記検証情報分散シェアを取得し、前記検証情報分散シェア生成の一部または全部は前記ユーザ認証事前準備で行われ、前記検証情報分散シェア生成の残部は前記ユーザ認証で行われ、
     前記機器認証事前準備では、前記ユーザ装置の秘密鍵を作成し、前記ユーザ装置は前記秘密鍵を秘密分散し、前記秘密分散により生成された複数ある秘密鍵分散シェアのいくつかを前記ユーザサイド補助装置に送り、前記ユーザサイド補助装置は前記秘密鍵分散シェアを保管し、
     前記ユーザ認証では、前記ユーザの固有情報である認証用ユーザ固有情報を取得し、前記認証用ユーザ固有情報または前記認証用ユーザ固有情報から計算される情報を用いてユーザ認証マルチパーティ計算を実行することで前記ユーザを認証し、前記ユーザサイド補助装置は前記検証情報分散シェアを用いて前記ユーザ認証マルチパーティ計算に参加し、前記ユーザサイド補助装置は前記ユーザ認証マルチパーティ計算の結果として前記ユーザが受理されたのか拒否されたのかを示すデータの分散シェアであるユーザ認証結果分散シェアを取得し、
     前記機器認証では、前記ユーザ装置が前記機器認証サーバ装置と通信することで前記機器認証サーバ装置から認証を受け、前記ユーザ装置および前記機器認証サーバ装置は一回または複数回の通信を行い、前記機器認証サーバ装置は前記機器認証の検証に必要なデータを作成して前記ユーザ装置に送信し、前記ユーザ装置は前記機器認証サーバから送られてきた前記検証に必要なデータを受信し、前記ユーザ装置は前記ユーザサイド補助装置と通信することで前記機器認証の証明に必要なデータを作成し、
     前記ユーザ装置は前記証明に必要なデータを作成するために、前記機器認証サーバから送られてきた前記検証に必要なデータを必要に応じて加工して得られたデータを前記ユーザサイド補助装置に送信し、前記ユーザサイド補助装置は前記ユーザ装置から送られてきた前記必要に応じて加工された前記検証に必要なデータと前記秘密鍵分散シェアを用いて機器認証マルチパーティ計算を行い、前記ユーザ装置は前記機器認証マルチパーティ計算の結果として得られた分散シェアを複数用いて復元されたデータを必要に応じて加工したものを前記証明に必要なデータとして前記機器認証サーバに送る、
     請求項1に記載の認証システム。
  3.  前記ユーザ認証では、前記認証用ユーザ固有情報の分散シェアである認証情報分散シェアを作成する認証情報分散シェア生成を実行し、
     前記ユーザサイド補助装置は前記認証情報分散シェアを取得し、
     前記ユーザサイド補助装置は前記ユーザ認証マルチパーティ計算において前記認証情報分散シェアを用いる、
     請求項2に記載の認証システム。
  4.  前記ユーザ装置は前記検証情報分散シェア生成の出力である前記検証情報分散シェアの一つを保持し、
     前記ユーザ装置は前記認証情報分散シェア生成の出力である前記認証情報分散シェアの一つを保持し、
     前記ユーザ装置は前記ユーザ認証マルチパーティ計算に参加し、
     前記ユーザ装置は自身の保持する前記検証情報分散シェアと前記認証情報分散シェアを前記ユーザ認証マルチパーティ計算で用い、
     前記ユーザ装置は前記ユーザ認証マルチパーティ計算の結果として前記ユーザ認証結果分散シェアを取得する、
     請求項3に記載の認証システム。
  5.  前記ユーザ認証マルチパーティ計算において、
     前記ユーザ装置のみが自身の送信したデータの正当性を示す正当性証明を作成し、
     前記ユーザサイド補助装置が前記正当性証明を検証する、
     請求項4に記載の認証システム。
  6.  前記ユーザ認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)である、
     請求項5に記載の認証システム。
  7.  前記ユーザ認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はメッセージ認証子(MAC:Message Authentication Code)である、
     請求項5に記載の認証システム。
  8.  前記ユーザ認証マルチパーティ計算として依頼計算(Secure Function Evaluation)法を利用する、
     請求項2に記載の認証システム。
  9.  前記ユーザ認証マルチパーティ計算で用いる前記依頼計算法はガーブルドサーキット(GC:Garbled Circuit)法である、
     請求項8に記載の認証システム。
  10.  前記ユーザ認証マルチパーティ計算としてガーブルドサーキット(GC:Garbled Circuit)法またはその他の依頼計算法を利用し、
     前記依頼計算法は前記ユーザサイド補助装置が2つの変数aとbを引数として持つ関数f(a,b)の計算を前記ユーザ装置に依頼するものであり、
     前記ユーザ装置は前記ユーザサイド補助装置からの計算依頼に対し、前記aとして前記ユーザ装置が保有する前記認証情報分散シェアを用い、前記bとして前記ユーザ装置が保有する前記検証情報分散シェアを用い、
     前記関数f(a,b)は前記aと前記ユーザサイド補助装置が保有する前記認証情報分散シェアとを使用して認証情報xを復元し、前記bと前記ユーザサイド補助装置が保有する前記検証情報分散シェアとを使用して検証情報yを復元し、前記認証情報xと前記検証情報yを用いてユーザ認証を行い、認証結果を出力する関数である、
     請求項3に記載の認証システム。
  11.  前記ユーザ装置は前記ユーザ認証において前記認証用ユーザ固有情報から前記ユーザの認証情報を計算し、
     前記ユーザサイド補助装置は前記依頼計算において2つの変数aとbを引数として持つ関数g(a,b)の計算を前記ユーザ装置に依頼し、
     前記ユーザ装置は前記ユーザサイド補助装置からの計算依頼に対し、前記aとして前記ユーザ装置が保有する前記認証情報を用い、前記bとして前記ユーザ装置が保有する前記検証情報分散シェアを用い、
     前記関数g(a,b)が前記bと前記ユーザサイド補助装置が保有する前記検証情報分散シェアとを使用して検証情報yを復元し、前記認証情報aと前記検証情報yを使用してユーザ認証を行い、認証結果を出力する関数である、
     請求項8または9に記載の認証システム。
  12.  前記ユーザ装置は前記検証情報分散シェアを保持せず、
     前記ユーザ装置は前記ユーザ認証マルチパーティ計算に参加しない、
     請求項3に記載の認証システム。
  13.  前記機器認証事前準備において、
      前記ユーザ装置は公開鍵認証方式の鍵生成を実行することで、前記ユーザ装置の前記秘密鍵と前記ユーザの公開鍵を作成し、
      前記ユーザ装置は前記公開鍵を前記サーバサイド補助装置と前記機器認証サーバ装置に送信し、
     前記サーバサイド補助装置および前記機器認証サーバ装置は受信した公開鍵を保管し、
     前記機器認証において、
      前記機器認証サーバ装置は前記公開鍵認証方式に基づいたデータを送受信することで前記ユーザ装置の前記機器認証を検証し、
      前記ユーザ装置は前記公開鍵認証方式に基づいたデータを送受信することで前記機器認証サーバ装置から前記機器認証を受ける、
     請求項2ないし12のいずれか1項に記載の認証システム。
  14.  前記ユーザ装置は前記機器認証事前準備で生成された前記秘密鍵分散シェアの一つを保持し、
     前記ユーザ装置は前記機器認証マルチパーティ計算に参加し、
     前記ユーザ装置は前記機器認証マルチパーティ計算で自身の保持する前記秘密鍵分散シェアを用い、
     前記ユーザ装置は前記機器認証マルチパーティ計算の結果である前記分散シェアの1つを取得する、
     請求項13に記載の認証システム。
  15.  前記機器認証マルチパーティ計算において、
     前記ユーザ装置のみが自身の送信したデータの正当性を示す正当性証明を作成し、
     前記ユーザサイド補助装置が前記正当性証明を検証する、
     請求項14に記載の認証システム。
  16.  前記機器認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はゼロ知識証明(ZKIP:Zero-Knowledge Interactive Proof)である、
     請求項15に記載の認証システム。
  17.  前記機器認証マルチパーティ計算において前記ユーザ装置が作成する前記正当性証明はメッセージ認証子(MAC:Message Authentication Code)である、
     請求項15に記載の認証システム。
  18.  前記機器認証で行う前記公開鍵認証では、
     前記機器認証サーバから前記ユーザ装置に送られてきたデータから前記ユーザ装置が前記機器認証サーバに送り返すデータを計算する返答計算過程において、
     前記返答計算過程のうちの前記秘密鍵を利用しない演算は前記ユーザ装置または前記ユーザサイド補助装置の1台が実行し、
     前記返答計算過程のうちの前記秘密鍵を利用する演算は前記機器認証マルチパーティ計算を実行することで計算する、
     請求項14ないし17のいずれか1項に記載の認証システム。
  19.  前記ユーザ装置は、前記ユーザ認証マルチパーティ計算が終了すると、前記ユーザ認証結果分散シェアのいくつかを利用してユーザ認証結果を復元し、前記ユーザ認証結果が受理である場合、前記機器認証サーバ装置と前記サーバサイド補助装置とともに前記機器認証を実行し、前記ユーザ認証結果が拒否である場合、前記機器認証を実行することなく前記ユーザに認証が拒否された旨を通知する、
     請求項2ないし18のいずれか1項に記載の認証システム。
  20.  前記ユーザ認証マルチパーティ計算が終了すると、
     前記ユーザサイド補助装置は前記ユーザ認証結果分散シェアを前記ユーザ装置に送り、
     前記ユーザ装置は前記ユーザ認証結果分散シェアのいくつかを利用してユーザ認証結果を復元し、前記ユーザ認証結果が受理である場合、前記ユーザ装置は前記機器認証サーバ装置と前記サーバサイド補助装置とともに前記機器認証を実行し、前記ユーザ認証結果が拒否である場合、前記サーバサイド補助装置とともに機器認証シミュレートMPCを実行し、
     前記機器認証シミュレートMPCにおいて、
     前記ユーザ装置は前記機器認証における前記ユーザ装置が行う処理と、前記機器認証における前記機器認証サーバ装置が行う処理の双方を行い、
     前記サーバサイド補助装置は前記機器認証における処理と同一の処理を行う、
     請求項2ないし7および13ないし18のいずれか1項に記載の認証システム。
  21.  前記ユーザサイド補助装置は、前記ユーザが前記ユーザ認証で拒否された回数をカウントし、
     前記ユーザ装置は、前記ユーザ認証の結果が拒否である場合、前記機器認証を実行することなく前記ユーザに認証が拒否された旨を通知し、
     前記ユーザサイド補助装置は、前記ユーザ認証で拒否された回数が一定値を超えた後、前記ユーザを認証することを拒否する、
     請求項19または20に記載の認証システム。
  22.  前記認証情報分散シェア生成では前記認証用ユーザ固有情報から認証情報を計算し、前記認証情報から前記認証情報分散シェアを計算する、
     請求項3に記載の認証システム。
  23.  前記ユーザ装置は前記認証情報分散シェア生成を実行する、
     請求項22に記載の認証システム。
  24.  前記認証情報分散シェア生成を実行するユーザ認証分散シェア生成装置を備える、
     請求項22に記載の認証システム。
  25.  前記認証情報分散シェア生成では、前記認証用ユーザ固有情報を秘密分散して得られた認証用ユーザ固有情報分散シェアを前記ユーザサイド補助装置に送信し、
     前記ユーザサイド補助装置は前記認証用ユーザ固有情報分散シェアを用いて認証情報分散シェア生成マルチパーティ計算を実行して前記認証情報分散シェアを得る、
     請求項3に記載の認証システム。
  26.  前記ユーザ装置は前記認証情報分散シェア生成マルチパーティ計算に参加しない、
     請求項25に記載の認証システム。
  27.  前記検証情報分散シェア生成では、前記検証用ユーザ固有情報から検証情報を計算し、前記検証情報を秘密分散して前記検証情報分散シェアを取得する、
     請求項2ないし26のいずれか1項に記載の認証システム。
  28.  前記ユーザ装置は前記ユーザ認証事前準備において前記検証情報分散シェア生成を実行する、
     請求項27に記載の認証システム。
  29.  前記ユーザ認証事前準備において前記検証情報分散シェア生成を実行する検証情報分散シェア生成装置を備える、
     請求項27に記載の認証システム。
  30.  前記検証情報分散シェア生成では、検証情報分散シェア作成マルチパーティ計算を実行することで前記検証情報分散シェアを作成し、前記検証情報分散シェア作成マルチパーティ計算を行う前に、
     前記検証用ユーザ固有情報から検証用ユーザ固有情報の分散シェアであるMPC入力検証用ユーザ固有情報分散シェアを作り、前記MPC入力検証用ユーザ固有情報分散シェアを前記検証情報分散シェア作成マルチパーティ計算に参加する装置に配り、
     前記検証情報分散シェア作成マルチパーティ計算に参加する装置は前記MPC入力検証用ユーザ固有情報分散シェアを前記検証情報分散シェア作成マルチパーティ計算に用いる、
     請求項2ないし26のいずれか1項に記載の認証システム。
  31.  前記ユーザサイド補助装置は前記MPC入力検証用ユーザ固有情報分散シェアを受け取り、
     前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算に参加し、
     前記ユーザ装置は前記検証情報分散シェア作成マルチパーティ計算に参加せず、
     前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算の出力として前記検証情報分散シェアを取得する、
     請求項30に記載の認証システム。
  32.  前記検証情報分散シェア生成では、前記検証情報分散シェア作成マルチパーティ計算を実行するとともに、事前準備時入力検証用ユーザ固有情報分散シェア作成と、MPC入力検証用ユーザ固有情報分散シェア作成を実行し、
     前記ユーザ認証事前準備では、前記事前準備時入力検証用ユーザ固有情報分散シェア作成を実行し、
     前記ユーザ認証では、前記MPC入力検証用ユーザ固有情報分散シェア作成と前記検証情報分散シェア作成マルチパーティ計算を実行し、
     前記事前準備時入力検証用ユーザ固有情報分散シェア作成では、前記検証用ユーザ固有情報を入力として受け取り、前記検証用ユーザ固有情報の分散シェアである事前準備時検証用ユーザ固有情報分散シェアを出力して、前記事前準備時検証用ユーザ固有情報分散シェアを必要とする装置に送り、前記ユーザ装置および前記ユーザサイド補助装置は前記事前準備時検証用ユーザ固有情報分散シェアを保管し、
     前記MPC入力検証用ユーザ固有情報分散シェア作成では、前記ユーザ装置は自身の保有する前記事前準備時検証用ユーザ固有情報分散シェアから求まるデータを前記ユーザサイド補助装置に送り、前記ユーザサイド補助装置は自身の保有する前記事前準備時検証用ユーザ固有情報分散シェアと前記ユーザ装置から送られてきた前記事前準備時検証用ユーザ固有情報分散シェアから求めた前記データとを用いて前記MPC入力検証用ユーザ固有情報分散シェアを作る、
     請求項30または31に記載の認証システム。
  33.  前記事前準備時入力検証用ユーザ固有情報分散シェア作成では、Mをユーザサイド補助装置の台数とするとき、前記検証用ユーザ固有情報を前記M個に秘密分散して分散シェアe[1],...,e[M]を作り、i=1,...,Mに対して前記分散シェアe[i]を2つに秘密分散して分散シェアc[i]とd[i]を作り、前記分散シェアd[i]をi番目の前記ユーザサイド補助装置の事前準備時入力検証用ユーザ固有情報分散シェアとし、前記分散シェアc[1],...,c[M]を前記ユーザ装置の事前準備時入力検証用ユーザ固有情報分散シェアとし、
     前記MPC入力検証用ユーザ固有情報分散シェア作成では、i=1,...,Mに対し、前記(c[1],...,c[M])から求まるデータであるc[i]を前記ユーザ装置がi番目の前記ユーザサイド補助装置に送り、i番目の前記ユーザサイド補助装置は自身が保有する前記分散シェアd[i]と前記ユーザ装置から送られてきた前記分散シェアc[i]とを用いて秘密分散の復元を実行することで前記分散シェアe[i]を計算し、前記分散シェアe[i]を前記MPC入力検証用ユーザ固有情報分散シェアとして用いる、
     請求項32に記載の認証システム。
  34.  前記検証情報分散シェア生成では、前記検証情報分散シェア作成マルチパーティ計算を実行するとともに、MPC入力検証用ユーザ固有情報分散シェア作成と保存用分散シェア作成と検証情報分散シェア復元を実行し、
     前記ユーザ認証事前準備では、前記MPC入力検証情報分散シェア作成と前記検証情報分散シェア作成マルチパーティ計算と前記保存用分散シェア作成を実行し、
     前記ユーザ認証では、前記検証情報分散シェア復元を実行し、
     前記MPC入力検証用ユーザ固有情報分散シェア作成では、前記検証用ユーザ固有情報を秘密分散して分散シェアである前記MPC入力検証用ユーザ固有情報分散シェアを作成し、前記MPC入力検証用ユーザ固有情報分散シェアを前記ユーザサイド補助装置に送り、
     前記保存用分散シェア作成では、前記検証情報分散シェア作成マルチパーティ計算の出力として前記ユーザサイド補助装置が保有する前記検証情報分散シェアを用いて保存用分散シェアを作成し、前記保存用分散シェアを前記ユーザ装置と前記ユーザサイド補助装置が保管し、
     前記検証情報分散シェア復元では、前記ユーザ装置は自身が保持する保存用分散シェアから求まるデータを前記ユーザサイド補助装置に送信し、前記ユーザサイド補助装置は自身が保管している前記保存用分散シェアと前記ユーザ装置が送信した前記ユーザ装置の前記保存用分散シェアから求まる前記データとを用いて前記検証情報分散シェアを計算する、
     請求項30または31に記載の認証システム。
  35.  前記保存用分散シェア作成では、Mをユーザサイド補助装置の台数とするとき、i=1,...,Mに対し、i台目の前記ユーザサイド補助装置は前記検証情報分散シェア作成マルチパーティ計算の出力である前記検証情報分散シェアv[i]を2つに秘密分散することで前記検証情報分散シェアv[i]の分散シェアu[i]とw[i]を求め、i台目の前記ユーザサイド補助装置は前記分散シェアw[i]を自身の前記保存用分散シェアとして保管し、前記分散シェアu[i]を前記ユーザ装置に送り、前記ユーザ装置はi=1,...,Mに対し、前記分散シェアu[1],...,u[M]を受信して前記分散シェアu[1],...,u[M]を自身の前記保存用分散シェアとして保管し、
     前記検証情報分散シェア復元では、i=1,...,Mに対し、前記ユーザ装置は自身が保持する前記保存用分散シェアu[1],...,u[M]から求まるデータu[i]をi番目の前記ユーザサイド補助装置に送信し、i=1,...,Mに対し、i番目の前記ユーザサイド補助装置は自身が保持する保存用シェアであるw[i]と前記ユーザ装置から送信された前記データu[i]とを用いて秘密分散の復元処理を行うことで、前記検証情報分散シェアv[i]を復元する、
     請求項34に記載の認証システム。
  36.  請求項1ないし35のいずれか1項に記載の認証システムにおける前記ユーザ装置。
  37.  請求項1ないし35のいずれか1項に記載の認証システムにおける前記ユーザサイド補助装置。
  38.  ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
     前記ユーザ装置が、秘密鍵の分散シェアを生成するステップと、
     検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、
     前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含む、
     認証方法。
  39.  ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
     前記ユーザサイド補助装置が、検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行うステップと、
     前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行うステップと、を含む、
     認証方法。
  40.  ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
     秘密鍵の分散シェアを生成する処理と、
     検証情報の分散シェアを用いて前記ユーザサイド補助装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、
     前記秘密鍵の分散シェアを用いて、前記ユーザサイド補助装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザ装置に設けられたコンピュータに実行させる、
     プログラム。
  41.  ユーザ装置と、前記ユーザ装置のユーザを認証するユーザ認証および前記ユーザ装置を認証する機器認証を補助するユーザサイド補助装置と、前記ユーザ装置との間で前記機器認証を行う機器認証サーバ装置と、を備えた認証システムにおいて、
     検証情報の分散シェアを用いて前記ユーザ装置との間で前記ユーザ認証のためのマルチパーティ計算を行う処理と、
     前記ユーザ装置が生成した秘密鍵の分散シェアを用いて、前記ユーザ装置との間で前記機器認証のためのマルチパーティ計算を行う処理と、を前記ユーザサイド補助装置に設けられたコンピュータに実行させる、
     プログラム。
PCT/JP2017/018021 2016-05-13 2017-05-12 認証システム、認証方法およびプログラム WO2017195886A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/085,659 US11063941B2 (en) 2016-05-13 2017-05-12 Authentication system, authentication method, and program
JP2018517093A JP6973385B2 (ja) 2016-05-13 2017-05-12 認証システム、認証方法およびプログラム
JP2021179792A JP2022009960A (ja) 2016-05-13 2021-11-02 認証システム、認証方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-097422 2016-05-13
JP2016097422 2016-05-13

Publications (1)

Publication Number Publication Date
WO2017195886A1 true WO2017195886A1 (ja) 2017-11-16

Family

ID=60267203

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/018021 WO2017195886A1 (ja) 2016-05-13 2017-05-12 認証システム、認証方法およびプログラム

Country Status (3)

Country Link
US (1) US11063941B2 (ja)
JP (2) JP6973385B2 (ja)
WO (1) WO2017195886A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111886828A (zh) * 2018-03-29 2020-11-03 维萨国际服务协会 基于共识的在线认证
EP3909198A4 (en) * 2019-02-08 2022-03-23 Keyless Technologies Ltd AUTHENTICATION PROCESSING SERVICE
EP3948565A4 (en) * 2019-03-25 2022-11-30 Identiq Protocol Ltd. SYSTEM AND PROCEDURE FOR ANONYMOUSLY VALIDATING A REQUEST BETWEEN MULTIPLE NODES IN A NETWORK

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202001591UA (en) * 2017-08-30 2020-03-30 Inpher Inc High-precision privacy-preserving real-valued function evaluation
US11818249B2 (en) * 2017-12-04 2023-11-14 Koninklijke Philips N.V. Nodes and methods of operating the same
GB201720753D0 (en) * 2017-12-13 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method
CN110661610B (zh) * 2018-06-29 2020-11-03 创新先进技术有限公司 安全多方计算协议的输入获取方法和装置
KR20210127168A (ko) 2019-02-22 2021-10-21 인퍼, 인코포레이티드 모듈러 정수를 사용한 보안 다자간 계산을 위한 산술
CN113315631B (zh) * 2021-06-09 2021-12-21 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
US11625377B1 (en) * 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
CN114626860B (zh) * 2022-05-12 2022-08-05 武汉和悦数字科技有限公司 用于线上商品支付的身份动态识别方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034259A (ja) * 2009-07-31 2011-02-17 Hitachi Information & Communication Engineering Ltd 携帯型暗証番号管理装置及びカード情報処理システム
JP2011238083A (ja) * 2010-05-12 2011-11-24 Nippon Hoso Kyokai <Nhk> 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム
WO2015114947A1 (ja) * 2014-01-28 2015-08-06 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算サーバ、登録者端末、利用者端末及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080897B (zh) * 2005-07-13 2012-09-19 日本电信电话株式会社 鉴别系统、鉴别方法、证明器件、验证器件及其程序和记录介质
JP2009272737A (ja) * 2008-05-01 2009-11-19 Panasonic Corp 秘匿認証システム
US10178090B2 (en) * 2015-02-27 2019-01-08 Bar-Ilan University System and methods for protecting keys using garbled circuits
JP6046765B2 (ja) * 2015-03-24 2016-12-21 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 秘密情報にアクセスするための、多重パーティ及び多重レベルの承認を可能にするシステム及び方法
US9860237B2 (en) * 2015-10-08 2018-01-02 International Business Machines Corporation Password-based authentication in server systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034259A (ja) * 2009-07-31 2011-02-17 Hitachi Information & Communication Engineering Ltd 携帯型暗証番号管理装置及びカード情報処理システム
JP2011238083A (ja) * 2010-05-12 2011-11-24 Nippon Hoso Kyokai <Nhk> 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム
WO2015114947A1 (ja) * 2014-01-28 2015-08-06 日本電信電話株式会社 秘密計算方法、秘密計算システム、秘密計算サーバ、登録者端末、利用者端末及びプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111886828A (zh) * 2018-03-29 2020-11-03 维萨国际服务协会 基于共识的在线认证
EP3777020B1 (en) * 2018-03-29 2023-12-13 Visa International Service Association Consensus-based online authentication
CN111886828B (zh) * 2018-03-29 2024-03-19 维萨国际服务协会 基于共识的在线认证
EP3909198A4 (en) * 2019-02-08 2022-03-23 Keyless Technologies Ltd AUTHENTICATION PROCESSING SERVICE
US11563564B2 (en) 2019-02-08 2023-01-24 Keyless Technologies Ltd Authentication processing service
EP3948565A4 (en) * 2019-03-25 2022-11-30 Identiq Protocol Ltd. SYSTEM AND PROCEDURE FOR ANONYMOUSLY VALIDATING A REQUEST BETWEEN MULTIPLE NODES IN A NETWORK
US11727149B2 (en) 2019-03-25 2023-08-15 Identiq Protocol Ltd. System and method for providing anonymous validation of a query among a plurality of nodes in a network

Also Published As

Publication number Publication date
US11063941B2 (en) 2021-07-13
JP2022009960A (ja) 2022-01-14
JPWO2017195886A1 (ja) 2019-03-14
JP6973385B2 (ja) 2021-11-24
US20190116180A1 (en) 2019-04-18

Similar Documents

Publication Publication Date Title
WO2017195886A1 (ja) 認証システム、認証方法およびプログラム
Li et al. A robust biometrics based three-factor authentication scheme for global mobility networks in smart city
US10027654B2 (en) Method for authenticating a client device to a server using a secret element
CN103124269B (zh) 云环境下基于动态口令与生物特征的双向身份认证方法
Tsai et al. Novel anonymous authentication scheme using smart cards
CN110932870B (zh) 一种量子通信服务站密钥协商系统和方法
Li et al. Applying biometrics to design three‐factor remote user authentication scheme with key agreement
Das A secure and effective user authentication and privacy preserving protocol with smart cards for wireless communications
KR20210055719A (ko) 생체 인식 인증 보안 강화를 위한 다중 장치의 활용
CN110519046B (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
WO2015072203A1 (ja) 情報配信システム
US20190123901A1 (en) System and method for generating and depositing keys for multi-point authentication
JP2016502377A (ja) 安全計算を用いて安全性を提供する方法
CN107733933B (zh) 一种基于生物识别技术的双因子身份认证的方法及系统
JP7259868B2 (ja) システムおよびクライアント
CN106130716A (zh) 基于认证信息的密钥交换系统及方法
CN109379176B (zh) 一种抗口令泄露的认证与密钥协商方法
Nagaraju et al. SecAuthn: Provably secure multi-factor authentication for the cloud computing systems
CN114049121B (zh) 基于区块链的账户重置方法和设备
CN110505055A (zh) 基于非对称密钥池对和密钥卡的外网接入身份认证方法和系统
Hou et al. A Robust and Efficient Remote Authentication Scheme from Elliptic Curve Cryptosystem.
JP7294431B2 (ja) 情報照合システム、クライアント端末、サーバ、情報照合方法、及び情報照合プログラム
Amin et al. Design of an enhanced authentication protocol and its verification using AVISPA
CN111740995B (zh) 一种授权认证方法及相关装置
CN113545004A (zh) 具有减少攻击面的认证系统

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018517093

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17796244

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17796244

Country of ref document: EP

Kind code of ref document: A1