Two-factor authentication method and system

By employing a two-factor authentication scheme that combines biometrics and public-key encryption, and using semantically secure public-key encryption and robust hash functions to protect user information, this scheme addresses the issues of replay attacks and weak security models in existing technologies, achieving more efficient and secure user authentication.

CN118842600BActive Publication Date: 2026-01-13SHANGHAI JIAOTONG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310442049.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-23
Publication Date
2026-01-13
Estimated Expiration
2043-04-23

AI Technical Summary

Technical Problem

Existing two-factor authentication schemes cannot resist replay attacks, have weak security models, and are inefficient, failing to meet users' security and efficiency needs.

Method used

A two-factor authentication scheme based on biometrics and public-key encryption is adopted. A semantically secure public-key encryption scheme is used to protect the user's private key information, a robust hash function that preserves the predicate relation is used to protect the user's biometric information, and a challenge number is randomly generated by the server to resist replay attacks and malicious server attacks.

Benefits of technology

It improves the security and efficiency of authentication, effectively defends against replay attacks and malicious server attacks, and enhances the security and efficiency of user authentication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118842600B_ABST
    Figure CN118842600B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of computer security, and discloses a two-factor authentication method and system, which is based on a two-factor authentication technology of biological information and public key encryption. In the method, a public key encryption scheme with semantic security and a hash function with robust reserved predicate relation are used to realize an authentication process, and the method has the ability to resist replay attacks and malicious server attacks. Specifically, the scheme uses a server to randomly generate a challenge number and uses a user public key to encrypt and send the challenge number, so as to resist replay attacks; and the scheme uses two-factor authentication of a biological authentication factor and a private key authentication factor to resist malicious user attacks. Meanwhile, the scheme uses the hash function with robust reserved predicate relation to protect biological feature information of a user, and uses the public key encryption scheme with semantic security to protect private key information of the user, so as to resist malicious server attacks. The application significantly improves the security and efficiency of authentication, and can better meet the needs of users.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer security technology, and in particular to identity authentication technology. Background Technology

[0002] Homomorphic encryption is a special type of encryption that allows specific computations to be performed on ciphertext, yielding the same result as the corresponding computation on plaintext. Simply put, it involves performing computations within the ciphertext domain without needing to decrypt it to obtain the plaintext. Homomorphic encryption can be used to protect data privacy while allowing data processing in an encrypted state, thereby achieving security in data sharing and processing. Homomorphic encryption can be divided into two types: full homomorphic encryption and partial homomorphic encryption. The former can perform any computation, while the latter can only perform specific types of computations. Homomorphic encryption has been widely applied in fields such as cloud computing, the Internet of Things, and blockchain.

[0003] Two-factor authentication is an authentication scheme that uses two different authentication factors to verify a user's identity. Typically, these two factors include the user's physical characteristics (such as fingerprints, facial recognition, iris scanning, etc.) and a secret factor (such as a password, private key, etc.). In a two-factor authentication scheme, the user needs to provide both factors simultaneously to pass authentication. Compared to single-factor authentication, two-factor authentication is more secure because an attacker needs to obtain two different factors to successfully impersonate the user.

[0004] The following section further introduces existing two-factor authentication schemes.

[0005] See Figure 1 The user registration phase with the server. During the registration phase, the user first calls a homomorphic encryption key generation algorithm to generate a public-private key pair (pk, sk) ← HE.KeyGen(1 λ ), collect the user's facial information feature vector Γ=(Γ1,…,Γ k Then, for each bit, the homomorphic encryption algorithm is called to obtain c. i =(α i ,β i )←HE.Enc(pk,Γ i Combine the ID with the ciphertext c1, ..., c k and public key pk It is sent to the server, and the server stores it.

[0006] During the authentication phase, the blind squared Euclidean distance algorithm is represented by the BlindESED algorithm.

[0007] See Figure 2 When a user wants to authenticate, the following steps are performed:

[0008] Step 1: First, sample the facial biometric features to obtain Γ′=(Γ′1,…,Γ′). k ′), will include the user's ID and C i ′=(α i ,β i )←HE.Enc(pk,Γ i ′) is sent to the server.

[0009] Step 2: The server receives C i Afterwards, r0 and r1 are uniformly and randomly generated, and the blind squared Euclidean distance calculation algorithm is called to obtain the second-order ciphertext S. * =(α * ,β * Send it to the user.

[0010] Step 3: The user receives S * Then, the decryption algorithm s is called. * ←HE.Dec(sk,S) * Send it to the server.

[0011] Step 4: The server determines the server's actions based on the s data. * Calculate the threshold s and compare it with the standard threshold to determine whether authentication is successful.

[0012] However, the above solution has the following technical problems:

[0013] Unable to defend against replay attacks: Malicious users can pass authentication by replaying the first message without knowing the user's facial feature vector, so this scheme cannot prevent replay attacks.

[0014] The security model is weak: this scheme only considers "honest but curious" servers and cannot prevent attacks from malicious servers. The server can replace the stored ciphertext C with its own in the second step of the authentication process. * The system sends the decryption code to the user, allowing the server to obtain the user's facial feature vector, thus compromising security.

[0015] Low efficiency: This scheme uses a quadratic homomorphic encryption scheme, which has low encryption and decryption efficiency, and therefore may face efficiency problems in practical applications.

[0016] Therefore, the above solutions have low security and low efficiency, and cannot well meet the needs of users. Summary of the Invention

[0017] The purpose of this application is to provide a two-factor authentication method and system to solve the problems mentioned in the background art.

[0018] This application discloses a two-factor authentication method, including:

[0019] Step A: The server calls the key generation algorithm of the public key encryption scheme to generate a first public-private key pair, and samples the robust hash function that preserves the predicate relation to obtain h and sets it as a system parameter, and stores the first public-private key and h;

[0020] Step B: During the user registration phase, the user generates a second public-private key pair using the public key key generation algorithm, samples their own biometric features, performs a hash operation on the biometric authentication factor w, and sends the user's identity identifier, the hash value obtained after hashing the biometric authentication factor w, and the public key generated by the user to the server. At the same time, the user stores another private key authentication factor.

[0021] Step C: In the user authentication phase, the user's private key information is protected by semantically secure public key encryption, and two-factor authentication using biometric authentication factor and private key authentication factor is used. The user's biometric information is protected by a robust hash function that preserves the predicate relation.

[0022] In a preferred embodiment, in step A, the server first calls the key generation algorithm of the public-key encryption scheme to generate a public-private key pair (pk). s ,sk s Then, the robust predicate-predicate-preserving hash function (RPPH) is sampled to obtain h, and h is used as the system parameter PP. 2fa Configure the settings and generate the public and private keys (pk). s ,sk s ) and h are stored on the server, where pk s This is the public key generated by the server, used for encryption challenges and to verify the user's authentication factor. s It is the server's private key, used to decrypt received information.

