A Biometric Key Verification Method Based on Zero-Knowledge Proof

Through the biometric key verification method based on zero-knowledge proof, the problem that users cannot verify the authenticity of the third-party generated keys and the leakage of privacy information is solved, and key authenticity verification and privacy protection are realized.

CN115085933BActive Publication Date: 2025-07-08HANGZHOU DIANZI UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210667683.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-14
Publication Date
2025-07-08
Estimated Expiration
2042-06-14

AI Technical Summary

Technical Problem

In the prior art, users cannot verify the authenticity of the biometric key generated by a third party, and there is a risk of leakage of the plain text transmission of the user's biometric information.

Method used

Using a biometric key verification method based on zero-knowledge proof, through system initialization, image preprocessing, public-private key construction, encryption and decryption processes, combined with the Pederson commitment scheme and Paillier algorithm, we ensure the authenticity of the key generated by the key generation center and protect user privacy.

Benefits of technology

It realizes the authenticity verification of the key generated by the key generation center by the user, and at the same time protects the user's privacy information from being leaked.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115085933B_ABST
    Figure CN115085933B_ABST
Patent Text Reader

Abstract

The present invention belongs to the field of information security technology and discloses a biometric key verification method based on zero-knowledge proof, which includes the following steps: Step 1: System initialization: In the system initialization stage, the key generation center randomly selects a local face database and uses the eigenface algorithm to calculate the eigenface template of the local face database; Step 2: Construct an encryption system; Step 3: Calculate and send identity information; Step 4: Generate keys and verification parameters; Step 5: Generate and send challenge values; Step 6: Calculate challenge value parameters; Step 7: Parameter verification and decryption of biometric keys. The present invention uses interactive zero-knowledge proof technology, which can not only satisfy the user's verification of the authenticity of the key generated by the key generation center based on biometric images, but also protect the user's privacy information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of information security, and particularly relates to a biometric key verification method based on zero-knowledge proof. Background Art

[0002] In related technologies, there is a solution where a user requests a biometric key from a third party using biometric information. However, in most cases, the process of generating the key by the third party is transparent to the user, so the user cannot judge the authenticity of the key generated by the third party. That is, the third party may tamper with or forge the biometric information submitted by the user to generate the key. At the same time, revealing the user's biometric information to the third party in plain text also poses a risk of information leakage. Summary of the Invention

[0003] The purpose of the present invention is to provide a biometric key verification method based on zero-knowledge proof to solve the above technical problems.

[0004] To solve the above technical problems, the specific technical solution of a biometric key verification method based on zero-knowledge proof of the present invention is as follows:

[0005] A biometric key verification method based on zero-knowledge proof includes the following steps:

[0006] Step 1: System initialization: In the system initialization stage, the key generation center randomly selects a face database locally, and uses the eigenface algorithm to calculate the eigenface template of the local face database;

[0007] Step 2: Construct an encryption system;

[0008] Step 2.1: First, perform preprocessing operations on the image:

[0009] Step 2.2: For the output image A in the image preprocessing stage, find its inverse element to generate a new image matrix A';

[0010] Step 2.3: Calculate the image hash;

[0011] Step 2.4: Construct the public and private keys of the user;

[0012] Step 2.5: Encrypt the personal image;

[0013] Step 3: Calculate and send the identity information;

[0014] Step 4: Generate the key and verification parameters;

[0015] Step 5: Generate and send the challenge value;

[0016] Step 6: Calculate the challenge value parameters;

[0017] Step 7: Parameter verification and decryption of the biometric key.

[0018] Further, the said Step 1 includes the following specific steps:

[0019] Step 1.1: Preprocess the face image;

[0020] Step 1.2: Convert the face image into a column vector: The grayscale image is a matrix. Connect each row of this matrix together to form a vector, and then convert this vector into a column vector;

