# US 7,610,627 B1 · Secure data exchange technique

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

- Number: US 7,610,627 B1
- Document ID: US7610627B1
- Status: Granted
- Kind: B1
- Application number: 10/865,180
- Filed: 2004-06-09
- Granted: 2009-10-27
- Earliest claimed: 2004-01-23
- Assignees: Acxiom Corporation
- Inventors: Eugene William McKenna
- Web page: https://patentgrep.com/patent/US7610627B1

## 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}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- G06F 21/6263: {during internet communication, e.g. revealing personal data from cookies}
- G06F 2221/2107: File encryption
- 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

Techniques utilizing common encryption approaches for data from multiple parties enable those parties to discover information that is held in common by the parties without disclosing to any party information that is not held in common by the parties. Encrypted information for each party can be compared to determine which encrypted values match, and those encrypted values can be returned to any of the parties such that a party can determine which corresponding data the parties have in common, without having access to any other data of any other parties.

## Claims

### Claim 1

A computer-implemented method of processing information, the method comprising:
accessing a first set of encrypted strings, the first set of encrypted strings generated by applying a first encryption function to each plaintext string in a first set of plaintext strings having a first character encoding;
accessing a second set of encrypted strings, the second set of encrypted strings generated by applying the first encryption function to each plaintext string in a second set of plaintext strings having a second character encoding;
determining whether the first and second character encodings are the same; and
if the first and second character encodings are the same, comparing the first set of encrypted strings with the second set of encrypted strings to determine a third set of encrypted strings comprising one or more encrypted strings that are included both in the first set of encrypted strings and in the second set of encrypted strings.

### Claim 2 (depends on 1)

The method of claim 1 further comprising determining a plaintext string corresponding to each encrypted string in the third set of encrypted strings.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
determining the first encryption function used to generate the first set of encrypted strings from the first set of plaintext strings; and
applying the first encryption function to plaintext strings in the second set of plaintext strings to produce the second set of encrypted strings.

### Claim 4 (depends on 1)

The method of claim 1 wherein the first set of encrypted strings is received from a first data processing system, the method further comprising:
communicating the third set of encrypted strings to the first data processing system; and
determining, at the first data processing system, a third set of plaintext strings comprising plaintext strings included in the first set of plaintext strings excluding plaintext strings corresponding to encrypted strings included in the third set of encrypted strings.

### Claim 5 (depends on 4)

The method of claim 4 wherein the first set of plaintext strings, the second set of plaintext strings, and the third set of plaintext strings comprise one or more plaintext email addresses, the method further comprising communicating an email from the first data processing system to each plaintext email address in the third set of plaintext strings.

### Claim 6 (depends on 1)

The method of claim 1 further comprising determining a fourth set of encrypted strings comprising encrypted strings from the first set of encrypted strings that are not included in the third set of encrypted strings.

### Claim 7 (depends on 6)

The method of claim 6 wherein the first set of encrypted strings is received from a first data processing system, the method further comprising:
communicating the fourth set of encrypted strings to the first data processing system; and
determining, at the first data processing system, a fourth set of plaintext strings comprising plaintext strings from the first set of plaintext strings corresponding to encrypted strings in the fourth set of encrypted strings.

### Claim 8 (depends on 7)

The method of claim 7 wherein the first set of plaintext strings, the second set of plaintext strings, the third set of plaintext strings, and the fourth set of plaintext strings comprise one or more plaintext email addresses, the method further comprising communicating an email from the first data processing system to each plaintext email address in the fourth set of plaintext strings.

### Claim 9 (depends on 6)

The method of claim 6 further comprising determining a plaintext string from the first set of plaintext strings corresponding to each encrypted string in the fourth set of encrypted strings.

### Claim 10

A computer program product stored on a computer-readable medium for processing information, the computer program product comprising:
code for accessing a first set of encrypted strings, the first set of encrypted strings generated by applying a first encryption function to each plaintext string in a first set of plaintext strings having a first character encoding;
code for accessing a second set of encrypted strings, the second set of encrypted strings generated by applying the first encryption function to each plaintext string in a second set of plaintext strings having a second character encoding;
code for determining whether the first and second character encodings are the same; and
code for, if the first and second character encodings are determined to be the same, comparing the first set of encrypted strings with the second set of encrypted strings to determine a third set of encrypted strings comprising one or more encrypted strings that are included in the first set of encrypted strings and included in the second set of encrypted strings.

### Claim 11 (depends on 10)

The computer program product of claim 10 further comprising code for determining a plaintext string corresponding to each encrypted string in the third set of encrypted strings.

### Claim 12 (depends on 10)

The computer program product of claim 10 further comprising:
code for determining the first encryption function used to generate the first set of encrypted strings from the first set of plaintext strings; and
code for applying the first encryption function to plaintext strings in the second set of plaintext strings to produce the second set of encrypted strings.

### Claim 13 (depends on 10)

The computer program product of claim 10 wherein the first set of encrypted strings is received from a first data processing system, the computer program product further comprising:
code for communicating the third set of encrypted strings to the first data processing system; and
code for determining, at the first data processing system, a third set of plaintext strings comprising plaintext strings included in the first set of plaintext strings excluding plaintext strings corresponding to encrypted strings included in the third set of encrypted strings.