[0023] In a preferred embodiment, in step B, the user generates a public-private key pair (pk) using a public-key key generation algorithm. c ,sk c )←PKE.KeyGen(1 λ The system samples its own biometric features (w←Sample(W)) and then performs a hash operation on the biometric authentication factor w to obtain h. w ←h(w), will id c h w and PK c The data is sent to the server for storage, and simultaneously, the user stores another private key authentication factor, sk. c , where id c The user's identity identifier is represented by w, the user's biometric authentication factor is represented by h. wpk represents the hash value obtained after performing a hash operation on the biometric authentication factor w. c sk represents the user-generated public key. c This represents the authentication factor of the user-generated private key.

[0024] In a preferred embodiment, the private key authentication factor is stored confidentially by the user, and only the user knows its value; no one else can obtain it.

[0025] In a preferred embodiment, the user's biometric authentication factor is one of the following or any combination thereof: the user's facial image, the user's fingerprint, or the user's iris.

[0026] In a preferred embodiment, in step C, the user requests a service from the server, and the server retrieves the (id) from the database. c h w , pk c A random challenge number r is generated and encrypted using the user's public key to obtain ciphertext c. r And send it to the user, and the user decrypts the ciphertext c using the private key authentication factor. r After obtaining r′, the user's own biometric data is sampled to obtain the biometric authentication factor w′, and then encrypted using the server's public key (h(w′)+r) to obtain the ciphertext c. w And send it to the server, which decrypts c w Given plaintext m, use the robust hash function RPPH that preserves predicate relations to compute b = RPPH.Eval(h, h w ,mr), and obtain the authentication result b.

[0027] In a preferred example, authentication succeeds if b = 1, otherwise authentication fails.

[0028] In a preferred embodiment, step C further includes the following steps:

[0029] The user requests a service from the server, sending a request message (id). c The request is sent to the server.

[0030] The server first retrieves the user identification identifier (id) from the database. c Corresponding biometric authentication factor h w PK with public key c Then, a challenge number r is randomly generated, and the user's public key is used to pk. c Encrypt it to obtain the encrypted ciphertext c r Furthermore, the server will encrypt the text c r Send to the user;

[0031] The user received ciphertext c r Then, first use the user's own private key authentication factor sk c For ciphertext c r Decryption is performed to obtain the challenge number r′. Then, the user's own biometric data is sampled to obtain the biometric authentication factor w′. Next, h(w′)+r′ is encrypted using the server's public key to obtain the ciphertext c. w and ciphertext c w Send to the server, where h(w′) represents the result of hashing the biometric authentication factor w′;

[0032] The server first uses the private key authentication factor sk c For ciphertext c w Decryption is performed to obtain plaintext m. The server then calls the Eval algorithm of the RPPH hash function, using the system parameter h and the biometric authentication factor hash value h. w Given the plaintext m and the challenge number r, calculate the authentication result b.

[0033] This application also discloses a two-factor authentication system including:

[0034] Memory, used to store computer-executable instructions; and,

[0035] A processor for implementing the steps of the method as described above when executing the computer-executable instructions.

[0036] This application also discloses a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the steps of the method described above.

[0037] In this application, a two-factor authentication scheme based on biometric information and public-key encryption aims to improve the security and efficiency of authentication. This scheme uses a semantically secure public-key encryption scheme and a robust hash function that preserves predicate relations to implement the authentication process, and it is capable of resisting replay attacks and malicious server attacks. Specifically, the scheme resists replay attacks by having the server randomly generate a challenge number and encrypt it using the user's public key; and it uses two-factor authentication with both biometric and private-key authentication factors to resist malicious user attacks. Simultaneously, the scheme uses a robust hash function that preserves predicate relations to protect the user's biometric information and a semantically secure public-key encryption scheme to protect the user's private key information, thereby resisting malicious server attacks. The efficiency of this scheme is also optimized; compared to schemes using homomorphic encryption, this scheme is more efficient. Therefore, this application significantly improves the security and efficiency of authentication, and can better meet the needs of users.

[0038] The specification of this application contains numerous technical features distributed across various technical solutions. Listing all possible combinations of these technical features (i.e., technical solutions) would make the specification excessively lengthy. To avoid this problem, the various technical features disclosed in the above-described invention, the various technical features disclosed in the following embodiments and examples, and the various technical features disclosed in the accompanying drawings can be freely combined to form various new technical solutions (all of which are considered to have been described in this specification), unless such a combination of technical features is technically infeasible. For example, one example discloses feature A+B+C, and another example discloses feature A+B+D+E. Features C and D are equivalent technical means that serve the same function, and technically only one needs to be used; they cannot be used simultaneously. Feature E can technically be combined with feature C. Therefore, the solution A+B+C+D should not be considered as described because it is technically infeasible, while the solution A+B+C+E should be considered as described. Attached Figure Description

[0039] Figure 1 This is a diagram illustrating the user registration process with the server in existing authentication technologies.

[0040] Figure 2 This is a diagram illustrating the user authentication process with the server in existing authentication technologies.

[0041] Figure 3 This is a flowchart illustrating the two-factor authentication method according to the first embodiment of this application;

[0042] Figure 4 The schematic diagram of the two-factor authentication protocol based on biometrics and public key technology in the two-factor authentication method of this application is shown. Detailed Implementation

[0043] In the following description, many technical details are presented to help the reader better understand this application. However, those skilled in the art will understand that the technical solutions claimed in this application can be implemented even without these technical details and various variations and modifications based on the following embodiments.

[0044] Explanation of some concepts:

[0045] Authentication factors: Evidence provided by the party being authenticated that can prove their identity is called authentication factors. Authentication factors can be PIN values, password values, physical non-cloning function values, or inherent biometric features such as fingerprints or facial features.

[0046] Two-factor authentication: Two-factor authentication refers to authentication using two different authentication factors. Single-factor authentication refers to authentication using a single authentication factor. With the increasing prevalence of remote services, security requirements are rising, and single-factor authentication may not be sufficient. Therefore, two-factor authentication is increasingly being considered for application in some authentication schemes. Two-factor authentication is more secure than single-factor authentication. Its advantage is that even if one of the two authentication factors is obtained by an adversary, the other can still guarantee the security of the protocol.

[0047] Client-server authentication system: The system consists of one user and one server. The user authenticates with the server using a client device to obtain services. The server authenticates the user's identity by executing an authentication protocol and then provides services to the authenticated user.

[0048] Adversary offensive behavior: Based on the nature of the adversary's offensive behavior, it can be divided into two categories.

[0049] (1) Passive attack: The adversary can observe every message or data sent or received in the communication, but cannot update or modify them. For example, eavesdropping is a passive attack.

[0050] (2) Active attack: The adversary can modify, replay, or intercept messages transmitted in the channel.

[0051] Security Model

[0052] In a client-server authentication system, based on the adversary's role and the nature of the aforementioned attack behaviors, adversaries can be categorized into the following three types:

[0053] (1) Malicious server: Malicious server will target a client and try to obtain the user's privacy information related to authentication factors through some active attacks and passive attacks;

[0054] (2) Honest but curious server: An honest but curious server will target a client, execute the protocol normally, and try to learn the other party's private information from the process of executing the protocol normally, but the server will not launch a malicious active attack.

[0055] (3) Malicious users: Malicious users can launch both passive attacks and malicious active attacks against the server. They may even steal some of the target user's authentication factors (but not all of them) to impersonate the target user and achieve the purpose of authentication.

[0056] The above three adversaries can be combined to obtain the following two security models and security objectives:

[0057] Model 1: The adversary can be a malicious server or a malicious user.

[0058] Model 2: The enemy can be an honest but curious server, or a malicious user.

[0059] Security objectives: When the adversary is a malicious server or an honest but curious server, the goal of two-factor authentication is to prevent the adversary from obtaining the secret information supporting the user's authentication factors; when the adversary is a malicious user, the goal of two-factor authentication is to prevent the adversary from impersonating other legitimate users to pass authentication.

[0060] Based on the definition of adversary types, Model 1 is stronger than Model 2.

[0061] The specific application scenarios of this application are described below. This application can be applied to scenarios such as e-commerce and online banking, where users obtain services through two-factor authentication. Users must possess both authentication factors to pass authentication; if an adversary steals one authentication factor and the other is missing, authentication will fail. Compared to single-factor authentication, two-factor authentication significantly raises the authentication threshold and prevents unauthorized users from abusing the power of authorized users.

[0062] After in-depth research and analysis, the inventors of this application have creatively proposed a new two-factor authentication method and system to address the technical problems raised in the background art. This application designs a novel and efficient two-factor authentication protocol based on biometrics and public key technology.

[0063] The two-factor authentication method in this application is manifested as follows: one authentication factor is the user's biometric information. Another authentication factor is the user's private key sk. c .

[0064] The two-factor authentication protocol in this application considers a stronger security model (server-initiated malicious active attack), and the authentication effect to be achieved is as follows:

[0065] 1. Legitimate users possess two authentication factors: their biometric information and their private key. With the help of these two factors, users can authenticate their identity with the server.

[0066] 2. An adversary may steal one of the user's authentication factors (it may steal the user's biometric authentication factor or the user's private key authentication factor, but not both). The missing other authentication factor can ensure that the adversary cannot impersonate the user to authenticate to the server.

[0067] 3. Malicious servers can launch malicious attacks, but they still cannot obtain any of the user's secret information supporting authentication factors.

[0068] Therefore, the two-factor authentication proposed in this application is a more secure and efficient method of identity authentication, which can effectively defend against malicious attacks. In practical applications, this authentication protocol can be applied to various scenarios, such as identity authentication in finance, e-commerce, and the Internet of Things.

[0069] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0070] The first embodiment of this application relates to a two-factor authentication method, the process of which is as follows: Figure 3 As shown, the method includes the following steps:

