Biometric feature matching method, terminal device, server, system and media

The encryption of biometric data using secret keys in terminal devices and servers allows secure biometric matching without exposing plaintext data, addressing the security risks associated with biometric data storage and transmission.

JP7895009B2Active Publication Date: 2026-07-24CHINA UNIONPAY
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
CHINA UNIONPAY
Filing Date
2023-12-04
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

Biometric data, being sensitive personal information, poses a significant security risk when stored or transmitted in plaintext form, particularly in biometric matching systems, as it can be vulnerable to leaks and misuse.

Method used

A biometric matching method involving encryption by terminal devices and servers using respective secret keys, constructing encrypted data with a Euclidean distance calculation operator to determine similarity without exposing plaintext data, ensuring secure matching results.

Benefits of technology

This approach enhances data security by preventing unauthorized access to biometric features, ensuring user control over their privacy data and reducing the risk of data breaches in biometric matching systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007895009000048
    Figure 0007895009000048
  • Figure 0007895009000049
    Figure 0007895009000049
  • Figure 0007895009000050
    Figure 0007895009000050
Patent Text Reader

Abstract

This application discloses a biometric feature matching method, a terminal device, a server, a system, and a medium, which belong to the data processing field. The method includes: obtaining second encrypted data by interacting with a server multiple times based on a first secret key, an acquired biometric feature vector to be matched, a preset generator, a second secret key, and first encrypted data, where the first encrypted data is obtained by the terminal device previously encrypting a sample biometric feature vector using the generator and the first secret key and is sent to the server, where a calculation operator including the second secret key and a target Euclidean distance is formed in the second encrypted data; and sending the second encrypted data to the server, so that the server obtains a matching result between the biometric feature vector to be matched and the sample biometric feature vector using the second encrypted data, the generator, the second secret key, and the preset Euclidean distance matching threshold.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application claims the priority of Chinese Patent Application No. 202310095121.8, titled "Biometric Matching Method, Terminal Device, Server, System and Medium", filed on January 20, 2023, the entire content of which is incorporated herein by reference.

[0002] This application belongs to the field of data processing, and particularly relates to a biometric matching method, terminal device, server, system and medium.

Background Art

[0003] With the development of information technology, biometric recognition technologies such as face recognition have been widely applied in scenarios such as identity authentication, authentication and verification. When performing matching using biometric identification technology, it is necessary to collect the user's biometric data in advance and upload it to the server as a matching sample. When the user performs biometric matching, the currently collected biometric data is compared with the biometric data that is the matching sample to achieve biometric matching.

[0004] However, the user's biometric features are the user's privacy data. If the matching samples stored in the server or the biometric data during upload are leaked, it may pose a great risk to the user's data security.

Summary of the Invention

Problems to be Solved by the Invention

[0005] Embodiments of this application provide a biometric matching method, terminal device, server, system and medium that can reduce the security risk of the user's privacy data.

[0006] In a first aspect, an embodiment of the present application is a biometric matching method applied to a terminal device, which obtains second encrypted data by performing multiple interactions and processes with a server based on a first private key, an acquired biometric feature vector to be matched, a preset generator, a second private key, and first encrypted data. The first private key is the private key of the terminal device, the second private key is the private key of the server, the first encrypted data is obtained by encrypting a sample biometric feature vector by the terminal device using the generator and the first private key in advance and then transmitting it to the server. The second encrypted data forms a calculation operator including the second private key and a target Euclidean distance, and the target Euclidean distance includes the Euclidean distance between the biometric feature vector to be matched and the sample biometric feature vector. The server transmits the second encrypted data to the server so as to obtain a matching result between the biometric feature vector to be matched and the sample biometric feature vector by using the second encrypted data, the generator, the second private key, and a preset Euclidean distance matching threshold. A biometric matching method is provided, which includes the above steps.

[0007] In a second embodiment, the embodiment of the present application is a biofeature matching method applicable to a server, wherein the terminal device interacts and processes with the terminal device multiple times based on a second secret key, first encrypted data, a first secret key, a pre-configured source, and a matching target biofeature vector obtained by the terminal device, the first secret key being the secret key of the terminal device, the second secret key being the secret key of the server, and the first encrypted data being obtained by the terminal device by encrypting a sample biofeature vector using the source and the first secret key in advance. The present invention provides a biofeature matching method that includes: obtaining and transmitting a second encrypted data to a server, forming a calculation operator in which a second secret key and a target Euclidean distance are included, and the target Euclidean distance includes the Euclidean distance between the biofeature vector to be matched and the sample biofeature vector; receiving the second encrypted data transmitted from a terminal device; and obtaining a matching result between the biofeature vector to be matched and the sample biofeature vector using the second encrypted data, the second secret key, the source, and a pre-set Euclidean distance matching threshold.

[0008] In a third embodiment, the embodiment of the present application is a terminal device including a first communication module and a first encryption module, wherein the first communication module and the first encryption module are configured to obtain second encrypted data by performing multiple interactions and processing with a server based on a first secret key, an acquired matching target biofeature vector, a pre-configured source, a second secret key, and first encrypted data, the first secret key being the secret key of the terminal device, the second secret key being the secret key of the server, and the first encrypted data being obtained by the terminal device using the source and the first secret key in advance to obtain a sample biofeature vector The first communication module is configured to send the second encrypted data to the server, where the first encrypted data is obtained by encrypting the source and sent to the server. The second encrypted data contains a calculation operator that includes a second secret key and a target Euclidean distance, where the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The terminal device is configured to send the second encrypted data to the server so that the server uses the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold to obtain a matching result between the matching target biofeature vector and the sample biofeature vector.

[0009] In a fourth embodiment, the embodiment of the present application is a server including a second communication module, a second encryption module, and a matching module, wherein the second communication module and the second encryption module are configured to interact and process with a terminal device multiple times based on a second secret key, first encrypted data, a first secret key, a pre-configured source, and a matching target biofeature vector obtained by the terminal device, so that the terminal device obtains second encrypted data, the first secret key being the secret key of the terminal device, the second secret key being the secret key of the server, and the first encrypted data being a sample biofeature vector obtained by the terminal device using the source and the first secret key in advance. The system provides a server in which a second encrypted data is obtained by encrypting a vector and transmitted to a server, the second encrypted data contains a calculation operator that includes a second secret key and a target Euclidean distance, the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector, the second communication module is further configured to receive the second encrypted data transmitted from the terminal device, and the matching module is configured to obtain a matching result between the matching target biofeature vector and the sample biofeature vector using the second encrypted data, the second secret key, the source and a preset Euclidean distance matching threshold.

[0010] In a fifth embodiment, the present invention provides a terminal device comprising a processor and a memory storing computer program instructions, wherein the processor, upon executing the computer program instructions, realizes the bio-feature matching method of the first embodiment.

[0011] In a sixth embodiment, the present invention provides a server comprising a processor and a memory storing computer program instructions, wherein when the processor executes the computer program instructions, the server realizes the biofeature matching method of the second embodiment.

[0012] In a seventh embodiment, the embodiment of the present application provides a bio-feature matching system including a terminal device in the fifth embodiment and a server in the sixth embodiment.

[0013] In an eighth embodiment, the present invention provides a computer-readable storage medium in which computer program instructions are stored, wherein when the computer program instructions are executed by a processor, a bio-feature matching method according to the first embodiment or a bio-feature matching method according to the second embodiment is realized.

[0014] Embodiments of this application provide a biofeature matching method, terminal equipment, server, system, and medium, wherein the terminal equipment and server can perform multiple interactions and processes based on a first secret key, a biofeature vector to be matched, a source, a second secret key, and first encrypted data, the terminal equipment has the first secret key, the biofeature to be matched, and the source, and the server has the second secret key and the first encrypted data. The terminal device can obtain second encrypted data through encryption processing using the first secret key by the terminal device, encryption processing using the second secret key by the server, and data interaction between the terminal device and the server. This second encrypted data includes a calculation operator that includes the second secret key and a target Euclidean distance that can represent the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second encrypted data contains the second secret key, and the terminal device cannot know the second secret key, making it difficult to obtain the plaintext of the matching target biofeature vector and the sample biofeature vector through decryption. Similarly, the server cannot know the first secret key, making it difficult to decrypt the first encrypted secret key. Furthermore, the server determines the matching result between the matching target biofeature vector and the sample biofeature vector based on the second encrypted data, the source, the second secret key, and a pre-set Euclidean distance matching threshold. This allows the server to complete the matching regardless of the plaintext of the matching target biofeature vector and the sample biofeature vector, further reducing the security risk of the user's privacy data and improving the security of biofeature matching. [Brief explanation of the drawing]

[0015] To more clearly explain the technical concept of the embodiments of this application, the necessary drawings for the embodiments of this application are briefly introduced below, and those skilled in the art can obtain other drawings based on these drawings without requiring any creative work.

[0016] [Figure 1] This is an architectural diagram of a biofeature matching system according to an embodiment of this application. [Figure 2] This is a flowchart of a biofeature matching method according to one embodiment of the first aspect of this application. [Figure 3] This is a flowchart of a biofeature matching method according to another embodiment of the first aspect of this application. [Figure 4] This is a flowchart of a biofeature matching method according to an embodiment of the second aspect of this application. [Figure 5] This is a flowchart of a biofeature matching method according to another embodiment of the second aspect of this application. [Figure 6] This is a schematic diagram of a terminal device according to one embodiment of the third aspect of this application. [Figure 7] This is a schematic diagram of a server according to one embodiment of the fourth aspect of this application. [Figure 8] This is a schematic diagram of a terminal device according to one embodiment of the fifth aspect of this application. [Figure 9] This is a schematic diagram of a server according to one embodiment of the sixth aspect of this application. [Modes for carrying out the invention]

[0017] The following describes in detail the features and exemplary embodiments of each aspect of this application, and further describes this application with reference to the drawings and specific examples, so that the purpose, technical proposal and advantages of this application may be more clearly understood. It should be understood that the specific examples described herein are for illustrative purposes only and do not limit this application. Those skilled in the art may implement this application without requiring some of these specific details. The following description of embodiments is provided solely to illustrate the application and to help you better understand it.

[0018] With the advancement of information technology, biometric recognition technologies such as facial recognition are being widely applied in situations such as identity verification, authentication, and verification. When using biometric recognition technology for matching, it is necessary to collect the user's biometric data in advance and upload it to the server as a matching sample. When a user performs biometric matching, the currently collected biometric data is compared with the biometric data that serves as the matching sample to achieve biometric matching. However, a user's biometric data is private data, and if the matching sample stored on the server or the biometric data being uploaded is leaked, it could pose a significant risk to the user's data security.

