# US 12,120,083 B2 · Differential privacy for message text content mining

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

- Number: US 12,120,083 B2
- Document ID: US12120083B2
- Status: Granted
- Kind: B2
- Application number: 18/211,973
- Filed: 2023-06-20
- Published: 2023-10-26
- Granted: 2024-10-15
- Earliest claimed: 2016-09-23
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Eric D. Friedman; Ritwik K. Kumar; Lucas O. Winstrom
- Web page: https://patentgrep.com/patent/US12120083B2

## CPC

- H04L 51/23: Reliability checks, e.g. acknowledgments or fault reporting
- G06F 16/35: Clustering; Classification
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- G06F 40/289: Phrasal analysis, e.g. finite state techniques or chunking
- H04L 51/212: using filtering or selective blocking
- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- 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)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Systems and methods are disclosed for determining whether a message received by a client may be spam, in a computing environment that preserves privacy. The message may be encrypted. A client invokes the methods when a message is received from a sender that is not known to the client. A client can decrypt the message, break the message into chunks, and apply a differentially private algorithm to the set of chunks. The client transmits the differentially private message sketches to an aggregation server. The aggregation server receives a large collection of such message sketches for a large plurality of clients. The aggregation server returns aggregated message chunk (e.g. frequency) information to the client to assist the client in determining whether the message may be spam. The client can process the message based on the determination without disclosing the message content to the server.

## Claims

### Claim 1

A computer-implemented method performed by a client device, the method comprising:
transforming a message into a set of chunks;
receiving a homomorphic encryption key and an encrypted frequency vector from a server, wherein the encrypted frequency vector is encrypted using the homomorphic encryption key;
applying homomorphic encryption using the received homomorphic encryption key to each individual chunk in the set of chunks to generate a set of encrypted message chunks;
combining the set of encrypted message chunks with the encrypted frequency vector via a homomorphic computation to compute a homomorphically encrypted score;
transmitting the homomorphically encrypted score to an aggregation server to enable determination of an action for processing the message;
receiving message information from the aggregation server, the message information related to the action for processing the message based on the determined homomorphically encrypted score; and
determining the action for processing the message based at least in part on the message information received from the aggregation server.

### Claim 2 (depends on 1)

The computer-implemented method according to claim 1, wherein the message is an e-mail.

### Claim 3 (depends on 1)

The computer-implemented method according to claim 1, further comprising:
determining whether a sender of the message is known; and
wherein determining the action for processing the message is based at least in part on the sender not being known.

### Claim 4 (depends on 3)

The computer-implemented method according to claim 3, wherein the sender is known when an address of the sender is found in a contacts database on the client device or the address of the sender is found in a sender or receiver field of a message in a message database on the client device.

### Claim 5 (depends on 1)

The computer-implemented method according to claim 1, further comprising decrypting the message prior to applying the homomorphic encryption to each individual chunk the set of chunks of the message.

### Claim 6 (depends on 1)

The computer-implemented method according to claim 1, wherein receiving the message information from the aggregation server includes receiving an encrypted message score from the aggregation server and decrypting the encrypted message score to obtain a message score.

### Claim 7 (depends on 1)

The computer-implemented method according to claim 1, further comprising executing the determined action for processing the message.

### Claim 8 (depends on 1)

The computer-implemented method according to claim 1, wherein the message is received from a message server.

### Claim 9

A non-transitory computer readable medium programmed with instructions that, when executed by a client device comprising a processing system having at least one hardware processor, performs operations comprising:
transforming a message into a set of chunks;
receiving a homomorphic encryption key and an encrypted frequency vector from a server, wherein the encrypted frequency vector is encrypted using the homomorphic encryption key;
applying homomorphic encryption using the received homomorphic encryption key to each individual chunk in the set of chunks to generate a set of encrypted message chunks;
combining the set of encrypted message chunks with the encrypted frequency vector via a homomorphic computation to compute a homomorphically encrypted score;
transmitting the homomorphically encrypted score to an aggregation server to enable determination of an action for processing the message;
receiving message information from the aggregation server, the message information related to the action for processing the message based on the determined homomorphically encrypted score; and
determining the action for processing the message based at least in part on the message information received from the aggregation server.

### Claim 10 (depends on 9)

The non-transitory computer readable medium according to claim 9, wherein the message is an e-mail.

### Claim 11 (depends on 9)

The non-transitory computer readable medium according to claim 9, further comprising:
determining whether a sender of the message is known; and
wherein determining the action for processing the message is based at least in part on the sender not being known.

### Claim 12 (depends on 11)

The non-transitory computer readable medium according to claim 11, wherein the sender is known when an address of the sender is found in a contacts database on the client device or the address of the sender is found in a sender or receiver field of a message in a message database on the client device.

### Claim 13 (depends on 9)

The non-transitory computer readable medium according to claim 9, further comprising decrypting the message prior to applying the homomorphic encryption to each individual chunk the set of chunks of the message.

### Claim 14 (depends on 9)

The non-transitory computer readable medium according to claim 9, further comprising executing the determined action for processing the message.

### Claim 15

A system comprising:
a processing system coupled to a memory programmed with executable instructions that, when executed by the processing system on a client device perform operations, comprising:
transforming a message into a set of chunks;
receiving a homomorphic encryption key and an encrypted frequency vector from a server, wherein the encrypted frequency vector is encrypted using the homomorphic encryption key;
applying homomorphic encryption using the received homomorphic encryption key to each individual chunk in the set of chunks to generate a set of encrypted message chunks;
combining the set of encrypted message chunks with the encrypted frequency vector via a homomorphic computation to compute a homomorphically encrypted score;
transmitting the homomorphically encrypted score to an aggregation server to enable determination of an action for processing the message;
receiving message information from the aggregation server, the message information related to the action for processing the message based on the determined homomorphically encrypted score; and
determining the action for processing the message based at least in part on the message information received from the aggregation server.

### Claim 16 (depends on 15)

The system according to claim 15, wherein the message is an e-mail.

### Claim 17 (depends on 15)

The system according to claim 15, further comprising:
determining whether a sender of the message is known; and
wherein determining the action for processing the message is based at least in part on the sender not being known.

### Claim 18 (depends on 17)

The system according to claim 17, wherein the sender is known when an address of the sender is found in a contacts database on the client device or the address of the sender is found in a sender or receiver field of a message in a message database on the client device.

### Claim 19 (depends on 15)

The system according to claim 15, further comprising decrypting the message prior to applying the homomorphic encryption to each individual chunk the set of chunks of the message.

### Claim 20 (depends on 15)

The system according to claim 15, further comprising executing the determined action for processing the message.