[0071] Step 110: The server calls the key generation algorithm of the public key encryption scheme to generate a first public-private key pair, and samples the robust predicate-preserving hash function (RPPH) to obtain h and sets it as a system parameter, and stores the first public-private key and h;

[0072] Step 120: During the user registration phase, the user generates a second public-private key pair using the public key key generation algorithm, samples their own biometric features, performs a hash operation on the biometric authentication factor w, and sends the user's identity identifier, the hash value obtained after hashing the biometric authentication factor w, and the public key generated by the user to the server. At the same time, the user stores another private key authentication factor.

[0073] Step 130: During the user authentication phase, the user's private key information is protected by semantically secure public key encryption, and two-factor authentication using biometric authentication factor and private key authentication factor is used. The user's biometric information is protected by a robust hash function that preserves the predicate relation.

[0074] Each step is explained in detail below.

[0075] In step 110, the server first calls the key generation algorithm of the public-key encryption scheme to generate a public-private key pair (pk). s ,sk s Then, the robust predicate-predicate-preserving hash function (RPPH) is sampled to obtain h, and h is used as the system parameter pp. 2fa Configure the settings and generate the public and private keys (pk). s ,sk s ) and h are stored in the server as the basis for subsequent two-factor authentication schemes.

[0076] Among them, pk s This is the public key generated by the server, used for encryption challenges and to verify the user's authentication factor. sIt is the server's private key, used to decrypt received information.