[0021] Step 1.3: After converting all the images in the database into vectors and merging them, obtain a matrix. On this basis, perform zero-mean processing, that is, calculate the average of all faces in the corresponding dimension to obtain an average face vector. Finally, subtract the average face vector from the vector corresponding to each face image to complete the zero-mean processing;

[0022] Step 1.4: Combine the images that have undergone zero-mean processing to obtain a matrix, and obtain the covariance matrix of the PCA algorithm through this matrix; Calculate the eigenvalues and eigenvectors of the covariance matrix. The dimension of each eigenvector is the same as the dimension of the original image. Therefore, these eigenvectors can be regarded as an image, and these eigenvectors are the so-called eigenfaces; Select the first k largest eigenvectors V as the eigenface template, where V=(v1, v2,..., v k ), v i is the i-th eigenvector;

[0023] Step 1.5: Convert the values of the first k eigenvectors V to the finite field to obtain new k eigenvectors V′, where V′=(v′1, v′2,..., v′ k ); And add all the values within each eigenvector v′ i to obtain a new value a i , and finally obtain a vector A=(a1, a2,..., a k ). Each value in this vector A corresponds to the sum of the values of the vectors at the corresponding positions of the k eigenvectors V′ in the finite field;

[0024] Step 1.6: Calculate the commitment for each value in the vector A using the Pederson commitment scheme to obtain a new set of vectors, that is where com ck () is the commitment function, ck is the commitment key of the key generation center, r i is the random number selected when calculating the commitment. Finally, is announced to the entire network;

[0025] Furthermore, the step 2 includes the following specific steps:

[0026] Step 2.1: First, perform preprocessing operations on the image:

[0027] Step 2.1.1: First, obtain the face image;

[0028] Step 2.1.2: Grayscale the face image;

[0029] Step 2.1.3: Subsequently, resize the face image to convert it into an image of a fixed size;

[0030] Step 2.1.4: Denoise the image; exclude the noise interference caused by the surrounding environment or equipment during image acquisition;

[0031] Step 2.1.5: Perform histogram equalization on the image; broaden the gray values with a large number of pixels in the image and merge the gray values with a small number of pixels, thereby increasing the contrast, making the image clear, and achieving the purpose of enhancement;

[0032] Step 2.2: For the output image A in the image preprocessing stage, find its inverse element to generate a new image matrix A';

[0033] According to the formula f'(x) = 255 - f(x, y), find the corresponding inverse element of its image to generate a new image A', where f(x, y) is the pixel value at the coordinate (x, y) on the original image; f'(x, y) is the pixel value of the new image at the coordinate (x, y);

[0034] Step 2.3: Calculate the image hash; perform hash operations on the original image and the newly generated image; according to the formula Y = Hash(X), calculate the hash value of the image X, where Y is the output of the hash function; the adopted Hash function is SHA - 512, and perform hash operations on A and A' respectively to generate Y1 = Hash(A) and Y2 = Hash(A');

[0035] Step 2.4: Construct the public and private keys of the user;

[0036] According to the Paillier algorithm and the image hash value in step 2.3, construct the public and private keys of the user; where the large prime number p is the prime number greater than A and closest to A, the large prime number q is the prime number greater than A' and closest to A', and gcd(pq, (p - 1)(q - 1)) = 1.

[0037] According to the formula λ = lcm(p - 1, q - 1), calculate the least common multiple of p - 1 and q - 1;

[0038] According to the formula N = pq, calculate N;

[0039] Randomly select an integer g, and satisfy gcd(L(g λ mod N 2 ), N) = 1,

[0040] where mod represents the modulo operation, and gcd represents the operation of finding the greatest common multiple; G represents the elements in the set {0, 1, 2, 3,..., N 2 - 1}, and L(u) = u - 1 / N;

[0041] Finally, the public key is obtained as (g, N), and the private key is (p, q);

[0042] Step 2.5: Encrypt the personal image;

[0043] The user encrypts each pixel value of the obtained biometric image according to the public key (g, N) generated by the Paillier algorithm:

[0044] G(x, y) = g f(x,y) r N mod N 2

