IP Library Granted Patent US 12,015,692
Granted Patent B2
US 12,015,692 · App. 17/937,026 · Granted Jun 18, 2024

Enhanced encryption for face-related data

Inventors: Kiumars Soltani (Redwood City, CA); Yuewei Wang (Mountain View, CA); Kabir Chhabra (Sunnyvale, CA); Jose M. Giron Nanne (San Francisco, CA); Yunchao Gong (Los Altos, CA)
Assignee: Verkada Inc.
H04L9/008G06F21/602
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,015,692
App. No.
17/937,026
Granted
Jun 18, 2024
Kind
B2
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 (76)

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.

2. 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.

3. 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.

4. 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.

5. 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.

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

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.

8. 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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

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.

15. 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.

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

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2024
From: VERKADA INC.
To: FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 068758/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2022
From: SOLTANI, KIUMARS; WANG, YUEWEI; CHHABRA, KABIR; GIRON NANNE, JOSE M.; GONG, YUNCHAO
To: VERKADA INC.
Reel/Frame 061308/0277 →
Continuity (2)
Continuation 17716424 · Apr 8, 2022
Related Publication 20230327848A1 · Oct 12, 2023
Cited By (1)
US 12,640,904