[0077] In step 120, during the user registration phase, the user generates a public-private key pair (pk) using a public-key key generation algorithm. c ,sk c )←PKE.KeyGen(1 λ The system samples its own biometric features (w←Sample(W)) and then performs a hash operation on the biometric authentication factor w to obtain h. w ←h(w), will id c h w and PK c Send to the server for storage, i.e., the server updates the database DB = DB∪{(id)}. c h w , pk c Meanwhile, the user secretly stores another private key authentication factor sk. c .

[0078] w represents the user's biometric authentication factor, which can refer to biometric information such as the user's facial image, fingerprint, or iris scan. During the user registration phase, the user needs to sample their biometric data to obtain the biometric authentication factor w, and then perform a hash operation on w to obtain h. w , will id c h w and PK c They are sent together to the server for storage.

[0079] h w It is the hash value obtained by performing a hash operation on the biometric authentication factor w. Specifically, h w = h(w), where h is a hash function. id c This refers to the user's identity identifier. pk c User ID c The generated public key is used to encrypt and send the biometric authentication factor to the server.

[0080] sk c This is a user-generated private key authentication factor used to decrypt the challenge number sent by the server during the authentication process to generate a response. The private key authentication factor is stored confidentially by the user; only the user knows its value, and no one else can obtain it.

[0081] Step 130: User Authentication Phase: The user requests a service from the server and sends a request message (idc, Request) to the server. The server retrieves the (id) from the database. c h w , pk c A random challenge number r is generated and encrypted using the user's public key to obtain the ciphertext c.r This is sent to the user to prevent replay attacks. The user decrypts c using the private key authentication factor. r Obtain r′, sample your own biometric source to obtain biometric authentication factor w′, and encrypt (h(w′)+r) using the server's public key to obtain ciphertext c. w Send it to the server. The server decrypts c. w Given m, use the robust hash function RPPH that preserves predicate relations to compute b = RPPH.Eval(h, h w ,mr), to obtain the authentication result b. If b=1, the authentication is successful; otherwise, the authentication fails.

[0082] Here, (idc, Request) refers to the request message sent by the user when requesting a service from the server, where id c This represents the user's identity identifier, and Request represents the user's request content. 'r' refers to the challenge number randomly generated by the server in step 134 below, used to prevent replay attacks. r This is the ciphertext of the challenge number r generated by the server using the user's public key. In the specific steps 234 below, the server randomly generates the challenge number r, and then encrypts it using the user's public key to obtain c. r This is then sent to the user. The user needs to decrypt it using their private key authentication factor to obtain the true challenge number r′, which is used for authentication in subsequent steps. This method can resist replay attacks because a malicious attacker cannot know the true challenge number r, and therefore cannot reuse previous authentication requests. w This is the ciphertext of the biometric authentication factor h(w′) + r, encrypted by the server using the public key. Here, h(w′) is the biometric authentication factor obtained by sampling and hashing the user's biometric data in step 120 above, and r is a challenge number uniformly and randomly generated by the server in step 134 below. m refers to the plaintext obtained after decrypting the authentication factor using the user's private key. Specifically, m = Dec(sk) c c w b is a Boolean value representing the authentication result. If b is 1, the authentication is successful; otherwise, the authentication fails.

[0083] This step embodies the characteristics of "using a semantically secure public-key encryption scheme to protect user private key information, thereby resisting malicious server attacks", "using two-factor authentication with biometric authentication factor and private key authentication factor to resist malicious user attacks", and "using a robust hash function that preserves predicate relations to protect user biometric information".

[0084] Optionally, this step may further include the following sub-steps:

[0085] Step 132: The user requests a service from the server, sending a request message (id). c The request is sent to the server.

[0086] Step 134: The server first retrieves the user's identity identifier (id) from the database. c Corresponding biometric authentication factor h w PK with public key c Then, a challenge number r is randomly generated, and the user's public key is used to PK. c Encrypt it to obtain the encrypted ciphertext c r Furthermore, the server will encrypt the text c r This is sent to the user for their subsequent authentication process. The purpose of this step is to prevent replay attacks and to protect the challenge number r using a semantically secure public-key cryptography scheme, thereby defending against malicious server attacks.

[0087] Step 136: The user receives the encrypted message c r Then, first use your own private key to authenticate the factor sk. c For ciphertext c r Decryption is performed to obtain the challenge number r′. Then, the biometric authentication factor w′ is obtained by sampling one's own biometric source. Finally, h(w′)+r′ is encrypted using the server's public key to obtain the ciphertext c. w and ciphertext c w Send to the server.

[0088] Where h(w′) represents the result of hashing the biometric authentication factor w′. In step 120, the user performs a hash operation on the biometric authentication factor w to obtain h. w In step 136, the user performs a hash operation on the sampled biometric authentication factor w′ to obtain h(w′), adds it to the challenge number r, and then encrypts it using the server's public key to obtain the ciphertext c. w .

[0089] This step demonstrates how to protect user private key information using a semantically secure public-key encryption scheme to defend against malicious server attacks. In this step, the user decrypts the challenge number using their private key authentication factor. This challenge number is sent to the user on the server side in public-key encrypted form. Because public-key encryption is semantically secure—meaning the encrypted ciphertext does not reveal any information about the plaintext—a malicious server cannot obtain the user's private key authentication factor and therefore cannot launch an attack by replacing the challenge number.

[0090] Furthermore, this step also demonstrates the use of "two-factor authentication, which uses biometric authentication factors and private key authentication factors, to defend against malicious user attacks." In this process, the user decrypts their own private key authentication factor and samples their own biometric data to obtain a biometric authentication factor. The two factors are then combined for authentication to ensure that the authentication request comes from a legitimate user.

[0091] Step 138: The server first uses the private key authentication factor sk c For ciphertext c w Decryption is performed to obtain the plaintext m. Next, the server calls the Eval algorithm of the RPPH hash function, using the system parameter h and the biometric authentication factor hash value h. w Given the plaintext m and the challenge number r, an authentication result b is calculated. If b = 1, authentication succeeds; otherwise, authentication fails. This step uses a robust hash function that preserves predicate relations to protect the user's biometric information, thereby avoiding the risk of biometric information leakage.

[0092] Technical effects:

[0093] According to the above technical solution, the two-factor authentication scheme based on biometric information and public-key encryption aims to improve the security and efficiency of authentication. This scheme uses a semantically secure public-key encryption scheme and a robust hash function that preserves predicate relations to implement the authentication process, and it is capable of resisting replay attacks and malicious server attacks. Specifically, the scheme resists replay attacks by having the server randomly generate a challenge number in the second step and encrypt it using the user's public key; and it uses two-factor authentication with both biometric and private key authentication factors to resist malicious user attacks. Simultaneously, the scheme uses a robust hash function that preserves predicate relations to protect the user's biometric information and a semantically secure public-key encryption scheme to protect the user's private key information, thereby resisting malicious server attacks. The efficiency of this scheme is also optimized; compared to schemes using homomorphic encryption, this scheme is more efficient.

[0094] To better understand the technical solution of this application, a specific example is provided below. The details listed in this example are mainly for ease of understanding and are not intended to limit the scope of protection of this application.

[0095] In this example, the specific construction of the two-factor authentication protocol based on biometrics and public key technology is as follows: Figure 4 As stated above.

[0096] The definition of Robust Property-PreservingHash (RPPH) is explained below.

[0097] Definition 1: [Robust Property-Preserving Hash (RPPH)] for a predicate relation P with two inputs: {0, 1} n ×{0, 1} n →{0, 1, ⊥}, a robust family of predicate-predicate hashes. It is a family of functions that can be efficiently computed, and has the following two algorithms, which are compressible, correct and robust.

[0098] RPPH algorithm:

[0099] • Sample(λ) → h: This is a multinomial-time algorithm that produces a random hash function h;

[0100] • Eval(h, y1, y2) → 0 / 1: This is a deterministic multinomial-time algorithm given input And y1, y2∈{0,1} m Output a single bit.

[0101] RPPH compressibility: The length n of the hash input must be greater than the length m of the output.

[0102] Correctness of PPH: Yes The following equation holds true:

[0103]

[0104] Robustness of RPPH: for any polynomial adversary It was formally established

[0105]

[0106] In this example, the inventors consider predicate relations for Hamming distance. For 0 < t < n, Hamming distance predicate relation between two inputs (HAM) n,t (x1, x2) is defined as

[0107]

[0108] Among them, reference [2] ([2] Justin Holmgren, Minghao Liu, LaKyah Tyner, Daniel Wichs: Nearly Optimal Property Preserving Hashing. CRYPTO(3)2022:473-502) provides an efficient construction of RPPH for Hamming distance predicate relations.

[0109] Figure 4The specific construction is shown in the figure, where H is the hash function.

[0110]

[0111] In other words, RPPH is a robust family of predicate-predicate-relational hash functions that efficiently computes hash functions and possesses compressibility, correctness, and robustness. Specifically, the RPPH family consists of two algorithms: Sample and Eval. The Sample algorithm is a multinomial-time algorithm used to generate a random hash function h. The Eval algorithm is a deterministic multinomial-time algorithm used to generate a hash function h given input h∈H and y1,y2{0,1}. m Output a single bit. RPPH also exhibits compressibility, meaning the length n of the hash input must be greater than the output length m; and correctness, meaning for any input x1, x2 ∈ {0, 1}... n The correctness of the algorithm's output is guaranteed; robustness, i.e., for any polynomial adversary... The robustness of the algorithm's output is guaranteed. In this example, RPPH is applied to the Hamming distance predicate relation HA and is implemented using the efficient construction method in reference [2].

[0112] This example demonstrates a two-factor authentication scheme based on biometrics and public-key cryptography, using RPPH and public-key encryption as follows:

[0113] Step 210: System Initialization: See Figure 4 The 2fa.Setup algorithm is used. The server calls the public key key generation algorithm to generate a public-private key pair (pk). s ,sk s )←PKE.KeyGen(1 λ ), sample RPPH to obtain h←RPPH.Sample(1 λ Set the system parameter to pp. 2fa =h, server storage (pk) s ,sk s ) and h.