### Claim 14 (depends on 13)

The computer program product of claim 13 wherein the first set of plaintext strings, the second set of plaintext strings, and the third set of plaintext strings comprise one or more plaintext email addresses, the computer program product further comprising code for communicating an email from the first data processing system to each plaintext email address in the third set of plaintext strings.

### Claim 15 (depends on 10)

The computer program product of claim 10 further comprising code for determining a fourth set of encrypted strings comprising encrypted strings from the first set of encrypted strings that are not included in the third set of encrypted strings.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein the first set of encrypted strings is received from a first data processing system, the computer program product further comprising:
code for communicating the fourth set of encrypted strings to the first data processing system; and
code for determining, at the first data processing system, a fourth set of plaintext strings comprising one or more plaintext strings from the first set of plaintext strings corresponding to encrypted strings in the fourth set of encrypted strings.

### Claim 17 (depends on 16)

The computer program product of claim 16 wherein the first set of plaintext strings, the second set of plaintext strings, the third set of plaintext strings, and the fourth set of plaintext strings comprise one or more plaintext email addresses, the computer program product further comprising code for communicating an email from the first data processing system to each plaintext email address in the fourth set of plaintext strings.

### Claim 18 (depends on 15)

The computer program product of claim 15 further comprising code for determining a plaintext string from the first set of plaintext strings corresponding to each encrypted string in the fourth set of encrypted strings.

### Claim 19

A system comprising:
a first computer;
a second computer; and
a third computer coupled with the first computer and the second computer;
wherein the third computer is configured to:
receive a first set of encrypted strings from the first computer, the first set of encrypted strings generated by applying a first encryption function to each plaintext string in a first set of plaintext strings having a first character encoding, each plaintext string in the first set of plaintext strings having an encryption key appended thereto before applying the first encryption function;
receive a second set of encrypted strings from the second computer, the second set of encrypted strings generated by applying the first encryption function to each plaintext string in a second set of plaintext strings having a second character encoding, each plaintext string in the second set of plaintext strings having an encryption key appended thereto before applying the first encryption function;
determine whether the first and second character encodings are the same; and
if the first and second character encodings are determined to be the same, compare the first set of encrypted strings with the second set of encrypted strings to determine a third set of encrypted strings comprising one or more encrypted strings that are included both in the first set of encrypted strings and in the second set of encrypted strings.

### Claim 20 (depends on 19)

The system of claim 19 wherein:
the third computer is configured to communicate the third set of encrypted strings to the first computer; and
the first computer is configured to determine a third set of plaintext strings comprising plaintext strings included in the first set of plaintext strings corresponding to the encrypted strings included in the third set of encrypted strings.

### Claim 21 (depends on 19)

The system of claim 19 wherein:
the third computer is configured to communicate the third set of encrypted strings to the first computer; and
the first computer is configured to determine a third set of plaintext strings comprising plaintext strings included in the first set of plaintext strings excluding plaintext strings corresponding to encrypted strings included in the third set of encrypted strings.

### Claim 22 (depends on 21)

The system of claim 21 wherein:
the third set of plaintext strings comprises email addresses; and
the first computer is configured to send an email to each address in the third set of plaintext strings.

### Claim 23 (depends on 19)

The system of claim 19 wherein:
the third computer is configured to:
determine a fourth set of encrypted strings comprising encrypted strings from the first set of encrypted strings that are not included in the third set of encrypted strings; and
communicate the fourth set of encrypted strings to the first computer; and
the first computer is configured to determine a fourth set of plaintext strings from the first set of plaintext strings corresponding to encrypted strings in the fourth set of encrypted strings.

### Claim 24 (depends on 23)

The system of claim 23 wherein:
the fourth set of plaintext strings comprises email addresses; and
the first computer is configured to send an email to each email address in the fourth set of plaintext strings.

### Claim 25

An apparatus comprising:
a memory;
means for receiving a first set of encrypted strings, the first set of encrypted strings generated by applying a first encryption function to each plaintext string in a first set of plaintext strings having a first character encoding, each plaintext string in the first set of plaintext strings having an encryption key appended thereto before applying the first encryption function;
means for receiving a second set of plaintext strings having a second character encoding;
means for determining the first encryption function used to generate the first set of encrypted strings from the first set of plaintext strings;
means for applying the first encryption function to plaintext strings in the second set of plaintext strings to produce a second set of encrypted strings, each plaintext string in the second set of plaintext strings having an encryption key appended thereto before applying the first encryption function;
means for comparing the first and second character encodings; and
means for, if the first and second character encodes are the same, comparing the first set of encrypted strings with the second set of encrypted strings to determine a third set of encrypted strings comprising one or more encrypted strings that are included both in the first set of encrypted strings and in the second set of encrypted strings.

### Claim 26 (depends on 25)

The apparatus of claim 25 further comprising:
means for determining a plaintext string corresponding to each encrypted string in the third set of encrypted strings.