[0019] This application provides a biometric matching method, terminal device, server, system, and medium in which a terminal device encrypts biometric feature vectors using its own secret key, interacts with a server, and the server encrypts the received data using its own secret key. By performing encryption processing using the terminal device's own secret key and encryption processing using the server's own secret key, encrypted data including a Euclidean distance calculation operator that can represent the similarity between the biometric feature vector to be matched and the sample biometric feature vector is constructed, and by obtaining a matching result using this encrypted data, biometric matching can be achieved even when plaintext data of biometric features is not stored in either the terminal device or the server, thereby reducing the security risk of user privacy data and improving the security of biometric matching.

[0020] Furthermore, in this application, all acquisition, storage, use, and processing of information and data are carried out with the permission of the user or relevant organization and in accordance with the relevant provisions of national laws and regulations.

[0021] The biometric feature matching method, terminal equipment, server, system, and media according to the embodiments of this application can be applied to situations requiring identity identification, such as payment, time stamping, and access permits, and are not limited thereto. The biometric feature matching method, terminal equipment, server, system, and media according to this application will be described below.

[0022] For ease of understanding, this specification will first briefly describe the system architecture to which the biofeature matching method according to the embodiment of this application is applied. Figure 1 is an architectural diagram of the biofeature matching system according to the embodiment of this application, and as shown in Figure 1, the biofeature matching system may include terminal equipment 11 and a server 12.

[0023] The terminal device 11 may be a device used by a user, and may have an application program installed that requires biometric identification functionality, or the operating system of the terminal device 11 itself must have biometric identification functionality, but is not limited here. The terminal device 11 can collect and process the user's biometric data. For example, the terminal device 11 may include devices such as mobile phones, tablet computers, smart wearable devices, time recorders, and vending machines, and is not limited here to the type and number of terminal devices 11. The terminal device 11 can communicate and interact with the server 12. In the embodiment of this application, the terminal device 11 has its own secret key, i.e., a first secret key, and can encrypt data.

[0024] Server 12 can communicate and interact with terminal device 11 and receive data transmitted from terminal device 11. Server 12 stores encrypted sample biometric data, including biometric data as a matching sample or identification sample. In the embodiment of this application, Server 12 has its own secret key, i.e., a second secret key, and can encrypt the data. Server 12 can obtain matching results and feed the matching results back to terminal device 11. The type and number of Server 12 are not limited here.

[0025] A first aspect of this application provides a biofeature matching method that can be applied to a terminal device, that is, can be performed by a terminal device. Figure 2 is a flowchart of a biofeature matching method according to one embodiment of the first aspect of this application, and as shown in Figure 2, the biofeature matching method may include steps S201 and S202.

[0026] In step S201, based on the first secret key, the acquired matching target biometric feature vector, the pre-configured generator, the second secret key, and the first encrypted data, the system interacts with the server multiple times and performs processing to obtain the second encrypted data.

[0027] The terminal device has a first secret key, a matching biometric feature vector, and a generator. The first secret key is the secret key of the terminal device, and the server cannot know the first secret key. The matching biometric feature vector is a vector transformed from the matching biometric data. The terminal device can collect the matching biometric data, which is the original biometric data to be matched, and the terminal device can use a vector transformation model to transform the matching biometric data into a matching biometric feature vector. The matching biometric data may include one or more types from among face data, fingerprint data, palm vein data, iris data, etc., and is not limited thereto. The vector transformation model can be selected to match the type of original biometric data, and the type of vector transformation model is not limited hereto. For example, the matching biometric data may include face data, and the face data may specifically be face image data. A model such as OpenFace or Eigenface may be selected to extract features from the face data and form a face feature vector.

[0028] The server possesses a second secret key and first encrypted data. The second secret key is the server's secret key, and terminal devices cannot know it. The first encrypted data is obtained by the terminal device using the source and the first secret key to encrypt a sample biometric feature vector, and is sent to the server. The terminal device can convert the acquired sample biometric data into a sample biometric feature vector. The sample biometric data may include one or more types of data, such as face data, fingerprint data, palm vein data, and iris data, but is not limited thereto. The vector transformation model for converting sample biometric data into a sample biometric feature vector can be the same as the vector transformation model for converting matching target biometric data into matching target biometric feature vectors. The source can be predetermined between the terminal device and the server, and can be one type of basic data involved in the encryption process of both the terminal device and the server.

[0029] The terminal device can encrypt the matching target biometric feature vector using the source and the first secret key, and can also encrypt data transmitted from the server. The data encrypted by the terminal device is sent to the server, which can then encrypt the data transmitted from the terminal device. The server can also encrypt the data using the second secret key. Through encryption and data interaction between the terminal device and the server, the terminal device can construct the second encrypted data. The second encrypted data is essentially obtained based on data encryption by the terminal device, data encryption by the server, and interaction between the terminal device and the server. The second encrypted data includes a computational operator containing the second secret key and the target Euclidean distance. The target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The target Euclidean distance can represent the similarity between the matching target biofeature vector and the sample biofeature vector. A smaller target Euclidean distance indicates a higher similarity between the matching target biofeature vector and the sample biofeature vector, suggesting a higher probability that the user corresponding to the matching target biofeature vector and the user corresponding to the sample biofeature vector are the same user.

[0030] A computational operator can be considered a component of data obtained through a computational process. Here, computational process is a broad term and can include various computational methods. For example, encryption, transformation, mapping, and determination processes can all be considered computational processes. For example, if parameters A, B, and C are involved in a computational process and data AC × (A + B) is obtained, then AC and (A + B) can both be computational operators formed within the data. The computational operator AC may include A, or it may include C. Also, for example, if parameters A, B, and C are involved in a computational process, A BCWhen obtaining data such that BC is a calculation operator formed within the data, the calculation operator BC may be a calculation operator containing B, or a calculation operator containing C. In some examples, the calculation operator may include a modular exponential operator or a dot product operator. A modular exponential operator is a calculation operator in exponential form, for example, data A BC It can be said that a modular exponential operator BC containing B is formed, or that a modular exponential operator BC containing C is formed. The dot product operator is an operator in multiplier form, and for example, in data AC × (A + B), AC and (A + B) can be considered as dot product operators, and the calculation operator AC can be considered as a dot product operator containing A, and the calculation operator AC can also be considered as a dot product operator containing C. In the second encrypted data, a calculation operator is formed that contains the second secret key and the target Euclidean distance, where the second secret key is b and the matching target biofeature vector is an n-dimensional vector X(x1, x2, x3, ..., x i ,······,x n ), the sample biological feature vector is converted into an n-dimensional vector Y(y1,y2,y3,······,y i ,······,y n ) and in response, the Euclidean distance between the matching target biofeature vector and the sample biofeature vector is

number

number

number

number

number

[0031] In some examples, the first secret key may be a random number generated by the terminal device, and the second secret key may be a random number generated by the server. To further enhance data security, the first secret key may be a large integer with at least 128 bits occupied, for example, the first secret key may be a large integer with 256 bits occupied, and similarly, the second secret key may be a large integer with at least 128 bits occupied, for example, the second secret key may be a large integer with 256 bits occupied. By setting the first and second secret keys to have 128 bits or more, the requirements for encryption security strength can be met, further enhancing the security of users' personal privacy data and further enhancing the security of biometric matching.

[0032] In step S202, the second encrypted data is sent to the server so that the server can use the second encrypted data, the second secret key, the source, and a pre-configured Euclidean distance matching threshold to obtain a matching result between the target biofeature vector and the sample biofeature vector.

[0033] The server constructs data that matches the format of the second encrypted data using the second secret key, source, and a pre-set Euclidean distance matching threshold. By comparing the second encrypted data with the data constructed using the second secret key, source, and pre-set Euclidean distance matching threshold, the server can obtain a matching result between the target biofeature vector and the sample biofeature vector. The pre-set Euclidean distance matching threshold is a threshold for determining whether two vectors are identical, and can be set according to the scene, needs, experience, etc., and is not limited here. If the target Euclidean distance is less than or equal to the pre-set Euclidean distance matching threshold, it indicates that the matching between the target biofeature vector and the sample biofeature vector was successful, i.e., the matching result is a successful match. On the other hand, if the target Euclidean distance is greater than the pre-set Euclidean distance matching threshold, it indicates that the matching between the target biofeature vector and the sample biofeature vector failed, i.e., the matching result is a failed match. The second encrypted data includes a calculation operator that includes the second secret key and the target Euclidean distance, and the data constructed by the server using the second secret key, the source, and the pre-configured Euclidean distance matching threshold also includes a calculation operator that includes the second secret key and the pre-configured Euclidean distance matching threshold. Therefore, the result of comparing the second encrypted data with the data constructed by the server using the second secret key, the source, and the pre-configured Euclidean distance matching threshold corresponds to the result of comparing the target Euclidean distance with the pre-configured Euclidean distance matching threshold. Thus, the result of comparing the second encrypted data with the data constructed by the server using the second secret key, the source, and the pre-configured Euclidean distance matching threshold can be used to determine the result of comparing the target Euclidean distance with the pre-configured Euclidean distance matching threshold, and this result can represent the matching result.

[0034] In the embodiment of this application, the terminal device and the server can perform multiple interactions and processes based on a first secret key, a matching target biofeature vector, a source, a second secret key, and first encrypted data. The terminal device possesses the first secret key, the matching target biofeature, and the source, while the server possesses the second secret key and the first encrypted data. Through encryption processing by the terminal device using the first secret key, encryption processing by the server using the second secret key, and data interaction between the terminal device and the server, the terminal device can obtain second encrypted data that includes the second secret key and a calculation operator that includes a target Euclidean distance capable of representing the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second encrypted data contains the second secret key, and the terminal device cannot know the second secret key, making it difficult to obtain the plaintext of the matching target biofeature vector and the sample biofeature vector through decryption. For similar reasons, the server cannot know the first secret key, and it is difficult to decrypt the first encrypted secret key. Furthermore, the server determines the matching result between the target biometric feature vector and the sample biometric feature vector based on the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold. This allows the matching to be completed regardless of the plaintext of the target biometric feature vector and the sample biometric feature vector, further reducing the security risk of the user's privacy data and improving the security of biometric matching. Since the terminal equipment and server do not store the plaintext of the target biometric feature vector and the sample biometric feature vector, the user's control over their personal privacy data can be ensured. This limits the usage scenarios of personal privacy data, satisfies the principle of minimum use of personal privacy data, and prevents misuse of personal privacy data.