[0114] In other words, in step 210, the server first calls the key generation algorithm of the public-key encryption scheme to generate a public-private key pair (pk). s ,sk s Then, the robust predicate-predicate-preserving hash function (RPPH) is sampled to obtain h, and h is used as the system parameter pp. 2fa Configure the settings and generate the public and private keys (pk). s ,sk s ) and h are stored in the server as the basis for subsequent two-factor authentication schemes.

[0115] Among them, pk s This is the public key generated by the server, used for encryption challenges and to verify the user's authentication factor. s It is the server's private key, used to decrypt received information.

[0116] Step 220: User registration stage: See [link / reference] Figure 4 The 2fa.Enroll algorithm in [the context of the user ID]. c The public key generation algorithm is called to generate a public-private key pair (pk). c ,sk c )←PKE.KeyGen(1 λ Then, it samples its own biological source w←Sample(W) and performs a hash operation on the biometric authentication factor w to obtain h. w ←h(w). (This likely refers to a specific type of ID or id.) c h w with PK c Send it to the server for storage, that is, the server sets DB = DB∪{(id)}. c h w , pk c The user secretly stores another private key authentication factor, sk. c .

[0117] In other words, during the user registration phase, the user uses a public-key key generation algorithm to generate a public-private key pair (pk). c ,sk c )←PKE.KeyGen(1 λ The system samples its own biometric features (w←Sample(W)) and then performs a hash operation on the biometric authentication factor w to obtain h. w ←h(w), will id c h w and PK c Send to the server for storage, i.e., the server updates the database DB = DB∪{(id)}. c h w , pk c Meanwhile, the user secretly stores another private key authentication factor sk. c .

[0118] w represents the user's biometric authentication factor, which can refer to biometric information such as the user's facial image, fingerprint, or iris scan. During the user registration phase, the user needs to sample their biometric data to obtain the biometric authentication factor w, and then perform a hash operation on w to obtain h. w , will id c h w and PK cThey are sent together to the server for storage.

[0119] h w It is the hash value obtained by performing a hash operation on the biometric authentication factor w. Specifically, h w = h(w), where h is a hash function. id c This refers to the user's identity identifier. pk c User ID c The generated public key is used to encrypt and send the biometric authentication factor to the server.

[0120] sk c This is a user-generated private key authentication factor used to decrypt the challenge number sent by the server during the authentication process to generate a response. The private key authentication factor is stored confidentially by the user; only the user knows its value, and no one else can obtain it.

[0121] Step 230: User Authentication Phase: See [link / reference] Figure 4 In protocol.

[0122] During the user authentication phase, the user requests services from the server and sends a request message (idc, Request) to the server. The server retrieves the (id) from the database. c h w , pk c A random challenge number r is generated and encrypted using the user's public key to obtain the ciphertext c. r This is sent to the user to prevent replay attacks. The user decrypts c using the private key authentication factor. r Obtain r′, sample your own biometric source to obtain biometric authentication factor w′, and encrypt (h(w′)+r) using the server's public key to obtain ciphertext c. w Send it to the server. The server decrypts c. w Given m, use the robust hash function RPPH that preserves predicate relations to compute b = RPPH.Eval(h, h w ,mr), to obtain the authentication result b. If b=1, the authentication is successful; otherwise, the authentication fails.

[0123] Here, (idc, Request) refers to the request message sent by the user when requesting a service from the server, where id c This represents the user's identity identifier, and Request represents the user's request content. 'r' refers to the challenge number randomly generated by the server in steps 2, 3, and 4 below, used to prevent replay attacks. r This is the ciphertext of the challenge number r generated by the server using the user's public key. In the specific steps 234 below, the server randomly generates the challenge number r, and then encrypts it using the user's public key to obtain c. rThis is then sent to the user. The user needs to decrypt it using their private key authentication factor to obtain the true challenge number r′, which is used for authentication in subsequent steps. This method can resist replay attacks because a malicious attacker cannot know the true challenge number r, and therefore cannot reuse previous authentication requests. w This is the ciphertext of the biometric authentication factor h(w′) + r encrypted by the server using the public key, where h(w′) is the biometric authentication factor obtained by the user after sampling and hashing their biometric data in step 220 above, and r is the challenge number uniformly and randomly generated by the server in the specific step 234 below. m refers to the plaintext obtained after decrypting the authentication factor using the user's private key. Specifically, m = Dec(sk c c w b is a boolean value representing the authentication result. If b is 1, the authentication is successful; otherwise, the authentication fails.

[0124] This step embodies the characteristics of "using a semantically secure public-key encryption scheme to protect user private key information, thereby resisting malicious server attacks", "using two-factor authentication with biometric authentication factor and private key authentication factor to resist malicious user attacks", and "using a robust hash function that preserves predicate relations to protect user biometric information".

[0125] Step 230 further includes steps 232-238, as follows:

[0126] Step 232: The user requests a service from the server, sending a request message (id). c The request is sent to the server.

[0127] Step 234: The server receives the request message (id) c After (Request), first retrieve (id) from its database DB. c h w , pk c Then, uniformly and randomly generate challenge number r← $ {0, 1} λ And encrypt it using the user's public key to obtain c r ←Enc(pk c ,r) is sent to the user.

[0128] In other words, the server first retrieves the user's identity identifier (id) from the database. c Corresponding biometric authentication factor h w PK with public key c Then, a challenge number r is randomly generated, and the user's public key is used to PK. c Encrypt it to obtain the encrypted ciphertext c r Furthermore, the server will encrypt the text cr This is sent to the user for their subsequent authentication process. The purpose of this step is to prevent replay attacks and to protect the challenge number r using a semantically secure public-key cryptography scheme, thereby defending against malicious server attacks.

[0129] Step 236: The user receives message c r Then, decrypt using your own private key authentication factor to obtain r′←Dec(sk) c c r And obtain bio-certification factors by sampling their own biological sources. Use the server's public key to encrypt (h(w′)+r) to obtain c. w ←Enc(pk s ,(h(w′)+r′)), will c w Send to the server.

[0130] In other words, the user receives ciphertext c r Then, first use your own private key to authenticate the factor sk. c For ciphertext c r Decryption is performed to obtain the challenge number r′. Then, the biometric authentication factor w′ is obtained by sampling one's own biometric source. Finally, h(w′)+r′ is encrypted using the server's public key to obtain the ciphertext c. w and ciphertext c w Send to the server.

[0131] Where h(w′) represents the result of hashing the biometric authentication factor w′. In step 220, the user performs a hash operation on the biometric authentication factor w to obtain h. w In step 236, the user performs a hash operation on the sampled biometric authentication factor w′ to obtain h(w′), adds it to the challenge number r, and then encrypts it using the server's public key to obtain the ciphertext c. w .

[0132] This step demonstrates how to protect user private key information using a semantically secure public-key encryption scheme to defend against malicious server attacks. In this step, the user decrypts the challenge number using their private key authentication factor. This challenge number is sent to the user on the server side in public-key encrypted form. Because public-key encryption is semantically secure—meaning the encrypted ciphertext does not reveal any information about the plaintext—a malicious server cannot obtain the user's private key authentication factor and therefore cannot launch an attack by replacing the challenge number.

[0133] Furthermore, this step also demonstrates the use of "two-factor authentication, which uses biometric authentication factors and private key authentication factors, to defend against malicious user attacks." In this process, the user decrypts their own private key authentication factor and samples their own biometric data to obtain a biometric authentication factor. The two factors are then combined for authentication to ensure that the authentication request comes from a legitimate user.

[0134] Step 238: The server receives c w Then, first decryption is performed to obtain m←Dec(sk) c c w Then run b←RPPH.Eval(h, h) w The authentication result b is obtained by ,mr). If b=1, the authentication is successful; otherwise, the authentication fails.