[0045] f(x, y) represents the pixel value of the pre - processed image at the coordinate (x, y); r is a random number, representing an element in the set {0, 1, 2,..., N} that is relatively prime to N; G(x, y) represents the encrypted value of the original image at the coordinate (x, y); Convert the encrypted biometric image into a vector form. The encrypted image is a matrix. By connecting each row of this matrix together, it can be turned into a vector, and then convert this vector into a column vector Γ′.

[0046] Furthermore, the step 3 includes the following specific steps:

[0047] Step 3.1: The user randomly selects a parameter Input the password Set the parameter υ = Γ′||e||pw′, where pw′ is the encrypted value of pw;

[0048] Step 3.2: The user calculates the identity information by calculating the parameter where is the digital signature of the parameter υ′, and υ′ is the hash value of the parameter υ;

[0049] Step 3.3: Finally, add the information of the parameter υ″, the public key batch, and the hash function H() to the request to the key generation center.

[0050] Furthermore, the step 4 includes the following specific steps:

[0051] Step 4.1: When receiving the key generation request sent by the user, the key generation center first verifies the authenticity of the request sent by the user by determining whether the following equation holds:

[0052]

[0053] If the above equation holds, then the user parses υ″ to obtain the user's encrypted biometric information, the random value e, and the encrypted password pw′;

[0054] Step 4.2: The key generation center uses the user's random value e to calculate a set of special vectors (C1, C2,..., C k ), where C i =(pw′·C) i·e , 1 ≤ i ≤ k, and the vector C is the encrypted form of the difference between the user's biometric image Γ and the mean ψ calculated from the selected face database;

[0055] Step 4.3: The key generation center uses the vectors (C1, C2,..., C k ) and the vectors (v′1, v′2…, v′ k ) to perform operations at corresponding positions to obtain a ciphertext vector (θ′1, θ′2,…, θ′ k ), and the calculation process is as follows:

[0056]

[0057] The calculation result is called the encrypted value of the key generated by the user's biometric image at the key generation center. The vector (θ′1, θ′2,…, θ′ k ) is represented by the vector (a1, a2,…, a k ), and at the same time, we represent the parameter k as μm′;

[0058] Suppose the vector a=(a1, a2,…, a n ), the vector b=(b1, b2,…, b n ), then Step 4.4: The key generation center randomly selects the parameter Calculate the parameter Select the vector b=(b0,…, b k ), s, And set b μ / 2 =0, s μ / 2 =0, τ μ / 2 =ρ, and in the loop of k ∈ [0,…, μ - 2], calculate the following equation:

[0059]

[0060]

[0061] Step 4.5: The key generation center encrypts the keys generated using the user's biometric features (θ′1, θ′2, …, θ′ k ), vector vector E = (E0, …, E k ), and parameter C are sent to the user.

[0062] Furthermore, the said step 5 includes the following specific steps:

[0063] After receiving the data sent by the key generation center, in order to verify the authenticity of the keys generated by the key generation center,

[0064] the user randomly selects a challenge value and sends it to the key generation center.

[0065] Furthermore, the said step 6 includes the following specific steps:

[0066] After receiving the challenge value from the user, the key generation center makes the following calculations:

[0067] Step 6.1: Set vector x = (1, x, …, x μ-2 ) T , calculate parameters s = s·x, b = b·x, ρ′ = τ·x, and send parameters s, b, and ρ′ to the user;

[0068] Step 6.2: Define parameters y i and C″

[0069]

[0070]

[0071] Step 6.3: For parameters l = 1, 2, …, m′, calculate parameter

[0072]

[0073]

[0074] Step 6.4: The key generation center sends parameters (r′1, …, r′ m′ ) and

[0075] to the user.

[0076] Furthermore, the said step 7 includes the following specific steps:

[0077] After receiving the parameters, the user checks and Whether it holds, and then judge

[0078] Whether the following equation holds:

[0079]

[0080]