[0035] Furthermore, in the embodiments of this application, encryption is performed on the matching target biofeature vector and the sample biofeature vector, and the matching result is determined by comparing the encrypted data. If the types of matching target biodata and sample biodata are different, the available vector transformation models may also be different. However, in the embodiments of this application, the similarity of the biodata is described by the similarity of the feature vectors. In the biofeature matching process in the embodiments of this application, the process for protecting personal privacy data and the transformation process for transforming the matching target biodata into matching target biofeature vectors and the sample biodata into sample biofeature vectors may be independent of each other. This realizes an assembly-and-plug-in technology for the vector transformation model and the biofeature matching model, that is, it realizes decoupling between the vector transformation model and the biofeature matching model.

[0036] In some embodiments, multiple intermediate encrypted data can be generated in the interaction and processing process between terminal equipment and a server, and a second encrypted data can be obtained by further processing the multiple intermediate encrypted data. Figure 3 is a flowchart of a biofeature matching method according to another embodiment of the first aspect of the present application, and Figure 3 and Figure 2 differ in that step S201 in Figure 2 can be specifically subdivided into steps S2011 to S2013 in Figure 3.

[0037] In step S2011, the first intermediate encrypted data sent from the server is received.

[0038] The first intermediate encrypted data is obtained by the server encrypting the first encrypted data using the second secret key. In the first encrypted data, a calculation operator including the first secret key and elements in the sample biometric vector can be formed. Further, in the first encrypted data, a calculation operator including the product of the first secret key and elements in the sample biometric vector can be formed. For example, if the first secret key is a and the sample biometric vector is an n-dimensional vector Y(y1, y2, y3, ······, y i , ······, y n ), then the first encrypted data may include the calculation operator ay i , and the first encrypted data may include the calculation operator ay i 2 , where i = 1, 2, ···, n, and the calculation operator ay i to may include the calculation operator ay i 2 .

[0039] The server can obtain the first intermediate encrypted data by encrypting the first encrypted data using the second secret key. In the first intermediate encrypted data, a calculation operator including the product of the first secret key, the second secret key, and elements in the sample biometric vector can be formed. In the first encrypted data, a calculation operator of the product of the first secret key and elements in the sample biometric vector is included, and the second secret key is used to participate in the encryption operation, so that the calculation operator including the product of the first secret key and elements in the sample biometric vector is further multiplied by the second secret key, thereby obtaining the first intermediate encrypted data in which a calculation operator including the product of the first secret key, the second secret key, and elements in the sample biometric vector is formed. For example, if the first secret key is a, the second secret key is b, and the sample biometric vector is an n-dimensional vector Y(y1, y2, y3, ······, y i , ······, y n ), then the first intermediate encrypted data may include the calculation operator aby i .

[0040] In step S2012, second intermediate encrypted data is obtained based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key.

