# US 11,310,207 B1 · Systems and methods for exchanging data between devices

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

- Number: US 11,310,207 B1
- Document ID: US11310207B1
- Status: Granted
- Kind: B1
- Application number: 17/128,846
- Filed: 2020-12-21
- Granted: 2022-04-19
- Earliest claimed: 2020-12-21
- Assignees: Shopify Inc.
- Applicants: Shopify Inc.
- Inventors: Joshua Davey; Jiawei Du; Fernando Nogueira
- Web page: https://patentgrep.com/patent/US11310207B1

## CPC

- H04L 63/0414: {during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication}
- H04L 9/008: {involving homomorphic encryption}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/0478: {applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key (cryptographic mechanisms or cryptographic arrangements using a plurality of keys or algorithms H04L9/14)}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

System and methods are provided to facilitate the exchange of user data between two parties, but limit the exchange of user data to users that are known to both parties. According to an embodiment, encrypted first user data is transmitted from a first device to a second device. The second device then transmits intersection data to the first device, where the intersection data is based on the encrypted first user data and second user data. The intersection data may be decrypted by the first device and the first device may determine, based on the decrypted intersection data, that one or more users are common to the both the first device and the second device. The first and second devices may then exchange data pertaining to the common users.

## Claims

### Claim 1

A computer-implemented method comprising:
encrypting first user data with a first key to obtain encrypted first user data corresponding to a first set of users;
transmitting the encrypted first user data to a device;
receiving intersection data from the device, the intersection data based on the encrypted first user data and second user data corresponding to a second set of users;
decrypting at least some of the intersection data with a second key to obtain decrypted intersection data;
determining, based on the decrypted intersection data, an overlap between at least some of the first user data and at least some of the second user data, the overlap corresponding to users that are in both of the first set of users and the second set of users; and
exchanging activity data with the device corresponding to the users that are in both of the first set of users and the second set of users.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein:
determining the overlap between the at least some of the first user data and the at least some of the second user data comprises determining that an identifier of a user is in the first user data and in the second user data; and
the activity data comprises personal information corresponding to the user.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the activity data includes a record of digital advertising presented to the user.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein encrypting the first user data with the first key to obtain the encrypted first user data comprises homomorphically encrypting the first user data with the first key to obtain the encrypted first user data.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the intersection data is based on a difference between the encrypted first user data and encrypted second user data, the encrypted second user data corresponding to the second user data encrypted with the first key.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein determining the overlap between the at least some of the first user data and the at least some of the second user data comprises determining that the difference equals zero.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein at least one of the first user data and the second user data comprises an identifier of a user and padding data.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
transmitting at least one short identifier of the first user data to the device, wherein the second user data is associated with the at least one short identifier.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein encrypting the first user data with the first key to obtain the encrypted first user data comprises commutatively encrypting the first user data with the first key to obtain the encrypted first user data.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the intersection data is based on double-encrypted first user data and encrypted second user data, the double-encrypted first user data corresponding to the encrypted first user data further encrypted with a third key, and the encrypted second user data corresponding to the second user data encrypted with the third key.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, wherein:
decrypting the at least some of the intersection data with the second key to obtain the decrypted intersection data comprises decrypting the double-encrypted first user data with the second key to obtain the decrypted intersection data; and
determining the overlap between the at least some of the first user data and the at least some of the second user data comprises determining an overlap between the decrypted intersection data and the encrypted second user data.

### Claim 12

A computer-implemented method comprising:
receiving encrypted first user data from a device, the encrypted first user data corresponding to first user data encrypted with a key and the first user data corresponding to a first set of users;
obtaining second user data corresponding to a second set of users;
encrypting the second user data to obtain encrypted second user data;
transmitting intersection data to the device, the intersection data based on the encrypted first user data and the encrypted second user data; and
exchanging activity data with the device corresponding to the users that are in both of the first set of users and the second set of users.

### Claim 13

A system comprising:
memory to store first user data corresponding to a first set of users; and
at least one processor to:
encrypt the first user data with a first key to obtain encrypted first user data;
transmit the encrypted first user data to a device;
receive intersection data from the device, the intersection data based on the encrypted first user data and second user data corresponding to a second set of users;
decrypt at least some of the intersection data with a second key to obtain decrypted intersection data;
determine, based on the decrypted intersection data, an overlap between at least some of the first user data and at least some of the second user data, the overlap corresponding to users that are in both of the first set of users and the second set of users; and
exchange activity data with the device corresponding to the users that are in both of the first set of users and the second set of users.

### Claim 14 (depends on 13)

The system of claim 13, wherein:
the overlap comprises an identifier of a user that is in the first user data and in the second user data; and
the activity data comprises personal information corresponding to the user.

### Claim 15 (depends on 14)

The system of claim 14, wherein the activity data includes a record of digital advertising presented to the user.

### Claim 16 (depends on 13)

The system of claim 13, wherein the at least one processor is to homomorphically encrypt the first user data with the first key to obtain the encrypted first user data.

### Claim 17 (depends on 16)

The system of claim 16, wherein the intersection data is based on a difference between the encrypted first user data and encrypted second user data, the encrypted second user data corresponding to the second user data encrypted with the first key.

### Claim 18 (depends on 17)

The system of claim 17, wherein the at least one processor is to determine the overlap based on the difference being equal to zero.

### Claim 19 (depends on 13)

The system of claim 13, wherein at least one of the first user data and the second user data comprises an identifier of a user and padding data.

### Claim 20 (depends on 13)

The system of claim 13, wherein the at least one processor is further to transmit at least one short identifier of the first user data to the device, wherein the second user data is associated with the at least one short identifier.

### Claim 21 (depends on 13)

The system of claim 13, wherein the at least one processor is to commutatively encrypt the first user data with the first key to obtain the encrypted first user data.

### Claim 22 (depends on 21)

The system of claim 21, wherein the intersection data is based on double-encrypted first user data and encrypted second user data, the double-encrypted first user data corresponding to the encrypted first user data further encrypted with a third key, and the encrypted second user data corresponding to the second user data encrypted with the third key.

### Claim 23 (depends on 22)

The system of claim 22, wherein the at least one processor is to:
decrypt the double-encrypted first user data with the second key to obtain the decrypted intersection data; and
determine the overlap between the at least some of the first user data and the at least some of the second user data based on an overlap between the decrypted intersection data and the encrypted second user data.

### Claim 24

A non-transitory computer readable medium storing computer executable instructions which, when executed by a computer, cause the computer to perform a method comprising:
encrypting first user data with a first key to obtain encrypted first user data corresponding to a first set of users;
transmitting the encrypted first user data to a device;
receiving intersection data from the device, the intersection data based on the encrypted first user data and second user data corresponding to a second set of users;
decrypting at least some of the intersection data with a second key to obtain decrypted intersection data;
determining, based on the decrypted intersection data, an overlap between at least some of the first user data and at least some of the second user data, the overlap corresponding to users that are in both of the first set of users and the second set of users; and
exchanging activity data with the device corresponding to the users that are in both of the first set of users and the second set of users.