[0135] In other words, the server first uses the private key authentication factor sk c For ciphertext c w Decryption is performed to obtain the plaintext m. Next, the server calls the Eval algorithm of the RPPH hash function, using the system parameter h and the biometric authentication factor hash value h. w Given the plaintext m and the challenge number r, an authentication result b is calculated. If b = 1, authentication succeeds; otherwise, authentication fails. This step uses a robust hash function that preserves predicate relations to protect the user's biometric information, thereby avoiding the risk of biometric information leakage.

[0136] Technical effects:

[0137] As mentioned above, existing homomorphic encryption-based schemes suffer from the following technical problems: they cannot resist replay attacks; they cannot resist attacks from malicious servers; and they are inefficient. Compared with existing technologies, the technical solution of this application can resist replay attacks and attacks from malicious servers, while also being highly efficient. Specifically:

[0138] 1. High security: The security of the authentication protocol in this application is explained in detail below in four scenarios:

[0139] In the second step, the server uses a fresh number r (i.e., a challenge number r) for the challenge, so each challenge is different. For an adversary to pass authentication, they must respond correctly to the fresh number; therefore, an adversary cannot replay the message to pass authentication.

[0140] An adversary only obtains the user's private key authentication factor, but lacks the user's other authentication factor—biometrics—and also the server's secret information. In this case, because the adversary lacks the user's biometric information, even if they decrypt the random number r provided by the server using the private key, they cannot forge or guess h. w The value of is therefore insufficient to provide a ciphertext c that can be authenticated.w ;