[0041] At least some of the data in the second intermediate encrypted data is obtained based on the first intermediate encrypted data, and the second intermediate encrypted data has a computational operator formed that includes the product of the first secret key and the elements in the matching biofeature vector. For example, if the first secret key is a and the matching biofeature vector is an n-dimensional vector X(x1, x2, x3, ..., x i ,······,x n If this is the case, the second intermediate encrypted data will contain ax i A computational operator including ax can be formed. The second intermediate encrypted data is ax so that the second encrypted data can be constructed in a subsequent step. i It may be further constructed based on this. The second intermediate encrypted data may be used in subsequent steps to participate in the construction of the target Euclidean distance.

[0042] In some examples, the second intermediate encrypted data includes the first intermediate encrypted subdata and the second intermediate encrypted subdata. Step S2012 may be further subdivided into obtaining the first intermediate encrypted subdata based on the first intermediate encrypted data and the matching biofeature vector, and obtaining the second intermediate encrypted subdata based on the first secret key, origin and matching biofeature vector.

[0043] The first intermediate encrypted subdata contains the first secret Key and A computational operator is formed that includes the product of elements in the sample biofeature vector and elements in the matching target biofeature vector. For example, if the first secret key is a, the second secret key is b, and the sample biofeature vector is an n-dimensional vector Y(y1, y2, y3, ..., y i ,······,y n ), the matching target biological feature vector is an n-dimensional vector X(x1, x2, x3, ..., x i,······,x n If ), the first intermediate encrypted subdata is abx i y i Within the first intermediate encrypted subdata, a computational operator -2abx can be formed so that the target Euclidean distance can be constructed in a subsequent process. i y i It may include

[0044] The second intermediate encrypted subdata contains a computational operator that includes the product of the first secret key, the second secret key, and the elements in the matching biofeature vector, for example, if the first secret key is a and the matching biofeature vector is an n-dimensional vector X(x1, x2, x3, ..., x i ,······,x n If this is the case, the second intermediate encrypted data will contain ax i A computational operator including the computational operator ax can be formed, and in the subsequent process, the target Euclidean distance can be constructed, so that the second intermediate encrypted data contains the computational operator ax. i 2 It may include

[0045] In step S2013, the system interacts with the server and processes the data based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key. The first secret key is then removed from the processed data to obtain the second encrypted data.

[0046] After obtaining the second intermediate encrypted data, the second intermediate encrypted data is sent to the server so that the server performs encryption processing based on the second intermediate encrypted data, the encrypted data is then fed back to the terminal device, and the terminal device processes the received data to obtain the second encrypted data. In the embodiment of this application, the second encrypted data can be obtained based on the second intermediate encrypted data through processing performed by the terminal device, processing performed by the server, and data interaction between the terminal device and the server.

[0047] In some examples, the second intermediate encrypted data is sent to the server so that the server can obtain the third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key. The third intermediate encrypted data is received from the server. The first secret key is used to remove the first secret key from the third intermediate encrypted data to obtain the second encrypted data.

[0048] The server can perform calculations on the second intermediate encrypted data and the first encrypted data to obtain the third intermediate encrypted data. The second intermediate encrypted data includes the first intermediate encrypted subdata and the second intermediate encrypted subdata. The specific contents of the first intermediate encrypted subdata and the second intermediate encrypted subdata can be found in the relevant explanation in the above embodiment and will not be repeated here. The server can obtain the third intermediate encrypted data by performing calculations on the first intermediate encrypted subdata, the second intermediate encrypted subdata, and the first encrypted data. The third intermediate encrypted data has a calculation operator formed that includes the product of the first secret key, the second secret key, and the target Euclidean distance. For example, if the first secret key is a, the second secret key is b, and the matching target biofeature vector is an n-dimensional vector X(x1,x2,x3,······,x i ,······,x n ), the sample biological feature vector is an n-dimensional vector Y(y1,y2,y3,······,y i ,······,y n If this is the case, the third intermediate encrypted data is

number

number

number

number

[0049] Through interaction between the terminal device and the server, the terminal device and the server can perform further processing based on the data they receive, and through interaction and reprocessing of the intermediate encrypted data, they can construct second encrypted data. The entire processing process ensures security and reliability regardless of whether the matching target biometric feature vector is in plaintext or the sample biometric feature vector is in plaintext.

[0050] In some embodiments, the server can determine whether the matching between the target biofeature vector and the sample biofeature vector was successful by determining whether the second encrypted data belongs to the matching data set. The matching data set may be generated by the server, and the maximum value of the elements in the matching data set is obtained based on the second secret key and a preset Euclidean distance matching threshold. In some examples, the maximum value of the elements in the matching data set is given a calculation operator that includes the product of the second secret key and the preset Euclidean distance matching threshold, where the preset Euclidean distance matching threshold may be the preset Euclidean distance matching threshold itself or the preset Euclidean distance matching threshold after integerization, and is not limited thereto.

[0051] If the second encrypted data belongs to the matching data set, the matching result includes a successful match; if the second encrypted data does not belong to the matching data set, the matching result includes a failed match. The second encrypted data belonging to the matching data set means that the target Euclidean distance is less than or equal to a pre-set Euclidean distance matching threshold. The second encrypted data not belonging to the matching data set means that the target Euclidean distance is greater than a pre-set Euclidean distance matching threshold.

[0052] In some embodiments, the elements in the target biofeature vector, the elements in the sample biofeature vector, and the pre-set Euclidean distance matching threshold are integerized by a single factor; that is, the elements in the target biofeature vector, the elements in the sample biofeature vector, and the pre-set Euclidean distance matching threshold, all integerized by a single factor, are all integers, and the multiples are the same as the original elements in the target biofeature vector, the elements in the sample biofeature vector, and the pre-set Euclidean distance matching threshold. Correspondingly, since the pre-set Euclidean distance matching threshold, integerized by a single factor, is an integer, and the number of elements in the matching data set is finite, a computational operator is formed in the matching data set that includes the product of the second secret key and each of the squares of the pre-set Euclidean distance matching threshold, which is integerized from 0. For example, if the second secret key is b and the pre-set Euclidean distance matching threshold is θ, the computational operators associated with the matching data set are b×0, b×1, b×2, ..., b×θ 2 It can include...

[0053] In some embodiments, to improve the efficiency of biometric feature matching, a Bloom filter can be used to determine the relationship between the second encrypted data and the matching data set. If all the values ​​at the positions corresponding to the K target hash values ​​in a pre-constructed Bloom filter lookup table are 1, it can be determined that the second encrypted data belongs to the matching data set. If at least one of the values ​​at the positions corresponding to the K target hash values ​​in the Bloom filter lookup table is 0, it can be determined that the second encrypted data does not belong to the matching data set.

[0054] K target hash values ​​are calculated using K hash functions based on the second encrypted data. For each second encrypted data, one target hash value can be calculated using one hash function. Each second encrypted data corresponds to one of the K target hash values. K is a positive integer and can be set according to the scene, needs, experience, etc., and is not limited thereto. The values ​​in the Bloom filter lookup table are calculated using K hash functions based on the elements in the matching data set. The Bloom filter lookup table may be generated by the server. Specifically, the server can calculate each element in the matching data set using K hash functions to obtain K hash values ​​corresponding to each element, map the K hash values ​​corresponding to each element to K positions in a binary array where all values ​​are 0, update the values ​​at the K positions corresponding to each element to 1, and determine the updated binary array as the Bloom filter lookup table. The K hash functions used to generate the Bloom filter lookup table are the same as the K hash functions used to calculate the K target hash values. In some examples, the binary array is a binary array where, before the update, all values ​​at each position are 0, and each position in the binary array may be represented by the index of an element in the binary array, and the hash value corresponding to the element may be mapped to the position in the binary array, specifically, the hash value corresponding to the element may be mapped to the index of an element in the binary data.

[0055] By using a Bloom filter to determine whether the second encrypted data belongs to the matching data set, the speed of determining whether the second encrypted data belongs to the matching data set can be increased. In particular, when the number of matching target biofeature vectors and sample biofeature vectors is very large, the efficiency of biofeature matching can be greatly improved.

[0056] In some embodiments, before matching the target biofeature vector with the sample biofeature vector, the terminal device can generate first encrypted data and send the first encrypted data to the server so that the server stores the first encrypted data. Specifically, the terminal device can acquire a sample biofeature vector, encrypt the sample biofeature vector using the source and the first secret key to obtain first encrypted data, and send the first encrypted data to the server. The first encrypted data contains a calculation operator that includes the product of the first secret key and the elements in the sample biofeature vector. For details, please refer to the relevant explanation in the embodiments described above, which will not be repeated here.

[0057] The first encrypted data contains the first secret key, and since the server cannot know the first secret key, it is difficult for the server to decrypt the first encrypted data, thus ensuring the security of personal privacy data when it is stored on the server.

[0058] A second aspect of this application provides a biofeature matching method that can be applied to a server, that is, the biofeature matching method can be executed by a server. Figure 4 is a flowchart of a biofeature matching method according to one embodiment of the second aspect of this application, and as shown in Figure 4, the biofeature matching method may include steps S301 to S303.

[0059] In step S301, the terminal device interacts with and processes the system multiple times based on the second secret key, the first encrypted data, the first secret key, a pre-configured source, and the matching target biometric feature vector obtained by the terminal device, so that the terminal device obtains the second encrypted data.

[0060] The first secret key is the secret key of the terminal device. The second secret key is the secret key of the server. The first encrypted data is obtained by the terminal device encrypting the sample biofeature vector using the source and the first secret key, and then sent to the server. The second encrypted data has a calculation operator formed that includes the second secret key and the target Euclidean distance. The target Euclidean distance includes the Euclidean distance between the matching biofeature vector and the sample biofeature vector.

[0061] In some examples, the calculation operators may include modular exponential operators or dot product operators.

[0062] In step S302, the second encrypted data transmitted from the terminal device is received.

[0063] In step S303, the matching result between the target biofeature vector and the sample biofeature vector is obtained using the second encrypted data, the second secret key, the source, and a pre-set Euclidean distance matching threshold.

[0064] For specific details of steps S301 to S303 described above, please refer to the relevant explanations in the above embodiment, and they will not be repeated here.

[0065] In the embodiment of this application, the server and terminal device can perform multiple interactions and processes based on a first secret key, a matching target biofeature vector, a source, a second secret key, and first encrypted data. The terminal device possesses the first secret key, the matching target biofeature, and the source, while the server possesses the second secret key and the first encrypted data. Through encryption processing by the terminal device using the first secret key, encryption processing by the server using the second secret key, and data interaction between the terminal device and the server, the terminal device can obtain second encrypted data that includes the second secret key and a calculation operator for the target Euclidean distance that can represent the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second encrypted data contains the second secret key, and the terminal device cannot know the second secret key, making it difficult to obtain the plaintext of the matching target biofeature vector and the sample biofeature vector through decryption. For similar reasons, the server cannot know the first secret key, and it is also difficult to decrypt the first encrypted secret key. Furthermore, the server determines the matching result between the target biometric feature vector and the sample biometric feature vector based on the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold. This allows the matching to be completed regardless of the plaintext of the target biometric feature vector and the sample biometric feature vector, thereby reducing the security risk of the user's privacy data and improving the security of biometric matching. Since the terminal equipment and server do not store the plaintext of the target biometric feature vector and the sample biometric feature vector, the user's control over their personal privacy data can be ensured. This limits the usage scenarios of personal privacy data, satisfies the principle of minimum use of personal privacy data, and prevents misuse of personal privacy data.

[0066] Furthermore, in the embodiments of this application, encryption is performed on the target biofeature vector and the sample biofeature vector, and the matching result is determined by comparing the encrypted data. If the types of target biodata and sample biodata are different, the available vector transformation models may also be different. However, in the embodiments of this application, the similarity of the biodata is described by the similarity of the feature vectors. In the biofeature matching process in the embodiments of this application, the process for protecting personal privacy data and the transformation process for transforming the target biodata into a target biofeature vector and the sample biodata into a sample biofeature vector may be independent of each other. This realizes an assembly-and-plug-in technology for the vector transformation model and the biofeature matching model, that is, it realizes decoupling between the vector transformation model and the biofeature matching model.

[0067] In some embodiments, multiple intermediate encrypted data may be generated during the interaction and processing between the server and terminal equipment, and a second encrypted data may be obtained by further processing the multiple intermediate encrypted data. Figure 5 is a flowchart of a biofeature matching method according to another embodiment of the second aspect of this application, and Figure 5 differs from Figure 4 in that step S301 in Figure 4 may be specifically subdivided into steps S3011 to S3013 in Figure 5, and step S303 in Figure 4 may be specifically subdivided into steps S3031 to S3033 in Figure 5.

[0068] In step S3011, the first encrypted data is encrypted using the second secret key to obtain the first intermediate encrypted data.

[0069] The first intermediate encrypted data is given a computational operator that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector.

[0070] In step S3012, the first intermediate encrypted data is transmitted to the terminal device so that the terminal device obtains second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the source, and the first secret key.

[0071] The second intermediate encrypted data contains a computational operator that includes the product of the first secret key and the elements in the matching biometric feature vector.

[0072] In some examples, the second intermediate encrypted data includes the first intermediate encrypted subdata and the second intermediate encrypted subdata. The first intermediate encrypted subdata is obtained by a terminal device based on the first intermediate encrypted data and the matching biofeature vector. The first intermediate encrypted subdata has a computational operator formed which includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector and the elements in the matching biofeature vector. The second intermediate encrypted subdata is obtained by a terminal device based on the first secret key, the source, and the matching biofeature vector. The second intermediate encrypted subdata has a computational operator formed which includes the product of the first secret key and the elements in the matching biofeature vector.

[0073] In step S3013, the system interacts with and processes the terminal device based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, so that the terminal device erases the first secret key from the processed data and obtains the second encrypted data.

[0074] In some examples, step S3013 may be further subdivided into receiving a second intermediate encrypted data transmitted from a terminal device, obtaining a third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key, wherein the third intermediate encrypted data has a computational operator formed in it that includes the product of the first secret key, the second secret key, and the target Euclidean distance, and transmitting the third intermediate encrypted data to the terminal device so that the terminal device uses the first secret key to remove the first secret key from the third intermediate encrypted data and obtain the second encrypted data.

[0075] In step S3031, a matching data set is obtained based on the second secret key, the origin, and a pre-set Euclidean distance matching threshold.

[0076] The maximum value of an element in the matching data set is obtained based on a second secret key and a pre-configured Euclidean distance matching threshold.

[0077] In some examples, the elements in the matching biofeature vector, the elements in the sample biofeature vector, and the pre-set Euclidean distance matching threshold are integerized by a factor of 1. Step S3031 may be further subdivided into calculating the product of the second secret key and the square of the pre-set Euclidean distance matching threshold after integerization from 0, and obtaining a matching data set based on the product of the second secret key and the square of the pre-set Euclidean distance matching threshold after integerization from 0, and the generator.

[0078] In step S3032, if the second encrypted data belongs to the matching data set, it is determined that the matching result includes a successful match.

[0079] In step S3033, if the second encrypted data does not belong to the matching data set, it is determined that the matching result includes a matching failure.

[0080] In some embodiments, the server may use a Bloom filter to determine whether the second encrypted data belongs to the matching data set. Specifically, the server may calculate K target hash values ​​using K hash functions based on the second encrypted data, and determine that the second encrypted data belongs to the matching data set if all the values ​​at the corresponding positions of the K target hash values ​​in a pre-constructed Bloom filter lookup table are 1, and determine that the second encrypted data does not belong to the matching data set if at least one of the values ​​at the corresponding positions of the K target hash values ​​in the Bloom filter lookup table is 0. The K target hash values ​​are calculated using K hash functions based on the second encrypted data, and the values ​​in the Bloom filter lookup table are calculated using K hash functions based on the elements in the matching data set.

[0081] In some embodiments, the server may pre-generate a Bloom filter lookup table so that it can use the Bloom filter method to determine whether the second encrypted data belongs to the matching data set. Specifically, the server can use K hash functions to compute each element in the matching data set to obtain K hash values ​​corresponding to each element, map the K hash values ​​corresponding to each element to K positions in a binary array where all values ​​are 0, update the values ​​at the K positions corresponding to each element to 1, and determine the updated binary array as the Bloom filter lookup table.

[0082] For specific details of steps S3011 to S3013 and steps S3031 to S3033 described above, please refer to the relevant explanations in the above embodiment, and they will not be repeated here.

[0083] In the above embodiment, the calculation operator may include a modular exponential operator or a dot product operator. For ease of understanding, the biofeature registration process and the matching process will be described below using the cases where the calculation operator includes a modular exponential operator and the calculation operator includes a dot product operator as examples. The biofeature registration process is the process in which a terminal device processes data to obtain first encrypted data, sends the first encrypted data to a server, and stores it on the server. The biofeature matching process is the process in which a terminal device interacts with the server multiple times to obtain a matching result between the biofeature vector to be matched and a sample biofeature vector.

[0084] In the first example, the calculation operator includes a modular exponential operator, and the biocharacteristic registration and matching processes may include the following steps c1 to c12.

[0085] In step c1, the terminal device collects sample biological data and uses a vector transformation model to convert the sample biological data into a sample biological feature vector Y(y1,y2,y3,······,y i ,······,y n Convert to ).

[0086] In step c2, the terminal device generates a random number a and uses the random number a as the first secret key.

[0087] In step c3, the terminal device uses the generator g and the first secret key a to create the sample biofeature vector Y(y1,y2,y3,······,y i ,······,y n The first encrypted data is obtained by encrypting the first encrypted data.

[0088] The first encrypted data is the data in the following formula (1).

number

number

number

number

[0089] In step c4, the first encrypted data is sent to the server, causing the server to store the first encrypted data.

[0090] The format of the modular exponential operator is g p Therefore, by utilizing the difficulty of the discrete logarithm problem in the field of cryptography, the security of the first encrypted data can be ensured. That is, in a finite field of generators g, given an integer g, g p Although it is easy to calculate =q, it is difficult to calculate p from g and q. The server cannot know the first secret key a, and furthermore, due to the difficulty of the discrete logarithm problem, the server

number

[0091] Steps c1 to c4 described above belong to the process of registering biological characteristics.

[0092] In step c5, the terminal device collects the matching target biometric data and transforms the matching target biometric data into a matching target biometric feature vector X(x1, x2, x3, ..., x i ,······,x n Convert to ).

[0093] In step c6, the server generates a random number b and uses this random number b as the second secret key.

[0094] In step c7, the server uses the second secret key to encrypt the first encrypted data, obtains the first intermediate encrypted data, and transmits the first intermediate encrypted data to the terminal device.

[0095] The first intermediate encrypted data is in the following equation 2.

number

number

[0096] In step c8, the terminal device matches the target biometric feature vector X(x1,x2,x3,······,x i ,······,x n Based on the first intermediate encrypted data and the first secret key, a second intermediate encrypted data is obtained and the second intermediate encrypted data is sent to the server.

[0097] The second intermediate encrypted data is in the following equation 3.

number

number

number

[0098] In step c9, the server obtains third intermediate encrypted data using the second intermediate encrypted data, the first encrypted data, and the second secret key b, and transmits the third intermediate encrypted data to the terminal device.

[0099] The third intermediate encrypted data is in the following equation 4.

number

number

[0100] Furthermore, in biometric feature matching scenarios, terminal devices are considered untrustworthy; therefore, the target Euclidean distance in the encrypted state must be constructed by the server.

[0101] In step c10, the terminal device uses the first secret key to erase the first secret key from the third intermediate encrypted data to obtain the second encrypted data, and then sends the second encrypted data to the server.

[0102] The second encrypted data is in the following formula (5)

number

number

[0103] Since the terminal device cannot know the second secret key, it cannot construct computational operators that include a Euclidean distance smaller than a pre-configured Euclidean distance matching threshold, thereby further enhancing data security.

[0104] In step c11, the server matches the data set based on the second secret key b and a pre-configured Euclidean distance matching threshold θ.

number

[0105] Here, the pre-set Euclidean distance matching threshold θ, the aforementioned sample biofeature vector, and the matching target biofeature vector may be integer-scaled data, so the number of elements in the matching data set is limited.

[0106] In step c12, the server receives the second encrypted data

number

number

[0107] The target Euclidean distance is

number

number

number

number

number

number

number

[0108] Steps c5 to c12 described above belong to the process of matching biological characteristics.

[0109] In the second example, the calculation operator may include a dot product operator, and the biofeature registration and matching processes may include the following steps d1 to d12.

[0110] In step d1, the terminal device collects sample biological data and transforms the sample biological data into a sample biological feature vector Y(y1,y2,y3,······,y i ,······,y n Convert to ).

[0111] In step d2, the terminal device generates a random number a and uses the random number a as the first secret key.

[0112] In step d3, the terminal device uses the generator g and the first secret key a to create the sample biofeature vector Y(y1,y2,y3,······,y i ,······,y n The first encrypted data is obtained by encrypting the first encrypted data.

[0113] The first encrypted data is the data ay in the following equation 6. i g and SY2, or the data ay in the following formula 6. i GL and ay i 2 It can include g, and i = 1, 2, ..., n.

number

[0114] In step d4, the first encrypted data is sent to the server, and the server is instructed to store the first encrypted data.

[0115] The format of the dot product operator is g × p, and the security of the first encrypted data can be ensured by utilizing the problem of elliptic curve cryptography algorithms in the field of cryptography. That is, in the group of elliptic curves whose generator is g, the generator g is a point on the curve, and given an integer p, it is easy to calculate g × p = q, but it is difficult to calculate p from g and q. The server cannot know the first secret key a, and by the elliptic curve cryptography algorithm, the server can a i Even if you obtain g, y i Unable to decrypt it, the first encrypted data is stored as ciphertext on the server.

[0116] Steps d1 to d4 above belong to the process of registering biological characteristics.

[0117] In step d5, the terminal device collects the matching target biometric data and transforms the matching target biometric data into a matching target biometric feature vector X(x1,x2,x3,······,x i ,······,x n Convert to ).

[0118] In step d6, the server generates a random number b and uses this random number b as the second secret key.

[0119] In step d7, the server uses the second secret key b to encrypt the first encrypted data, obtains the first intermediate encrypted data, and transmits the first intermediate encrypted data to the terminal device.

[0120] The first intermediate encrypted data is aby in the following equation 7. i g can be included.

number

[0121] In step d8, the terminal device matches the target biometric feature vector X(x1,x2,x3,······,x i ,······,x n Based on the first intermediate encrypted data and the first secret key, a second intermediate encrypted data is obtained and the second intermediate encrypted data is sent to the server.

[0122] The second intermediate encrypted data is -2abx in the following equation 8 i y i g and ax i 2 g can be included.

number

[0123] In step d9, the server obtains third intermediate encrypted data using the second intermediate encrypted data, the first encrypted data, and the second secret key b, and transmits the third intermediate encrypted data to the terminal device.

[0124] The third intermediate encrypted data is in the following equation 9.

number

number

[0125] Furthermore, in biometric feature matching scenarios, terminal devices are considered untrustworthy; therefore, the encrypted target Euclidean distance must be constructed by the server.

[0126] In step d10, the terminal device uses the first secret key to erase the first secret key from the third intermediate encrypted data, thereby obtaining the second encrypted data, and sends the second encrypted data to the server.

[0127] The second encrypted data is in the following equation 10

number

number

[0128] Since the terminal device cannot know the second secret key, it cannot construct computational operators that include a Euclidean distance smaller than a pre-configured Euclidean distance matching threshold, thereby further enhancing data security.

[0129] In step d11, the server obtains a matching data set based on the second secret key b and a pre-configured Euclidean distance matching threshold θ.

[0130] Here, the pre-set Euclidean distance matching threshold, the aforementioned sample biofeature vector, and the matching target biofeature vector may be integers of equal multiples, so the number of elements in the matching data set is limited.

[0131] In step d12, the server processes the second encrypted data

number

number

[0132] The target Euclidean distance is

number

number

number

number

number

[0133] Steps d5 to d12 described above belong to the process of matching biological characteristics.

[0134] A third aspect of this application provides a terminal device. Figure 6 is a schematic diagram of a terminal device according to an embodiment of the third aspect of this application, and as shown in Figure 6, the terminal device 400 may include a first communication module 401 and a first encryption module 402.

[0135] The first communication module 401 and the first encryption module 402 are configured to perform multiple interactions and processing operations based on the server, the first secret key, the acquired matching target biometric feature vector, a pre-configured source, the second secret key, and the first encrypted data, in order to obtain the second encrypted data.

[0136] The first secret key is the secret key of the terminal device. The second secret key is the secret key of the server. The first encrypted data is obtained by the terminal device encrypting the sample biofeature vector using the source and the first secret key in advance, and then sent to the server. The second encrypted data has a calculation operator formed that includes the second secret key and the target Euclidean distance. The target Euclidean distance includes the Euclidean distance between the matching biofeature vector and the sample biofeature vector.

[0137] In some examples, the computational operators include modular exponential operators or dot product operators.

[0138] The first communication module 401 may be configured to send further encrypted data to the server so that the server can use the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold to obtain a matching result between the target biofeature vector and the sample biofeature vector.

[0139] In the embodiment of this application, the terminal device and the server can perform multiple interactions and processes based on a first secret key, a matching target biofeature vector, a source, a second secret key, and first encrypted data. The terminal device possesses the first secret key, the matching target biofeature, and the source, while the server possesses the second secret key and the first encrypted data. Through encryption processing by the terminal device using the first secret key, encryption processing by the server using the second secret key, and data interaction between the terminal device and the server, the terminal device can obtain second encrypted data that includes the second secret key and a calculation operator for the target Euclidean distance that can represent the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second encrypted data contains the second secret key, and the terminal device cannot know the second secret key, making it difficult to obtain the plaintext of the matching target biofeature vector and the sample biofeature vector through decryption. Similarly, the server cannot know the first secret key, making it difficult to decrypt the first encrypted secret key. Furthermore, the server determines the matching result between the target biometric feature vector and the sample biometric feature vector based on the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold. This allows the matching to be completed regardless of the plaintext of the target biometric feature vector and the sample biometric feature vector, thereby reducing the security risk of the user's privacy data and improving the security of biometric matching. Since the terminal equipment and server do not store the plaintext of the target biometric feature vector and the sample biometric feature vector, the user's control over their personal privacy data can be ensured. This limits the usage scenarios of personal privacy data, satisfies the principle of minimum use of personal privacy data, and prevents misuse of personal privacy data.

[0140] Furthermore, in the embodiments of this application, encryption is performed on the matching target biofeature vector and the sample biofeature vector, and the matching result is determined by comparing the encrypted data. If the types of matching target biodata and sample biodata are different, the available vector transformation models may also be different. However, in the embodiments of this application, the similarity of the biodata is described by the similarity of the feature vectors. In the biofeature matching process in the embodiments of this application, the process for protecting personal privacy data and the transformation process for transforming the matching target biodata into matching target biofeature vectors and the sample biodata into sample biofeature vectors may be independent of each other. This realizes an assembly-and-plug-in technology for the vector transformation model and the biofeature matching model, that is, it realizes decoupling between the vector transformation model and the biofeature matching model.

[0141] In some embodiments, the first communication module 401 may be configured to receive first intermediate encrypted data transmitted from the server.

[0142] The first intermediate encrypted data is obtained by the server encrypting the first encrypted data using the second secret key. The first intermediate encrypted data has a computational operator formed that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector.

[0143] The first encryption module 402 may be configured to obtain second intermediate encryption data based on first intermediate encryption data, matching biometric feature vectors, generators, and first secret key.

[0144] The second intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the elements in the matching biometric feature vector.

[0145] The first communication module 401 and the first encryption module 402 may be configured to interact and process with the server based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, and to remove the first secret key from the processed data to obtain the second encrypted data.

[0146] In some examples, the data of the second intermediate encryption includes the subdata of the first intermediate encryption and the subdata of the second intermediate encryption.

[0147] The first encryption module 402 may be configured to obtain first intermediate encryption word data based on first intermediate encryption data and matching biometric feature vectors, and to obtain second intermediate encryption subdata based on first secret key, origin and matching biometric feature vectors.

[0148] The first intermediate encrypted subdata forms a computational operator that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector and the elements in the matching biofeature vector. The second intermediate encrypted subdata forms a computational operator that includes the product of the first secret key and the elements in the matching biofeature vector.

[0149] In some examples, the first communication module 401 may be configured to send the second intermediate encrypted data to the server and to receive the third intermediate encrypted data sent from the server, so that the server obtains the third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key.

[0150] The third intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the target Euclidean distance.

[0151] The first encryption module 402 may be configured to use the first secret key to remove the first secret key from the third intermediate encrypted data in order to obtain the second encrypted data.

[0152] In some embodiments, if the second encrypted data belongs to the matching data set, the matching result includes a successful match. If the second encrypted data does not belong to the matching data set, the matching result includes a failed match. The maximum value of an element in the matching data set is obtained based on the second secret key and a pre-set Euclidean distance matching threshold.

[0153] In some examples, the elements in the biofeature vector to be matched, the elements in the sample biofeature vector, and the pre-defined Euclidean distance matching threshold are integerized by a factor of 1. The matching data set has a computational operator formed that includes the product of the second secret key and the square of the pre-defined Euclidean distance matching threshold, which is integerized from 0.

[0154] In some cases, if the values ​​at the corresponding positions of the K target hash values ​​in a pre-constructed Bloom filter lookup table are all 1, then the second encrypted data belongs to the matching data set. If at least one of the values ​​at the corresponding positions of the K target hash values ​​in the Bloom filter lookup table is 0, then the second encrypted data does not belong to the matching data set. The K target hash values ​​are calculated using K hash functions based on the second encrypted data, and the values ​​in the Bloom filter lookup table are calculated using K hash functions based on the elements in the matching data set, where K is a positive integer.

[0155] In some embodiments, the terminal device 400 may further include a first acquisition module.

[0156] The first acquisition module is configured to acquire sample biofeature vectors.

[0157] The first encryption module 402 may further be configured to encrypt a sample biofeature vector using the generator and the first secret key to obtain the first encrypted data.

[0158] The first encrypted data has a computational operator formed that includes the product of the first secret key and the elements in the sample biofeature vector.

[0159] The first communication module 401 may be further configured to transmit the first encrypted data to the server.

[0160] A fourth aspect of this application provides a server. Figure 7 is a schematic diagram of a server according to one embodiment of the fourth aspect of this application, and as shown in Figure 7, the server 500 may include a second communication module 501, a second encryption module 502, and a matching module 503.

[0161] The second communication module 501 and the second encryption module 502 may be configured to perform multiple interactions and processing based on the terminal device, the second secret key, the first encrypted data, the first secret key, a pre-configured source, and the matching target biometric feature vector obtained by the terminal device, so that the terminal device can obtain the second encrypted data.

[0162] The first secret key is the secret key of the terminal device. The second secret key is the secret key of the server. The first encrypted data is obtained by the terminal device using the source and the first secret key to encrypt the sample biofeature vector and is sent to the server. The second encrypted data has a calculation operator formed that includes the second secret key and the target Euclidean distance. The target Euclidean distance includes the Euclidean distance between the matching biofeature vector and the sample biofeature vector.

[0163] In some examples, the computational operators include modular exponential operators or dot product operators.

[0164] The second communication module 501 is configured to receive a second encrypted data transmitted from the terminal device.

[0165] The matching module 503 is configured to obtain a matching result between the target biofeature vector and the sample biofeature vector using a second encrypted data, a second secret key, a source, and a pre-configured Euclidean distance matching threshold.

[0166] In the embodiment of this application, the server and terminal device can perform multiple interactions and processes based on a first secret key, a matching target biofeature vector, a source, a second secret key, and first encrypted data. The terminal device possesses the first secret key, the matching target biofeature, and the source, while the server possesses the second secret key and the first encrypted data. Through encryption processing by the terminal device using the first secret key, encryption processing by the server using the second secret key, and data interaction between the terminal device and the server, the terminal device can obtain second encrypted data that includes the second secret key and a calculation operator that includes a target Euclidean distance capable of representing the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second encrypted data contains the second secret key, and the terminal device cannot know the second secret key, making it difficult to obtain the plaintext of the matching target biofeature vector and the sample biofeature vector through decryption. Similarly, the server cannot know the first secret key, making it difficult to decrypt the first encrypted secret key. Furthermore, the server determines the matching result between the target biometric feature vector and the sample biometric feature vector based on the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold. This allows the matching to be completed regardless of the plaintext of the target biometric feature vector and the sample biometric feature vector, thereby reducing the security risk of the user's privacy data and improving the security of biometric matching. Since the terminal equipment and server do not store the plaintext of the target biometric feature vector and the sample biometric feature vector, the user's control over their personal privacy data can be ensured. This limits the usage scenarios of personal privacy data, satisfies the principle of minimum use of personal privacy data, and prevents misuse of personal privacy data.

[0167] Furthermore, in the embodiments of this application, encryption is performed on the matching target biofeature vector and the sample biofeature vector, and the matching result is determined by comparing the encrypted data. If the types of matching target biodata and sample biodata are different, the available vector transformation models may also be different. However, in the embodiments of this application, the similarity of the biodata is described by the similarity of the feature vectors. In the biofeature matching process in the embodiments of this application, the process for protecting personal privacy data and the transformation process for transforming the matching target biodata into matching target biofeature vectors and the sample biodata into sample biofeature vectors may be independent of each other. This realizes an assembly-and-plug-in technology for the vector transformation model and the biofeature matching model, that is, it realizes decoupling between the vector transformation model and the biofeature matching model.

[0168] In some embodiments, the second encryption module 502 may be configured to encrypt the first encrypted data using a second secret key to obtain the first intermediate encrypted data.

[0169] The first intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector.

[0170] The second communication module 501 may be configured to transmit the first intermediate encrypted data to the terminal device so that the terminal device obtains the second intermediate encrypted data based on the first intermediate encrypted data, the matching biometric feature vector, the source, and the first secret key.

[0171] The second intermediate encrypted data contains a computational operator that includes the product of the first secret key and the elements in the matching biometric feature vector.

[0172] The second communication module 501 and the second encryption module 502 may be configured to interact and process with the terminal device based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, so that the terminal device erases the first secret key from the processed data to obtain the second encrypted data.

[0173] In some examples, the data of the second intermediate encryption includes the subdata of the first intermediate encryption and the subdata of the second intermediate encryption.

[0174] The first intermediate encrypted subdata is obtained by the terminal device based on the first intermediate encrypted data and the matching target biofeature vector. The first intermediate encrypted subdata has a computational operator formed that includes the first secret key, the second secret key, and the product of the elements in the sample biofeature vector and the elements in the matching target biofeature vector.

[0175] The second intermediate encrypted subdata is obtained by the terminal device based on the first secret key, the source, and the matching biometric feature vector. A computational operator is formed in the second intermediate encrypted subdata that includes the product of the first secret key and the elements in the matching biometric feature vector.

[0176] In some examples, the second communication module 501 may be configured to receive second intermediate encrypted data transmitted from the terminal device.

[0177] The second encryption module 502 may be configured to obtain a third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key.

[0178] The third intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the target Euclidean distance.

[0179] The second communication module 501 may be configured to transmit the third intermediate encrypted data to a terminal device such that the terminal device uses the first secret key to erase the first secret key from the third intermediate encrypted data and obtain the second encrypted data.

[0180] In some embodiments, the matching module 503 is configured to obtain a matching data set based on a second secret key, an origin, and a preset Euclidean distance matching threshold, to determine that the maximum value of an element in the matching data set is obtained based on the second secret key and the preset Euclidean distance matching threshold, to determine that the matching result includes a successful match if the second encrypted data belongs to the matching data set, and to determine that the matching result includes a failed match if the second encrypted data does not belong to the matching data set.

[0181] In some examples, the elements in the matching biofeature vector, the elements in the sample biofeature vector, and the pre-set Euclidean distance matching threshold are integerized by a factor of 1.

[0182] The matching module 503 may be configured to calculate the product of the second secret key and the square of a pre-set Euclidean distance matching threshold converted to an integer from zero, and to obtain a matching data set based on the product of the second secret key and the square of the pre-set Euclidean distance matching threshold converted to an integer from zero, and the generator.

[0183] In some examples, the matching module 503 may be configured to calculate K target hash values by K hash functions based on the second encrypted data, and determine that the second encrypted data belongs to the matching data set if the values at the corresponding positions of the K target hash values in the pre-constructed Bloom filter lookup table are all 1, and determine that the second encrypted data does not belong to the matching data set if at least one of the values at the corresponding positions of the K target hash values in the Bloom filter lookup table is 0.

[0184] The K target hash values are calculated by K hash functions based on the second encrypted data, the values in the Bloom filter lookup table are calculated by K hash functions based on the elements in the matching data set, and K is a positive integer.

[0185] In some embodiments, the server 500 may further include a lookup table generation module, and the lookup table generation module may be configured to calculate each of the elements in the matching data set using K hash functions, obtain K hash values corresponding to each element, map the K hash values corresponding to each element to K positions in a binary array where all values are 0, update the values at the K positions corresponding to each element to 1, and determine the updated binary array as the Bloom filter lookup table.

[0186] The fifth aspect of the present application further provides a terminal device. FIG. 8 is a schematic structural diagram of a terminal device according to an embodiment of the fifth aspect of the present application. As shown in FIG. 8, the terminal device 600 includes a memory 601, a processor 602, and a computer program stored in the memory 601 and executable on the processor 602.

[0187] In some examples, the processor 602 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured as one or more integrated circuits for implementing the embodiments of the present application.

[0188] The memory 601 may include a read-only memory (ROM), a random access memory (RAM), a magnetic disk storage medium device, an optical storage medium device, a flash memory device, an electrical, optical or other physical / tangible memory storage device. Thus, the memory typically includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it can operate to perform the operations described with reference to the biometric matching method in the embodiments of the first aspect of the present application.

[0189] The processor 602 is configured to realize the biometric matching method in the embodiments of the first aspect by reading the executable program code stored in the memory 601 and executing a computer program corresponding to the executable program code.

[0190] In some examples, the terminal device 600 may further include a communication interface 603 and a bus 604. As shown in FIG. 8, the memory 601, the processor 602, and the communication interface 603 are connected by the bus 604 to complete mutual communication.

[0191] The communication interface 603 is mainly configured to realize communication between modules, devices, units, and / or devices in the embodiments of the present application. It is also possible to access input devices and / or output devices via the communication interface 603.

[0192] Bus 604 includes hardware, software, or both, and connects the components of terminal equipment 600 to each other. The following are examples only and not limited to, bus 604 may include, but is not limited to, an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-E) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or any other suitable bus, or any combination of two or more of these. Where appropriate, bus 604 may include one or more buses. While the embodiments of this application describe and illustrate a specific bus, this application considers any suitable bus or interconnection.

[0193] A sixth aspect of this application further provides a server. Figure 9 is a schematic diagram of a server according to one embodiment of the sixth aspect of this application. As shown in Figure 9, the server 700 includes a memory 701, a processor 702, and a computer program stored in the memory 701 and executable on the processor 702.

[0194] In some examples, the processor 702 may include a central processing unit (CPU) or an application-specific integrated circuit (ASIC), or may be configured as one or more integrated circuits implementing embodiments of this application.

[0195] The memory 701 may include read-only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, and electrical, optical, or other physical / tangible memory storage devices. Thus, the memory typically includes one or more tangible (non-temporary) computer-readable storage media (e.g., memory devices) on which software containing computer-executable instructions is encoded, and when the software is executed (e.g., by one or more processors), it can operate to perform the operations described with reference to the biofeature matching method in an embodiment of a second aspect of this application.

[0196] The processor 702 is configured to realize the bio-characteristic matching method in the second embodiment by reading executable program code stored in memory 701 and executing a computer program corresponding to the executable program code.

[0197] In some examples, the terminal device 700 may further include a communication interface 703 and a bus 704. As shown in Figure 9, the memory 701, processor 702, and communication interface 703 are connected by the bus 704 to complete mutual communication.

[0198] The communication interface 703 is primarily configured to enable communication between modules, apparatus, units, and / or devices in the embodiments of this application. Input devices and / or output devices can also be accessed via the communication interface 703.

[0199] Bus 704 includes hardware, software, or both, and connects the components of Server 700 to each other. The following are examples only and not limited to, bus 704 may include, but is not limited to, an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-E) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or any other suitable bus, or any combination of two or more of these. Where appropriate, bus 704 may include one or more buses. Where appropriate, bus 704 may include one or more buses. Although the embodiments of this application are described and illustrated in part with respect to specific buses, this application considers any suitable bus or interconnection.

[0200] A seventh aspect of this application provides a biofeature matching system, which may include terminal equipment and a server as described in the above embodiments, the terminal equipment being capable of performing the biofeature matching method as described in the first embodiment, and the server being capable of performing the biofeature matching method as described in the second embodiment. For specific details, please refer to the relevant descriptions in the above embodiments, which will not be repeated here.

[0201] An eighth aspect of this application further provides a computer-readable storage medium in which computer program instructions are stored, and when the computer program instructions are executed by a processor, the biofeature matching method in the embodiment of the first aspect or the biofeature matching method in the embodiment of the second aspect can be realized and the same technical effects can be achieved, and will not be repeated here to avoid duplication. The computer-readable storage medium may include, but is not limited to, a non-temporary computer-readable storage medium such as read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk.

[0202] Embodiments of this application can further provide a computer program product in which instructions in the computer program product are executed by the processor of an electronic device, and the electronic device can perform the biofeature matching method in the first embodiment or the biofeature matching method in the second embodiment. Specific details can be found in the relevant descriptions in the above embodiments, and the same technical effects can be achieved. To avoid duplication, these details will not be repeated here.

[0203] All embodiments in this specification are described progressively, and identical or similar parts between embodiments may be referenced to one another. The description of each embodiment focuses on the differences from other embodiments. For relevant parts of the embodiments of terminal equipment, servers, systems, computer-readable storage media, and computer program products, refer to the descriptions in the embodiments of methods. This application is not limited to the specific steps and structures described and illustrated above. Those skilled in the art can understand the spirit of this application and make various changes, modifications, and additions, or change the order of the steps. Also, for the sake of brevity, a detailed description of known method technology is omitted here.

[0204] The embodiments of this application have been described above with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to the embodiments of this application. It should be understood that each block in the flowcharts and / or block diagrams, and each combination of blocks in the flowcharts and / or block diagrams, can be realized by computer program instructions. These computer program instructions are provided to a processor of a general-purpose computer, a dedicated computer, or another programmable data processing device, thereby generating a machine that enables these instructions, executed by the processor of the computer or other programmable data processing device, to realize the functions / operations specified in one or more blocks in the flowcharts and / or block diagrams. Such processors include, but are not limited to, general-purpose processors, dedicated processors, special-purpose processors, or field-programmable logic circuits. Furthermore, it should be understood that each block in the block diagrams and / or flowcharts, and each combination of blocks in the block diagrams and / or flowcharts, can be realized by dedicated hardware that performs a specified function or operation, or by a combination of dedicated hardware and computer instructions.

[0205] As those skilled in the art will understand, the above embodiments are all illustrative and not limiting. Different technical features described in different embodiments can be combined to achieve beneficial effects. Those skilled in the art should be able to understand and implement other modifications of the disclosed embodiments after reviewing the drawings, specification and claims. In the claims, the term “includes” is not exclusive to other devices or steps, the quantifier “one” is not exclusive to multiple devices, and the terms “first” and “second” are for nominal purposes only and not to indicate any particular order. Any reference numerals in the claims should not be understood as limiting the scope of protection. The functions of multiple parts described in the claims can be implemented by a single hardware or software module. The fact that some technical features are described in different dependent claims does not mean that these technical features cannot be combined to achieve beneficial effects.

Claims

1. A biometric feature matching method applicable to terminal devices, The method involves obtaining second encrypted data by performing multiple interactions and processing with a server based on a first secret key, an acquired matching target biofeature vector, a pre-configured source, a second secret key, and first encrypted data, wherein the first secret key is the secret key of the terminal device, the second secret key is the secret key of the server, the first encrypted data is obtained by the terminal device encrypting a sample biofeature vector using the source and the first secret key in advance, and is transmitted to the server, the second encrypted data has a calculation operator that includes the second secret key and the target Euclidean distance, and the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The process includes transmitting the second encrypted data to the server so that the server uses the second encrypted data, the source, the second secret key, and a pre-configured Euclidean distance matching threshold to obtain a matching result between the target biofeature vector and the sample biofeature vector. Based on the first secret key, the acquired matching target biometric feature vector, the pre-configured source, the second secret key, and the first encrypted data, the second encrypted data can be obtained by performing multiple interactions and processing with the server. The process involves receiving first intermediate encrypted data transmitted from the server, wherein the first intermediate encrypted data is obtained by the server encrypting the first encrypted data using the second secret key, and the first intermediate encrypted data has a computational operator formed in it that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector. Obtaining second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key, wherein the second intermediate encrypted data has a computational operator formed that includes the product of the first secret key, the second secret key, and the elements in the matching target biometric feature vector. This includes interacting with and processing the server based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, and then deleting the first secret key from the processed data to obtain the second encrypted data. The second intermediate encryption data includes the first intermediate encryption subdata and the second intermediate encryption subdata. Obtaining second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key is: Based on the first intermediate encrypted data and the matching target biofeature vector, the first intermediate encrypted subdata is obtained, wherein the first intermediate encrypted subdata has a computational operator formed that includes the product of the first secret key, the second secret key, the elements in the sample biofeature vector and the elements in the matching target biofeature vector, Obtaining the second intermediate encrypted subdata based on the first secret key, the source, and the matching target biofeature vector, wherein the second intermediate encrypted subdata has a computational operator formed that includes the product of the first secret key and the elements in the matching target biofeature vector, Interacting with and processing the server based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, and then deleting the first secret key from the processed data to obtain the second encrypted data, is: The second intermediate encrypted data is transmitted to the server so that the server obtains a third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key, wherein the third intermediate encrypted data has a calculation operator formed that includes the product of the first secret key, the second secret key, and the target Euclidean distance. Receiving the third intermediate encrypted data transmitted from the server, This includes deleting the first secret key from the third intermediate encrypted data using the first secret key to obtain the second encrypted data, A method for matching biometric characteristics.

2. If the second encrypted data belongs to the matching data set, the matching result includes a successful match. If the second encrypted data does not belong to the matching data set, the matching result includes a matching failure. The maximum value of an element in the matching data set is obtained based on the second secret key and the preset Euclidean distance matching threshold. The method according to claim 1.

3. The elements in the matching target biofeature vector, the elements in the sample biofeature vector, and the preset Euclidean distance matching threshold are integerized by equal scaling. The matching data set has a calculation operator formed that includes the product of the second secret key and the square of the pre-set Euclidean distance matching threshold, which is converted from zero to an integer. The method according to claim 2.

4. If the values ​​at the corresponding positions of the K target hash values ​​in the pre-constructed Bloom filter lookup table are all 1, then the second encrypted data belongs to the matching data set. If at least one of the values ​​at the corresponding positions of the K target hash values ​​in the Bloom filter lookup table is 0, then the second encrypted data does not belong to the matching data set. K target hash values ​​are calculated using K hash functions based on the second encrypted data, and the values ​​in the Bloom filter lookup table are calculated using the K hash functions based on the elements in the matching data set, where K is a positive integer. The method according to claim 2.

5. Based on the first secret key, the acquired matching target biometric feature vector, the second secret key, and the first encrypted data, multiple interactions and processing are performed with the server before obtaining the second encrypted data. To obtain the aforementioned sample biofeature vector, The method involves encrypting the sample biofeature vector using the generator and the first secret key to obtain the first encrypted data, wherein the first encrypted data includes a computational operator that includes the product of the first secret key and the elements in the sample biofeature vector. This includes transmitting the first encrypted data to the server, The method according to claim 1.

6. The calculation operators include modular exponential operators or dot product operators. The method according to any one of claims 1 to 5.

7. A biometric feature matching method applied to a server, The method involves interacting with and processing a terminal device multiple times based on a second secret key, first encrypted data, first secret key, a pre-configured source, and a matching target biofeature vector acquired by the terminal device, wherein the first secret key is the secret key of the terminal device, the second secret key is the secret key of the server, the first encrypted data is obtained by the terminal device encrypting a sample biofeature vector using the source and the first secret key in advance and transmitted to the server, the second encrypted data has a calculation operator that includes the second secret key and a target Euclidean distance, and the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. Receiving the second encrypted data transmitted from the terminal device, This includes obtaining a matching result between the target biofeature vector and the sample biofeature vector using the second encrypted data, the second secret key, the source, and a pre-set Euclidean distance matching threshold, Performing multiple interactions and processing with the terminal device based on the second secret key, the first encrypted data, the first secret key, a pre-configured source, and the matching target biometric feature vector obtained by the terminal device, so that the terminal device obtains the second encrypted data, is: The method involves encrypting the first encrypted data using the second secret key to obtain first intermediate encrypted data, wherein the first intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector. The first intermediate encrypted data is transmitted to the terminal device so that the terminal device obtains second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key, wherein the second intermediate encrypted data has a computational operator formed that includes the product of the first secret key and the elements of the matching target biometric feature vector. The process includes interacting and processing with the terminal device based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, such that the terminal device erases the first secret key from the processed data to obtain the second encrypted data. The second intermediate encrypted data includes the first intermediate encrypted subdata and the second intermediate encrypted subdata. The first intermediate encrypted subdata is obtained by the terminal device based on the first intermediate encrypted data and the matching target biofeature vector, and the first intermediate encrypted subdata has a calculation operator formed on it that includes the product of the first secret key, the second secret key, the elements in the sample biofeature vector and the elements in the matching target biofeature vector. The second intermediate encrypted subdata is obtained by the terminal device based on the first secret key, the source, and the matching target biometric feature vector, and a computational operator is formed in the second intermediate encrypted subdata that includes the product of the first secret key and the elements in the matching target biometric feature vector. Interacting and processing between the terminal device and the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, such that the terminal device erases the first secret key from the processed data to obtain the second encrypted data, is as follows: Receiving the second intermediate encrypted data transmitted from the terminal device, A third intermediate encrypted data is obtained based on the second intermediate encrypted data, the first encrypted data, and the second secret key, wherein the third intermediate encrypted data has a computational operator formed that includes the product of the first secret key, the second secret key, and the target Euclidean distance. The procedure includes transmitting the third intermediate encrypted data to the terminal device so that the terminal device uses the first secret key to erase the first secret key from the third intermediate encrypted data and obtain the second encrypted data. A method for matching biometric characteristics.

8. Using the second encrypted data, the second secret key, the source, and the pre-set Euclidean distance matching threshold, the matching result between the target biofeature vector and the sample biofeature vector can be obtained. A matching data set is obtained based on the second secret key, the source, and the preset Euclidean distance matching threshold, wherein the maximum value of an element in the matching data set is obtained based on the second secret key and the preset Euclidean distance matching threshold. If the second encrypted data belongs to the matching data set, the matching result is determined to include a successful match. The matching result is determined to include a matching failure if the second encrypted data does not belong to the matching data set, The method according to claim 7.

9. The elements in the matching target biofeature vector, the elements in the sample biofeature vector, and the preset Euclidean distance matching threshold are integerized by equal scaling. Based on the second secret key, the source, and the pre-set Euclidean distance matching threshold, obtaining a matching data set is: The process involves calculating the product of the second secret key and the square of the pre-set Euclidean distance matching threshold after converting it from zero to an integer, The process includes obtaining the matching data set based on the product of the second secret key, the square of the pre-set Euclidean distance matching threshold after it has been converted from zero to an integer, and the generator. The method according to claim 8.

10. Based on the second encrypted data, K target hash values ​​are calculated using K hash functions, If the values ​​at the corresponding positions of K target hash values ​​in a pre-constructed Bloom filter lookup table are all 1, then it is determined that the second encrypted data belongs to the matching data set. The method further includes determining that the second encrypted data does not belong to the matching data set if at least one of the values ​​at the corresponding positions of the K target hash values ​​in the Bloom filter lookup table is 0, K target hash values ​​are calculated using K hash functions based on the second encrypted data, and the values ​​in the Bloom filter lookup table are calculated using the K hash functions based on the elements in the matching data set, where K is a positive integer. The method according to claim 8.

11. Using the aforementioned K hash functions, calculate each element in the matching data set and obtain the K hash value corresponding to each element. The process further includes mapping K hash values ​​corresponding to each element to K positions in a binary array where all values ​​are 0, updating the values ​​at the K positions corresponding to each element to 1, and determining the updated binary array as the Bloom filter lookup table. The method according to claim 10.

12. The calculation operators include modular exponential operators or dot product operators. The method according to any one of claims 7 to 11.

13. A terminal device including a first communication module and a first encryption module, The first communication module and the first encryption module are configured to obtain second encrypted data by performing multiple interactions and processing with the server based on a first secret key, an acquired matching target biofeature vector, a pre-configured source, a second secret key, and first encrypted data, wherein the first secret key is the secret key of the terminal device, the second secret key is the secret key of the server, the first encrypted data is obtained by the terminal device encrypting a sample biofeature vector using the source and the first secret key in advance, and is transmitted to the server, the second encrypted data has a calculation operator formed including the second secret key and the target Euclidean distance, and the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The first communication module is further configured to transmit the second encrypted data to the server so that the server can use the second encrypted data, the source, the second secret key, and a preset Euclidean distance matching threshold to obtain a matching result between the target biofeature vector and the sample biofeature vector. The first communication module and the first encryption module obtain the second encrypted data by interacting and processing with the server multiple times based on the first secret key, the acquired matching target biometric feature vector, a pre-configured source, the second secret key, and the first encrypted data. The first communication module receives first intermediate encrypted data transmitted from the server, the first intermediate encrypted data is obtained by the server encrypting the first encrypted data using the second secret key, and the first intermediate encrypted data has a computational operator formed in it that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector. The first encryption module obtains second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the source, and the first secret key, wherein the second intermediate encrypted data has a computational operator formed that includes the product of the first secret key, the second secret key, and the elements in the matching target biometric feature vector. The first communication module and the first encryption module interact and process with the server based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, and the first secret key is removed from the processed data to obtain the second encrypted data. The second intermediate encryption data includes the first intermediate encryption subdata and the second intermediate encryption subdata. The first encryption module obtains second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key, Based on the first intermediate encrypted data and the matching target biofeature vector, the first intermediate encrypted subdata is obtained, wherein the first intermediate encrypted subdata has a computational operator formed that includes the product of the first secret key, the second secret key, the elements in the sample biofeature vector and the elements in the matching target biofeature vector, Obtaining the second intermediate encrypted subdata based on the first secret key, the source, and the matching target biofeature vector, wherein the second intermediate encrypted subdata has a computational operator formed that includes the product of the first secret key and the elements in the matching target biofeature vector, The first communication module and the first encryption module interact and process with the server based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, and then remove the first secret key from the processed data to obtain the second encrypted data. The first communication module transmits the second intermediate encrypted data to the server so that the server obtains third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key, wherein the third intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the target Euclidean distance. The first communication module receives the third intermediate encrypted data transmitted from the server, The first encryption module uses the first secret key to remove the first secret key from the third intermediate encrypted data and obtain the second encrypted data, Terminal equipment.

14. A server including a second communication module, a second encryption module, and a matching module, The second communication module and the second encryption module are configured to interact and process with the terminal device multiple times based on a second secret key, first encrypted data, a first secret key, a pre-configured source, and a matching target biofeature vector acquired by the terminal device, so that the terminal device can obtain second encrypted data, wherein the first secret key is the secret key of the terminal device, the second secret key is the secret key of the server, the first encrypted data is obtained by the terminal device encrypting a sample biofeature vector using the source and the first secret key in advance, and is transmitted to the server, the second encrypted data has a calculation operator that includes the second secret key and the target Euclidean distance, and the target Euclidean distance includes the Euclidean distance between the matching target biofeature vector and the sample biofeature vector. The second communication module is further configured to receive the second encrypted data transmitted from the terminal device. The matching module is configured to obtain a matching result between the target biofeature vector and the sample biofeature vector using the second encrypted data, the second secret key, the source, and a preset Euclidean distance matching threshold. The second communication module and the second encryption module interact with and process the terminal device multiple times based on the second secret key, the first encrypted data, the first secret key, a pre-configured source, and the matching target biometric feature vector obtained by the terminal device, so that the terminal device obtains the second encrypted data. The method involves encrypting the first encrypted data using the second secret key to obtain first intermediate encrypted data, wherein the first intermediate encrypted data contains a computational operator that includes the product of the first secret key, the second secret key, and the elements in the sample biofeature vector. The first intermediate encrypted data is transmitted to the terminal device so that the terminal device obtains second intermediate encrypted data based on the first intermediate encrypted data, the matching target biometric feature vector, the generator, and the first secret key, wherein the second intermediate encrypted data has a computational operator formed that includes the product of the first secret key and the elements of the matching target biometric feature vector. The process includes interacting and processing with the terminal device based on the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, such that the terminal device removes the first secret key from the processed data to obtain the second encrypted data. The second intermediate encrypted data includes the first intermediate encrypted subdata and the second intermediate encrypted subdata. The first intermediate encrypted subdata is obtained by the terminal device based on the first intermediate encrypted data and the matching target biofeature vector, and the first intermediate encrypted subdata has a calculation operator formed on it that includes the product of the first secret key, the second secret key, the elements in the sample biofeature vector and the elements in the matching target biofeature vector. The second intermediate encrypted subdata is obtained by the terminal device based on the first secret key, the source, and the matching target biometric feature vector, and a computational operator is formed in the second intermediate encrypted subdata that includes the product of the first secret key and the elements in the matching target biometric feature vector. Interacting and processing between the terminal device and the second intermediate encrypted data, the first encrypted data, the first secret key, and the second secret key, such that the terminal device erases the first secret key from the processed data to obtain the second encrypted data, is as follows: The second communication module receives the second intermediate encrypted data transmitted from the terminal device, The second encryption module obtains a third intermediate encrypted data based on the second intermediate encrypted data, the first encrypted data, and the second secret key, wherein the third intermediate encrypted data has a computational operator formed that includes the product of the first secret key, the second secret key, and the target Euclidean distance. The second communication module transmits the third intermediate encrypted data to the terminal device so that the terminal device uses the first secret key to erase the first secret key from the third intermediate encrypted data and obtain the second encrypted data. server.

15. A terminal device including a processor and memory that stores computer program instructions, When the processor executes the computer program instruction, it realizes the bio-feature matching method described in any one of claims 1 to 5. Terminal equipment.

16. A server including a processor and memory that stores computer program instructions, When the processor executes the computer program instruction, it realizes the bio-feature matching method described in any one of claims 7 to 11. server.

17. A terminal device according to claim 15 and a server according to claim 16, A bio-characteristic matching system.

18. A computer-readable storage medium in which computer program instructions are stored, When the computer program instruction is executed by the processor, the bio-characteristic matching method described in any one of claims 1 to 5 or 7 to 11 is realized. Computer-readable storage medium.