[0081]

[0082]

[0083] If the above equation holds, accept the key generated by the key generation center;

[0084] The user uses their own private key sk to decrypt the encrypted parameters (θ′1, θ′2,..., θ′ k ) to obtain the plaintext form (θ1, θ2,..., θ k ) of the biometric-based key.

[0085] A biometric key verification method based on zero-knowledge proof of the present invention has the following advantages: The present invention uses interactive zero-knowledge proof technology, which can not only satisfy the user to verify the authenticity of the key generated by the key generation center based on the biometric image, but also protect the user's privacy information. Brief Description of the Drawings

[0086] Figure 1 is the overall flowchart of a biometric key verification method based on zero-knowledge proof of the present invention;

[0087] Figure 2 is the flowchart of the encryption system of a biometric key verification method based on zero-knowledge proof of the present invention;

[0088] Figure 3 is the flowchart of the image preprocessing stage of a biometric key verification method based on zero-knowledge proof of the present invention. Detailed Embodiments

[0089] In order to better understand the purpose, structure and function of the present invention, the following further describes in detail a biometric key verification method based on zero-knowledge proof of the present invention with reference to the accompanying drawings.

[0090] As Figure 1 shown, a biometric key verification method based on zero-knowledge proof of the present invention includes the following specific steps:

[0091] Step 1: System initialization. During the system initialization phase, the key generation center randomly selects a local face database. Using the eigenface algorithm, the eigenface templates of the local face database are calculated. The specific steps are as follows:

[0092] Step 1.1: Preprocess the face images. For example: perform operations such as resizing and grayscaling;

[0093] Step 1.2: Convert the face image into a column vector: The grayscaled image is a matrix. By concatenating each row of this matrix together, it can be transformed into a vector, and then this vector is converted into a column vector;

[0094] Step 1.3: After converting all the images in the database into vectors and merging them, a matrix can be obtained. On this basis, perform zero-mean processing, that is, calculate the average of all faces in the corresponding dimensions to obtain an average face vector. Finally, subtract this average face vector from the vector corresponding to each face image to complete the zero-mean processing;

[0095] Step 1.4: Combine the images that have undergone zero-mean processing to obtain a matrix. Through this matrix, the covariance matrix of the PCA algorithm can be obtained; calculate the eigenvalues and eigenvectors of the covariance matrix. The dimension of each eigenvector is the same as that of the original image, so these eigenvectors can be regarded as an image, and these eigenvectors are the so-called eigenfaces; we select the top k largest eigenvectors V as the eigenface templates. Where V=(v1, v2,..., v k ), v i is the i-th eigenvector;

[0096] Step 1.5: Transform the values of the top k eigenvectors V to the finite field to obtain new k eigenvectors V′, where V′=(v1′, v′2,..., v′ k ); and add all the values within each eigenvector v′ i to get a new value a i . Finally, a vector A=(a1, a2,..., a k ) will be obtained. Each value in this vector A corresponds to the sum of the values of the vectors at the corresponding positions of the k eigenvectors V′ within the finite field;

[0097] Step 1.6: Calculate the commitments for each value in the vector A using the Pederson commitment scheme to obtain a new set of vectors, that is where com ck () is the commitment function, ck is the commitment key of the key generation center, and r i is the random number selected when calculating the commitment. Finally, is announced to the entire network;

[0098] Note: This algorithm has additive homomorphic property: com ck (a + b; r1 + r2) = com ck (a; r1) · com ck (b; r2).

[0099] Step 2: Construct an encryption system.

[0100] Refer to Appendix Figure 2 , and make a further detailed description of the encryption system steps of the present invention.

[0101] Step 2.1: First, perform preprocessing operations on the image:

[0102] Refer to Appendix Figure 3 , and make a further detailed description of the image preprocessing steps of the present invention.

[0103] Step 2.1.1: First, obtain a face image;

[0104] Step 2.1.2: Grayscale the face image;