[0141] An adversary only obtains the user's biometric authentication factor, but lacks the user's other authentication factor—the private key—and also the server's secret information. In this case, because the adversary does not possess the user's private key, according to the security definition of a semantically secure public-key encryption scheme, the adversary cannot correctly decrypt the value of the random number r, and therefore cannot provide the ciphertext c that can pass authentication. w ;

[0142] For a malicious server that possesses the server's secret information but lacks the user's private key and biometric information: In this case, because the server does not have the user's private key, even if the server launches an active or passive attack, due to the security of the semantically secure public-key encryption scheme and the one-way nature of RPPH, the server cannot obtain the target user's secret information from either the active or passive attack.

[0143] Therefore, compared to existing homomorphic encryption-based schemes, this application can resist attacks from malicious servers.

[0144] Second, it is highly efficient: compared with existing homomorphic encryption-based schemes, the authentication method in this application is more efficient.

[0145] The proposed construction in this application is based on a semantically secure public-key encryption (PKE) scheme and a robust predicate-preserving hash function (RPPH). PKE has many efficient instantiations, such as the ElGamal encryption scheme. RPPH can be instantiated based on an efficient codec and a collision-resistant hash function, such as the construction in Reference 2 (Justin Holmgren, Minghao Liu, LaKyah Tyner, Daniel Wichs: Nearly Optimal Property Preserving Hashing. CRYPTO(3)2022:473-502). However, the existing scheme in Reference 2 (Jong-HyukIm, Seong-Yun Jeon, Mun-Kyu Lee: Practical Privacy-Preserving FaceAuthentication for Smartphones Secure Against Malicious Clients. IEEE Trans. Inf. Forensics Secur. 15:2386-2401(2020)) involves quadratic homomorphic encryption, which is inefficient.

