# US 12,015,692 B2 · Enhanced encryption for face-related data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,015,692 B2
- Document ID: US12015692B2
- Status: Granted
- Kind: B2
- Application number: 17/937,026
- Filed: 2022-09-30
- Published: 2023-10-12
- Granted: 2024-06-18
- Earliest claimed: 2022-04-08
- Assignees: Verkada Inc.
- Applicants: Verkada Inc.
- Inventors: Kiumars Soltani; Yuewei Wang; Kabir Chhabra; Jose M. Giron Nanne; Yunchao Gong
- Web page: https://patentgrep.com/patent/US12015692B2

## CPC

- H04L 9/008: {involving homomorphic encryption}
- G06F 21/602: {Providing cryptographic facilities or services}
- H04L 9/3231: {Biological data, e.g. fingerprint, voice or retina (network architectures or network communication protocols for supporting authentication of entities using biometrical features in a packet data network H04L63/0861)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes obtaining a plurality of representative vectors associated with face-related data. The method includes determining an encryption key based on a parameter stored in a record, generating an encrypted vector set by, for each respective vector of the plurality of representative vectors, encrypting the respective vector with a homomorphic encryption operation based on the encryption key, where the encrypted vector set includes a first encrypted vector that is linked to a subset of the face-related data associated with the first plurality of face vectors. The method further includes obtaining an encrypted face search vector using the encryption key to perform homomorphic encryption. The method further includes selecting a first encrypted vector based on the encrypted face search vector and retrieving the subset of the face-related data based on the first encrypted vector.

## Claims

### Claim 1

A method for securely retrieving face-related data by using an organization-specific encryption key, the method comprising:
obtaining an encrypted search vector, wherein:
the encrypted search vector is determined based on an image of a face and an organization-specific encryption key, and
the organization-specific encryption key is associated with an organization identifier based on a parameter associated with the organization identifier stored in a record;
obtaining a first encrypted vector by searching a first encrypted vector set stored in a first database based on the encrypted search vector, wherein:
for each respective encrypted vector of the first encrypted vector set, the respective encrypted vector is generated by encrypting a respective vector using the organization-specific encryption key,
a second encrypted vector set is stored in a second database,
a second encrypted vector of the second encrypted vector set is encrypted without using the organization-specific encryption key, and
obtaining the first encrypted vector comprises selecting the first database for a search operation; and
decrypting the first encrypted vector to obtain an identifier associated with a face image used to generate the first encrypted vector.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining a plurality of vectors based on a plurality of face images;
determining a centroid vector based on the plurality of vectors; and
determining the first encrypted vector based on the centroid vector using the organization-specific encryption key.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining a first vector based on the face image;
encrypting the first vector based on the organization-specific encryption key to generate the first encrypted vector; and
associating the first encrypted vector with the identifier in a database.

### Claim 4 (depends on 1)

The method of claim 1, wherein searching the first encrypted vector set comprises selecting the first encrypted vector based on a distance between the encrypted search vector and the first encrypted vector in a latent space of the first encrypted vector set.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
obtaining a request comprising the organization identifier; and
searching a set of keys based on the organization identifier to retrieve the organization-specific encryption key.

### Claim 6 (depends on 5)

The method of claim 5, wherein obtaining the encrypted search vector comprises obtaining the request, wherein the request comprises the encrypted search vector.

### Claim 7

A set of non-transitory, machine-readable media storing instructions that, when executed by a set of processors, causes the set of processors to perform operations comprising:
obtaining an encrypted search vector, wherein:
the encrypted search vector is determined based on a first image and a target encryption key, and
the target encryption key is associated with an organization identifier based on a parameter associated with the organization identifier stored in a record;
obtaining a first encrypted vector by searching an-a first encrypted vector set stored in a first database based on the encrypted search vector, wherein:
for each respective encrypted vector of the first encrypted vector set, the respective encrypted vector is generated by encrypting a respective vector using the target encryption key,
a second encrypted vector set is stored in a second database,
a second encrypted vector of the second encrypted vector set is encrypted without using the target encryption key, and
obtaining the first encrypted vector comprises selecting the first database for a search operation; and
decrypting the first encrypted vector to obtain an identifier associated with a second image used to generate the first encrypted vector.

### Claim 8 (depends on 7)

The set of non-transitory media of claim 7, wherein searching the first encrypted vector set comprises performing a nearest neighbor search through the first encrypted vector set based on the encrypted search vector.

### Claim 9 (depends on 7)

The set of non-transitory media of claim 7, wherein obtaining the first encrypted vector comprises:
obtaining a set of values indicating an access privilege;
obtaining initial results associated with an initial subset of vectors based on the searching of the first encrypted vector set; and
filtering the initial results based on the set of values to determine filtered results, wherein the filtered results comprise data associated with the first encrypted vector.

### Claim 10 (depends on 7)

The set of non-transitory media of claim 7, the operations further comprising:
obtaining video data comprising the first image;
extracting a set of face vectors based on the video data; and
determining the encrypted search vector based on a selected vector of the set of face vectors.

### Claim 11 (depends on 7)

The set of non-transitory media of claim 7, the operations further comprising obtaining:
a locality-specific parameter associated with a geographic location; and
determining the target encryption key based on the locality-specific parameter.

### Claim 12 (depends on 7)

The set of non-transitory media of claim 7, the operations further comprising:
determining a face vector based on the second image; and
encrypting the face vector using a homomorphic transformation based on a second encryption key to generate the second encrypted vector, wherein the second encryption key is associated with a second organization identifier.

### Claim 13 (depends on 7)

The set of non-transitory media of claim 7, wherein searching the first encrypted vector set comprises selecting the first encrypted vector based on a distance between the encrypted search vector and the first encrypted vector in a latent space of the first encrypted vector set.

### Claim 14

A system comprising:
one or more processors; and
memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to effectuate operations comprising:
obtaining an encrypted search vector, wherein:
the encrypted search vector is determined based on an image and a encryption key, and
the encryption key is associated with an organization identifier based on a parameter associated with the organization identifier stored in a record;
obtaining a first encrypted vector by searching a first encrypted vector set stored in a first database based on the encrypted search vector, wherein:
for each respective encrypted vector of the first encrypted vector set, the respective encrypted vector is generated by encrypting a respective vector using the encryption key,
a second encrypted vector set is stored in a second database,
a second encrypted vector of the second encrypted vector set is encrypted without using the encryption key, and
obtaining the first encrypted vector comprises selecting the first database for a search operation; and
decrypting the first encrypted vector to obtain an identifier associated with data used to generate the first encrypted vector.

### Claim 15 (depends on 14)

The system of claim 14, wherein searching the first encrypted vector set based on the encrypted search vector comprises searching a latent space of the first encrypted vector set based on a set of distances between vectors of the first encrypted vector set and the encrypted search vector.

### Claim 16 (depends on 14)

The system of claim 14, wherein the encrypted search vector is determined using a homomorphic transformation.

### Claim 17 (depends on 14)

The system of claim 14, wherein the identifier is associated with a set of images, the operations further comprising:
obtaining a bounding box outlining a face of the set of images; and
providing the set of images and the bounding box to a client computing device.

### Claim 18 (depends on 14)

The system of claim 14, the operations further comprising:
obtaining a video stream; and
determining the encrypted search vector based on an image of the video stream, wherein determining the encrypted search vector occurs in real-time with respect to the video stream.

### Claim 19 (depends on 14)

The system of claim 14, wherein the encrypted search vector is a first encrypted search vector, and wherein the encryption key is a first encryption key, and wherein the organization identifier is a first organization identifier, and the identifier is a first identifier, and the operations further comprising:
obtaining a second encrypted search vector, wherein:
the second encrypted search vector is determined based on the image and a second encryption key, and
the second encryption key is associated with a second organization identifier;
obtaining the second encrypted vector by searching the second encrypted vector set with the second encrypted search vector, wherein, for each respective encrypted vector of the second encrypted vector set, the respective encrypted vector is generated by encrypting a respective vector using the second encryption key; and
decrypting the second encrypted vector to obtain a second identifier associated with data used to generate the second encrypted vector.

### Claim 20 (depends on 14)

The system of claim 14, wherein the first encrypted vector set is stored in a separate database from the data used to generate the first encrypted vector.