[0105] Step 2.1.3: Subsequently, resize the face image to convert it into an image of a fixed size;

[0106] Step 2.1.4: Denoise the image; exclude noise interference caused by the surrounding environment or equipment during image acquisition; common noises include: Gaussian noise, salt-and-pepper noise, Rayleigh noise, etc.; common image denoising methods include: mean filter, Gaussian filter, median filter, etc.

[0107] Step 2.1.5: Perform histogram equalization on the image.

[0108] The basic principle of histogram equalization is: expand the gray values with a large number of pixels in the image (i.e., the gray values that play a major role in the picture), and merge the gray values with a small number of pixels (i.e., the gray values that do not play a major role in the picture), so as to increase the contrast, make the image clear, and achieve the purpose of enhancement.

[0109] Step 2.2: For the output image A in the image preprocessing stage, find its inverse element to generate a new image matrix A'.

[0110] Find the corresponding inverse element of its image according to the formula f'(x) = 255 - f(x, y) to generate a new image A'. Where f(x, y) is the pixel value at the coordinate (x, y) on the original image; f'(x, y) is the pixel value at the coordinate (x, y) on the new image.

[0111] Step 2.3: Calculate the image hash.

[0112] Perform hash operations on the original image and the newly generated image; according to the formula Y = Hash(X), calculate the hash value of image X, where Y is the output of the hash function; the Hash function adopted in the present invention is SHA-512.

[0113] Perform hash operations on A and A' respectively to generate Y1 = Hash(A) and Y2 = Hash(A').

[0114] Step 2.4: Construct the public and private keys of the user.

[0115] Construct the public and private keys of the user according to the Paillier algorithm and the image hash values in Step 2.3; where the large prime number p is the prime number greater than A and closest to A, the large prime number q is the prime number greater than A' and closest to A', and gcd(pq, (p - 1)(q - 1)) = 1 is satisfied.

[0116] Calculate the least common multiple λ of p - 1 and q - 1 according to the formula λ = lcm(p - 1, q - 1).

[0117] Calculate N according to the formula N = pq.

[0118] Randomly select an integer g, and satisfy gcd(L(g λ mod N 2 ),N) = 1

[0119] where mod represents the modulo operation, and gcd represents the operation of finding the greatest common multiple; G represents the elements in the set {0, 1, 2, 3,..., N 2 - 1}, and L(u) = u - 1 / N.

[0120] Finally, the public key is obtained as (g, N), and the private key is (p, q).

[0121] Step 2.5: Encrypt the personal image.

[0122] The user encrypts each pixel value of the obtained biometric image according to the public key (g, N) generated by the Paillier algorithm:

[0123] G(x, y) = g f(x,y) r N modN 2

[0124] f(x, y) represents the pixel value of the preprocessed image at the coordinate (x, y); r is a random number, usually representing an element in the set {0, 1, 2,..., N} that is relatively prime to N; G(x, y) represents the encrypted value of the original image at the coordinate (x, y).

[0125] Convert the encrypted biometric image into a vector form. The encrypted image is a matrix. By concatenating each row of this matrix together, it can be transformed into a vector, and this vector is converted into a column vector Γ′.

[0126] Step 3: Calculate and send identity information.

[0127] Step 3.1: The user randomly selects parameters Input the password Set the parameter υ = Γ′||e||pw′, where pw′ is the encrypted value of pw.

[0128] Step 3.2: The user calculates the identity information by computing the parameter where is the digital signature of the parameter υ′, and υ′ is the hash value of the parameter υ.

[0129] Step 3.3: Finally, add the information of the parameter υ″, the public key pk, and the hash function H() to the request to the key generation center.

[0130] Step 4: Generate keys and verification parameters.

[0131] Step 4.1: When receiving the key generation request sent by the user, the key generation center first verifies the authenticity of the request sent by the user by determining whether the following equation holds:

[0132]

[0133] If the above equation holds, then the user parses υ″ to obtain the user's encrypted biometric information, the random value e, and the encrypted password pw'.

