# US 2025/0165636 A1 · Systems and methods to perform end to end encryption

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

- Number: US 2025/0165636 A1
- Document ID: US20250165636A1
- Status: Published application
- Kind: A1
- Application number: 18/737,146
- Filed: 2024-06-07
- Published: 2025-05-22
- Earliest claimed: 2023-11-22
- Assignees: Verkada Inc.
- Applicants: Verkada Inc.
- Inventors: Benjamin J. BERCOVITZ; Anurag ARORA
- Web page: https://patentgrep.com/patent/US20250165636A1

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/31: User authentication
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A first document including a decrypting version of a first key and a second document including a representation of a login token are received from the first compute device. An encrypted second key that has been encrypted by an encrypting version of the first key is received after receiving the login token from a second compute device. The second compute device stores the encrypting version of the first key before the receiving of the first document. The encrypted second key is decrypted using the decrypting version of the first key to obtain a plaintext second key. Encrypted sensor data that includes plaintext sensor data that has been (1) captured prior to the receiving of the first document, and (2) encrypted by the plaintext second key is received from the second compute device. The encrypted sensor data is decrypted using the plaintext second key to obtain the plaintext sensor data.

## Claims

### Claim 1

A non-transitory, processor-readable medium storing instructions that, when executed by a processor, cause the processor to:
receive, at a third compute device and from a second compute device, a representation of a URL and a first public key;
receive, at the third compute device and from a first compute device, a representation of the URL and a second public key;
perform, at the third compute device, a cryptographic key exchange with the second compute device and the first compute device;
generate, at the third compute device, a shared key in response to performing the cryptographic key exchange;
encrypt, at the third compute device, the shared key using the first public key to generate a first encrypted shared key;
encrypt, at the third compute device, the shared key using the second public key to generate a second encrypted shared key;
send, from the third compute device, the first encrypted shared key to the second compute device to cause the second compute device to decrypt the first encrypted shared key to generate a first decrypted shared key;
send, from the third compute device, the second encrypted shared key to the first compute device to cause the first compute device to decrypt the second encrypted shared key to generate a second decrypted shared key;
receive, at the third compute device, a representation of a first code derived from the first decrypted shared key and a representation of a second code derived from the second decrypted shared key; and
determine, at the third compute device, if the cryptographic key exchange was intercepted based on a comparison of the first code and the second code.

### Claim 2 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein:
the representation of the URL and the first public key is a first quick response (QR) code;
the representation of the URL and the second public key is a second QR code;
the instructions to receive the representation of the URL and the first public key include instructions to cause the processor to scan the first QR code when displayed at the second compute device; and
the instructions to receive the representation of the URL and the second public key includes instructions to cause the processor to scan the second QR code when displayed at the first compute device.

### Claim 3 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein:
the representation of the URL and the first public key is a first quick response (QR) code displayed at a first website accessed by the second compute device;
the representation of the URL and the second public key is a second QR code displayed at a second website accessed by the first compute device;
the instructions to receive the representation of the URL and the first public key include instructions to cause the processor to scan the first QR code when displayed at the second compute device; and
the instructions to receive the representation of the URL and the second public key include instructions that, when executed by the processor, cause the processor to scan the second QR code when displayed at the first compute device.

### Claim 4 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein:
the representation of the first code is displayed at the second compute device;
the representation of the second code is displayed at the first compute device;
the instructions to receive the representation of the first code include instructions to cause the processor to capture an image of the first code displayed at the second compute device; and
the instructions to receive the representation of the second code includes instructions to cause the processor to capture an image of the second code displayed at the first compute device.

### Claim 5 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein the cryptographic key exchange is a Diffie-Hellman cryptographic key exchange.

### Claim 6 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein the first code includes a first hash value and the second code includes a second hash value.

### Claim 7 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein the first code includes a first checksum value and the second code includes a second checksum value.

### Claim 8 (depends on 1)

The non-transitory, processor-readable medium of claim 1, wherein the non-transitory, processor-readable medium further stores instructions that, when executed by the processor, cause the processor to:
receive, via the first decrypted shared key, at the third compute device, and from the second compute device, a key; and
send, via the second decrypted shared key, from the third compute device, and to the first compute device, the key.

### Claim 9

A method, comprising:
generating, via a processor of a first compute device, a representation of a URL and a first version of a key associated with the first compute device;
causing display, via the processor, of the representation of the URL and the first version of the key, to facilitate capture of the representation of the URL and the first version of the key by a third compute device;
performing, via the processor, a cryptographic key exchange with the third compute device or a second compute device;
receiving, via the processor and from the third compute device, an encrypted shared key encrypted using the first version of the key;
decrypting, via the processor, the encrypted shared key using a second version of the key to obtain a first unencrypted shared key; and
causing display, via the processor, of a first code derived from the first unencrypted shared key, the first code received at the third compute device and used, along with a second code (1) derived from a second unencrypted shared key and displayed at the second compute device and (2) received at the third compute device, by the third compute device to determine whether the cryptographic key exchange was intercepted.

### Claim 10 (depends on 9)

The method of claim 9, wherein:
the representation of the URL and the first version of the key is a quick response (QR) code, and
the second compute device receives the representation of the URL and the first version of the key by scanning the QR code.

### Claim 11 (depends on 9)

The method of claim 9, wherein the representation of the URL and the first version of the key is a QR code displayed at a first website.

### Claim 12 (depends on 9)

The method of claim 9, wherein the cryptographic key exchange is a Diffie-Hellman cryptographic key exchange.

### Claim 13 (depends on 9)

The method of claim 9, wherein:
the first code includes a first hash value, and
the second code includes a second hash value.

### Claim 14 (depends on 9)

The method of claim 9, wherein:
the first code includes a first checksum value, and
the second code includes a second checksum value.

### Claim 15 (depends on 9)

The method of claim 9, wherein the key is a first key, the method further comprising:
sending, via the processor, a second key to the third compute device by the first unencrypted shared key, the third compute device configured to send the second key to the second compute device by the second unencrypted shared key in response to receiving the second key.

### Claim 16 (depends on 9)

The method of claim 9, wherein the key is a first key, the method further comprising:
receiving, via the processor, a second key from the second compute device by the first unencrypted shared key, the second key received at the second compute device from the second compute device by the second unencrypted shared key.

### Claim 17

A non-transitory, processor-readable medium storing instructions that, when executed by a processor, cause the processor to:
wrap, at a first compute device, a first key with a transfer key to generate a wrapped key, the transfer key generated at the first compute device;
send a representation of the wrapped key from the first compute device to a second compute device; and
send a representation of the transfer key from the first compute device to a third compute device, the third compute device receiving the wrapped key from the second compute device and unwrapping the wrapped key using the transfer key to obtain the first key after the third compute device receives the representation of the transfer key.

### Claim 18 (depends on 17)

The non-transitory, processor-readable medium of claim 17, wherein the instructions to cause the processor to send the representation of the transfer key to the third compute device includes instructions that, when executed by the processor, cause the processor to:
display, via a website, a quick response (QR) code representing the transfer key,
the third compute device configured to scan the QR code.

### Claim 19 (depends on 17)

The non-transitory, processor-readable medium of claim 17, wherein the instructions to send the representation of the transfer key to the third compute device include instructions to send the representation of the transfer key to the third compute device via an email.

### Claim 20 (depends on 17)

The non-transitory, processor-readable medium of claim 17, wherein the instructions to send the representation of the transfer key to the third compute device include instructions to send the representation of the transfer key to the third compute device via a text message.