[0146] Third, scalability: It can be further extended to two-way authentication: The authentication method in this application implements server-to-user authentication, which is one-way authentication. In the second step of the protocol, the server can sign the message it sends, and the user verifies the message signature. This enables user-to-server authentication, thereby achieving two-way authentication.

[0147] Furthermore, this application also provides a two-factor authentication system, including a memory for storing computer-executable instructions and a processor; the processor is used to implement the steps in the above-described method embodiments when executing the computer-executable instructions in the memory. The processor may be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The aforementioned memory may be read-only memory (ROM), random access memory (RAM), flash memory, hard disk, or solid-state drive, etc. The steps of the methods disclosed in the embodiments of this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules in the processor.

[0148] It should be noted that in this patent application, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one" does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element. In this patent application, if it refers to performing an action according to an element, it means performing the action at least according to that element, including two cases: performing the action only according to that element, and performing the action according to that element and other elements. Expressions such as "multiple," "repeatedly," and "various" include two, two times, two kinds, and more than two, more than two times, and more than two kinds.

[0149] All documents mentioned in this application are considered to be incorporated in their entirety into the disclosure of this application so that they can serve as a basis for modifications if necessary. Furthermore, it should be understood that after reading the foregoing disclosure of this application, those skilled in the art can make various alterations or modifications to this application, and these equivalent forms also fall within the scope of protection claimed in this application.

Claims

1. A two-factor authentication method, characterized by, include: Step A: The server invokes the key generation algorithm of the public key encryption scheme to generate a pair of first public and private keys, and samples a hash function with a robust predicate relation to obtain and sets it as a system parameter, stores the first public and private keys and ; Step B: During the user registration phase, the user generates a second public-private key pair using a public key generation algorithm and samples their biometric features to obtain a biometric authentication factor. Biometric authentication factors Perform a hash operation and combine the user's identity identifier with the biometric authentication factor. The hash value obtained after hashing, along with the public key generated by the user, is sent to the server. At the same time, the user stores another private key authentication factor. Step C: In the user authentication phase, the user private key information is protected by semantic secure public key encryption, the biometric authentication factor and the private key authentication factor are used for two-factor authentication, and the user's biometric information is protected by a hash function with robust preserved predicate relationship, wherein the user requests a service from the server, the server obtains a challenge number from the database randomly generates a challenge number encrypts the ciphertext using the user public key and sends it to the user, and the user decrypts the ciphertext using the private key authentication factor obtains , samples the user's own biometric source to obtain a biometric authentication factor encrypts using the server's public key obtains the ciphertext decrypts to obtain the plaintext uses a hash function with robust preserved predicate relationship RPPH to calculate obtains the authentication result .

2. The method as described in claim 1, characterized in that, In the step A, the server first calls the key generation algorithm of the public key encryption scheme to generate a pair of public and private keys Then, the hash function with the robust predicate relation is sampled to obtain And the is set as the system parameter The generated public and private keys And are stored in the server, wherein, The public key generated by the server is used to encrypt the challenge and verify the authentication factor of the user, The private key of the server is used to decrypt the received information.

3. The method as described in claim 2, characterized in that, In step B, the user generates a pair of public and private keys using a key generation algorithm for public keys and samples his own biometric and performs a hash operation on the biometric authentication factor to obtain and sends , and to the server for storage, while the user stores another private key authentication factor wherein represents the identity identifier of the user, represents the biometric authentication factor of the user, represents the hash value obtained after performing a hash operation on the biometric authentication factor , represents the public key generated by the user, represents the private key authentication factor generated by the user.

4. The method as described in claim 3, characterized in that the private key authentication factor is stored confidentially by the user, and only the user knows its value, which cannot be obtained by others.

5. The method as described in claim 3, characterized in that, The user's biometric authentication factor is one of the following or any combination thereof: the user's facial image, the user's fingerprint, or the user's iris.

6. The method as described in claim 1, characterized in that, if Authentication will pass if successful, otherwise authentication will fail.

7. The method as described in claim 1, characterized in that, Step C further includes the following steps: The user requests a service from the server, sending a request message. Send to the server; The server first retrieves the user's identity identifier from the database. Corresponding biometric authentication factors and public key Then, a challenge number is randomly generated. and using the user's public key Encrypt it to obtain the encrypted ciphertext. Furthermore, the server will encrypt the text. Send to the user; The user received the ciphertext Then, first use the user's own private key authentication factor. For ciphertext Decrypt to obtain the challenge number. Then, the biometric authentication factor is obtained by sampling the user's own biometric data. Then, using the server's public key, Encryption is performed to obtain ciphertext. and ciphertext Send to the server, wherein, Indicates the biometric authentication factor The result obtained by performing a hash operation; The server first uses a private key authentication factor. For ciphertext Decrypt to obtain plaintext Furthermore, the server invokes the Eval algorithm of the hash function RPPH, using system parameters. and biometric authentication factor hash value and plain text and challenge number Calculate the authentication result .

8. A two-factor authentication system, characterized in that, include: Memory is used to store executable instructions for a computer; as well as, A processor configured to implement the steps of the method as described in any one of claims 1 to 7 when executing the computer-executable instructions.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions that, when executed by a processor, implement the steps of the method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Verification code authentication method and system based on biological characteristics

    CN111600869A

  • Safe online fingerprint matching method

    CN112329519A