[0134] Step 4.2: The key generation center uses the user's random value e to calculate a set of special vectors (C1, C2,..., C k ). Where C i = (pw′·C) i·e , 1 ≤ i ≤ k, and the vector C is the encrypted form of the difference between the user's biometric image Γ and the mean ψ calculated from the selected face database.

[0135] Step 4.3: The key generation center performs operations on the corresponding positions of the vectors (C1, C2,..., C k ) and the vectors (v′1, v′2…, v′ k ) to obtain a ciphertext vector (θ′1, θ′2,…, θ′ k ), and the calculation process is as follows:

[0136]

[0137] We refer to the calculation result as the encrypted value of the key generated by the user's biometric image at the key generation center. For convenience, we represent the vector (θ′1, θ′2, …, θ′ k ) with the vector (a1, a2, …, a k ). At the same time, we represent the parameter k as μm′. Note: Assume the vector a = (a1, a2, …, a n ), the vector b = (b1, b2, …, b n ), then

[0138] Step 4.4: The key generation center randomly selects the parameter Calculate the parameter Select the vector b = (b0, …, b k ), s,[[]] And set b μ / 2 = 0, s μ / 2 = 0, τ μ / 2 = ρ. In the loop of k ∈ [0, …, μ - 2], calculate the following equation:

[0139]

[0140]

[0141] Step 4.5: The key generation center sends the encrypted value of the key generated using the user's biometric (θ′1, θ′2, …, θ′ k ), the vector The vector E = (E0, …, E k ) and the parameter C to the user.[[]]

[0142] Step 5: Generate and send the challenge value.[[]]

[0143] After receiving the data sent by the key generation center, in order to verify the authenticity of the key generated by the key generation center, the user randomly selects a challenge value And sends it to the key generation center.[[]]

[0144] Step 6: Calculate the challenge value parameter.[[]]

[0145] After receiving the user's challenge value, the key generation center makes the following calculations:

[0146] Step 6.1: Set the vector x = (1, x, …, x μ-2 ) T , calculate the parameters s = s · x, b = b · x, ρ′ = τ · x. Send the parameters s, b and ρ′ to the user.[[]]

[0147] Step 6.2: Define the parameter y iand C″

[0148]

[0149]

[0150] Step 6.3: For parameters l = 1, 2, …, m′, calculate the parameter

[0151]

[0152]

[0153] Step 6.4: The key generation center sends the parameters (a′1, …, a′ m′ ), (r′1, …, r′ m′ ) and to the user.

[0154] Step 7: Parameter verification and decryption of the biometric key.

[0155] After receiving the parameters, the user checks and to see if they hold. Then, it determines whether the following equations hold:

[0156]

[0157]

[0158]

[0159]

[0160] If the above equations hold, then the key generated by the key generation center is accepted.

[0161] The user uses their private key sk to decrypt the encrypted parameters (θ′1, θ′2, …, θ′ k ) to obtain the plaintext form (θ1, θ2, …, θ k ) of the biometric-based key.

[0162] It can be understood that the present invention is described by means of some embodiments. Those skilled in the art know that, without departing from the spirit and scope of the present invention, various changes or equivalent replacements can be made to these features and embodiments. Additionally, under the teaching of the present invention, these features and embodiments can be modified to adapt to specific situations and materials without departing from the spirit and scope of the present invention. Therefore, the present invention is not limited by the specific embodiments disclosed herein, and all embodiments falling within the scope of the claims of this application belong to the scope protected by the present invention.

Claims

1. A biometric key verification method based on zero-knowledge proof, characterized in that It includes the following steps: Step 1: System initialization: In the system initialization stage, the key generation center randomly selects a local face database and uses the eigenface algorithm to calculate the eigenface template of the local face database; Step 1.1: Perform preprocessing operations on the face images; Step 1.2: Convert the face image into a column vector: The grayscale processed image is a matrix. Connect each row of this matrix together to form a vector, and then convert this vector into a column vector; Step 1.3: After converting all the images in the database into vectors and merging them, a matrix is obtained. On this basis, zero-mean processing is performed, that is, the average of all face images is calculated in the corresponding dimension to obtain an average face vector. Finally, subtract the average face vector corresponding to each face image to complete the zero-mean processing; Step 1.4: Combine the zero-mean processed images together to obtain a matrix, and obtain the covariance matrix of the PCA algorithm through this matrix; calculate the eigenvalues and eigenvectors of the covariance matrix. The dimension of each eigenvector is the same as that of the original image. Therefore, these eigenvectors can be regarded as an image, and these eigenvectors are the so-called eigenfaces; select the top k largest eigenvectors V as the eigenface templates, where V = (v1, v2, …, v k ), v i is the i-th eigenvector; Step 1.5: Transform the values of the first k eigenvectors V to a finite field to obtain new k eigenvectors V', where V' = (v'1, v'2,..., v' k ); and add all the values within each eigenvector v' i to obtain a new value a i . Finally, a vector A = (a1, a2,..., a k ) is obtained, where each value in the vector A corresponds to the sum of the values of the vectors at the corresponding positions of the k eigenvectors V' within the finite field; Step 1.6: Calculate the commitment for each value in vector A using the Pederson commitment scheme to obtain a new set of vectors, namely where com ck () is the commitment function, ck is the commitment key of the key generation center, and r i is the random number selected when calculating the commitment. Finally, is announced to the entire network; Step 2: Construct an encryption system; Step 2.1: First, perform preprocessing operations on the image: Step 2.1.1: First, obtain the face image; Step 2.1.2: Perform grayscale processing on the face image; Step 2.1.3: Subsequently, resize the face image to convert it into an image of a fixed size; Step 2.1.4: Perform noise reduction processing on the image; Exclude noise interference caused by the surrounding environment or equipment when obtaining the image; Step 2.1.5: Perform histogram equalization processing on the image; Broaden the gray values with a large number of pixels in the image and merge the gray values with a small number of pixels; Step 2.2: For the output image A in the image preprocessing stage, find its inverse element to generate a new image matrix A'; According to the formula f′(x)=255 - f(x,y), find the corresponding inverse element of its image to generate a new image A', where f(x,y) is the pixel value at the coordinate (x,y) on the original image; f’(x,y) is the pixel value at the coordinate (x,y) on the new image; Step 2.3: Calculate the image hash; Perform hash operations on the original image and the newly generated image; According to the formula Y=Hash(X), calculate the hash value of the image X, where Y is the output of the hash function; The adopted Hash function is SHA-512, and perform hash operations on A and A’ respectively to generate Y1=Hash(A), Y2=Hash(A’); Step 2.4: Construct the public and private keys of the user; According to the Paillier algorithm and the image hash value in Step 2.3, construct the public and private keys of the user; Among them, the large prime number p is the prime number greater than A and closest to A, the large prime number q is the prime number greater than A’ and closest to A’, and it satisfies gcd(pq,(p - 1)(q - 1))=1; According to the formula λ=lcm(p - 1,q - 1), calculate the least common multiple of p - 1 and q - 1; According to the formula N=pq, calculate N; Randomly select an integer g such that gcd(L(g λ mod N 2 ), N) = 1, where mod represents the modulo operation, and gcd represents the operation of finding the greatest common multiple; G represents the elements within the set {0, 1, 2, 3, …, N 2 - 1}, and L(u) = u - 1 / N; Finally, the public key is (g,N), and the private key is (p,q); Step 2.5: Encrypt the personal image; The user encrypts each pixel value of the obtained biometric image according to the public key (g,N) generated by the Paillier algorithm: G(x,y) = g f(x,y) r N mod N 2 f(x,y) represents the pixel value of the preprocessed image at coordinates (x,y); r is a random number representing an element relatively prime to N in the set {0,1,2,…,N}; G(x,y) represents the encrypted value of the original image at coordinates (x,y); the encrypted biometric image is converted into a vector form. The encrypted image is a matrix. By concatenating each row of this matrix together, it can be transformed into a vector, and this vector is converted into a column vector Γ′; Step 2.1: First, perform preprocessing operations on the image: Step 2.2: For the output image A in the image preprocessing stage, find its inverse element to generate a new image matrix A′; Step 2.3: Calculate the image hash; Step 2.4: Construct the public and private keys of the user; Step 2.5: Encrypt the personal image; Step 3: Calculate and send the identity information; Step 3.1: The user randomly selects parameters Enter the password Set the parameter υ = Γ′ ∥e∥pw′, where pw′ is the encrypted value of pw; Step 3.2: The user calculates the identity information through the calculation parameter where is the digital signature of the parameter υ′, and υ′ is the hash value of the parameter υ; Step 3.3: Finally, add the information of parameter υ″, public key pk, and hash function H() to the request to the key generation center; Step 4: Generate the key and verification parameters; Step 4.1: When receiving the key generation request sent by the user, the key generation center first verifies the authenticity of the request sent by the user by determining whether the following equation holds: If the above equation holds, then the user parses υ″ to obtain the user's encrypted biometric information, random value e, and encrypted password pw′; Step 4.2: The key generation center uses the user's random value e to calculate a set of special vectors (C1, C2, …, C k ), where C i = (pw′·C) i·e , 1 ≤ i ≤ k, the vector C is the encrypted form of the difference between the user's biometric image Γ and the mean ψ calculated from the selected face database; Step 4.3: The key generation center uses the vectors (C1, C2, …, C k ) and the vectors (v′1, v′2…, v′ k ) to perform operations at corresponding positions to obtain a ciphertext vector (θ′1, θ′2, …, θ′ k ), and the calculation process is as follows: The computed result is called the encrypted value of the key generated by the user's biometric image at the key generation center. The vector (θ′1, θ′2, …, θ′ k ) is represented by the vector (a1, a2, …, a k ), and at the same time, the parameter k is expressed as μm′; Suppose vector a = (a1, a2, …, a n ), vector b = (b1, b2, …, b n ), then Step 4.4: The key generation center randomly selects a parameter Calculate the parameter Select a vector And set b μ / 2 = 0, s μ / 2 = 0, τ μ / 2 = ρ. In the loop of k ∈ [0, …, μ - 2], calculate the following equation: Step 4.5: The key generation center sends the encrypted values (θ1′, θ2′, …, θ′ k ) of the keys generated using the user's biometrics, the vector vector E = (E0, …, E k ), and the parameter C to the user; Step 5: Generate and send the challenge value; After the user receives the data sent by the key generation center, the user randomly selects a challenge value and sends it to the key generation center; Step 6: Calculate the challenge value parameters; After receiving the challenge value from the user, the key generation center makes the following calculations: Step 6.1: Set the vector x = (1, x, …, x μ-2 ) T , calculate the parameters s = s · x, b = b · x, ρ′ = τ · x, and send the parameters s, b, and ρ′ to the user; Step 6.2: Define parameters C′1, C′2, …, C′ m′ , y i and C″ Step 6.3: For parameters l = 1,2,…,m′, calculate the parameter Step 6.4: The key generation center sends the parameters (a′1,…,a′ m′ ), (r′1,…,r′ m′ ) and to the user; Step 7: Parameter verification and decrypt the biometric key; After the user receives the parameter, check and whether it holds, and then determine whether the following equation holds: If the above equation holds, then accept the key generated by the key generation center; The user decrypts the encrypted parameters (θ1′, θ2′, …, θ′ k ) using their own private key sk to obtain the plaintext form (θ1, θ2, …, θ k ) of the biometric-based key.

Citation Information

Patent Citations

  • Privacy identity authentication method based on feature face

    CN113591650A

  • Privacy protection biological authentication method and device and electronic equipment

    CN114065169A