IP Library Granted Patent US 11,032,255
Granted Patent B2
US 11,032,255 · App. 16/378,403 · Granted Jun 8, 2021

Secure comparison of information

Inventor: Anthony Nicholls (Boston, MA)
Assignee: OpenEye Scientific, Inc.
H04L63/0478H04L9/0825H04L9/30H04L9/3236H04L9/008H04L9/302H04L9/3218H04L2209/20
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 11,032,255
App. No.
16/378,403
Granted
Jun 8, 2021
Kind
B2
Abstract

The technology encompasses new uses of already-known cryptographic techniques. The technology entails computer-based methods of sharing information securely, in particular an asymmetric method of secure computation that relies on the private-key/public key paradigm with homomorphic encryption. The methods and programmed computing apparatuses herein apply mathematical concepts to services or tasks that are commercially useful and that have not hitherto been possible. Applications of the methods within cloud computing paradigms are presented. Applications of the methods and apparatus herein are far-ranging and include, but are not limited to: purchase-sale transactions such as real estate or automobiles, where some aspect of price negotiation is expected; stock markets; legal settlements; salary negotiation; auctions, and other types of complex financial transactions.

Claims (60)

1. A method of calculating a level of similarity of a first piece of data from a first party to a second piece of data from a second party without revealing the first and second pieces of data themselves, the method comprising:

creating, with a first device, a first fingerprint from a first piece of data, wherein the first fingerprint is a hit string that that represents one of more properties associated with the first piece of data;

generating a GM key with a public key& and private key;

encrypting the first fingerprint with the public key& to create an encrypted first fingerprint;

sending the public key to the second device, wherein the second device encrypts a second fingerprint of the second piece of data with the public key to create an encrypted second fingerprint;

sending the encrypted first fingerprint to the second device, wherein the second device generates a scrambled encrypted fingerprint XOR from at least the encrypted first fingerprint and the encrypted second fingerprint;

receiving, with the first device, the scrambled encrypted fingerprint XOR to the first party;

decrypting the scrambled encrypted fingerprint XOR using the private key; and

determining a similarity in the scrambled fingerprint XOR, thereby learning the level of similarity between the first and second fingerprints.

2. The method of claim 1 , wherein the second device generates the scrambled encrypted fingerprint XOR by performing an XOR operation on the encrypted first fingerprint and the encrypted second fingerprint, thereby creating an encrypted fingerprint XOR and scrambling the encrypted fingerprint XOR to create a scrambled encrypted fingerprint XOR.

3. The method of claim 1 , wherein the determining of the similarity between the first and second fingerprints comprises:

counting the number of bits in the scrambled fingerprint XOR.

4. The method of claim 1 , wherein the first and second parties are using mobile computing devices.

5. The method of claim 1 wherein the first and second pieces of data each comprise one or more molecular structures encoded digitally.

6. The method of claim 1 , wherein the first and second fingerprints each include one or more bits that represent activity of a molecule in an assay.

7. The method of claim 1 , wherein the first and second fingerprints each include one or more bits that encode a three dimensional shape of a molecule.

8. The method of claim 1 , wherein the scrambling of a fingerprint comprises introducing a random bit padding.

9. A computer apparatus configured to accept and act on input from a first party and a second party, the apparatus comprising:

one or more computing devices, each of which is equipped with a memory, a user interface, a data storage medium, a network interface, and a processing unit, in communication with one another,

wherein each of the one or more processing units is configured to execute instructions for calculating a level of similarity between a first piece of data received from the first party and a second piece of data received from the second party without revealing the first and second pieces of data themselves, the instructions comprising:

an instruction to create, with a first device, a first fingerprint from a first piece of data, wherein the first fingerprint is a bit string that that represents one of more properties associated with the first piece of data;

an instruction to generate a GM key with an associated public key and private key;

an instruction to encrypt the first fingerprint with the public key to create an encrypted first fingerprint;

an instruction to send the public key to the second device, wherein the second device encrypts a second fingerprint of the second piece of data with the public key to create an encrypted second fingerprint;

an instruction to send the encrypted first fingerprint to the second device, wherein the second device generates a scrambled encrypted fingerprint XOR from at least the encrypted first fingerprint and the encrypted second fingerprint;

an instruction to receive with the first device, the scrambled encrypted fingerprint XOR to the first party;

an instruction to decrypt the scrambled encrypted fingerprint XOR using the private key; and

an instruction to determine a similarity in the scrambled fingerprint XOR, thereby learning the level of similarity between the first and second fingerprints.

10. A method of comparing a first piece of data from a first party and a second piece of data from a second party without revealing the first and second pieces of data themselves, the method comprising:

creating, with a first device, a first fingerprint from a first piece of data, wherein the first fingerprint is a bit string that that represents one of more properties associated with the first piece of data;

generating a GM key with an associated public key and private key;

encrypting the first fingerprint with the public key to create an encrypted first fingerprint;

uploading the encrypted first fingerprint to a first cloud account;

sending the public key to the second device, wherein the second device encrypts a second fingerprint of the second piece of data with the public key to create an encrypted second fingerprint and the second device uploads the encrypted second fingerprint to a second cloud account;

allowing access to the encrypted first fingerprint to the second cloud account, wherein the second cloud account generates a scrambled encrypted fingerprint XOR from at least the encrypted first fingerprint and the encrypted second fingerprint;

receiving, with the first device, access to the scrambled encrypted fingerprint XOR for the first cloud account;

evaluating the number of hits that are turned on in the scrambled encrypted fingerprint XOR using the private key;

storing this number in encrypted form on the first cloud account;

downloading the encrypted result from the first cloud account; and

decrypting the encrypted result to determine the level of similarity between the first and second fingerprints.

11. The method of claim 10 , wherein the second device generates the scrambled encrypted fingerprint XOR by performing an XOR operation on the encrypted first fingerprint and the encrypted second fingerprint, thereby creating an encrypted fingerprint XOR and scrambling the encrypted fingerprint XOR to create a scrambled encrypted fingerprint XOR.

12. The method of claim 10 , wherein the first and second parties are using mobile computing devices.

13. The method of claim 10 , wherein the first and second pieces of data each comprise one or more molecular structures encoded digitally.

14. The method of claim 10 , wherein the first and second fingerprints each include one or more bits that represent activity of a molecule in an assay.

15. The method of claim 10 , wherein the first and second fingerprints each include one or more bits that encode a three dimensional shape of a molecule.

16. The method of claim 10 , wherein the scrambling of a fingerprint comprises introducing a random bit padding.

17. A computer apparatus configured to accept and act on input from a first party and a second party, the apparatus comprising:

one or more computing devices, each of which is equipped with a memory, a user interface, a data storage medium, a network interface, and a processing unit, in communication with one another,

wherein each of the one or more processing units is configured to execute instructions for comparing a first piece of data received from the first party and a second piece of data received from the second party without revealing the first and second pieces of data themselves, the instructions comprising:

an instruction to create, with a first device, a first fingerprint from a first piece of data, wherein the first fingerprint is a bit string that that represents one of more properties associated with the first piece of data;

an instruction to generate a GM key with an associated public key and private key;

an instruction to encrypt the first fingerprint with the public key to create an encrypted first fingerprint;

an instruction to upload the encrypted first fingerprint to a first cloud account;

an instruction to send the public key to the second device, wherein the second device encrypts a second fingerprint of the second piece of data with the public key to create an encrypted second fingerprint and the second device uploads the encrypted second fingerprint to a second cloud account;

an instruction to allow access to the encrypted first fingerprint to the second secure cloud account, wherein the second secure account generates a scrambled encrypted fingerprint XOR from at least the encrypted first fingerprint and the encrypted second fingerprint;

an instruction to receive, with the first device, access to the scrambled encrypted fingerprint XOR for the first cloud account;

an instruction to evaluate the number of bits that are turned on in the scrambled encrypted fingerprint XOR using the private key;

an instruction to store this number in encrypted form on the first cloud account;

an instruction to download the encrypted result from the first cloud account; and

an instruction to decrypting the encrypted result to determine the level of similarity between the first and second fingerprints.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2022
From: NICHOLLS, ANTHONY
To: OPENEYE SCIENTIFIC SOFTWARE, INC.
Reel/Frame 060551/0595 →
Continuity (4)
Continuation 15332515 · Oct 24, 2016
Continuation In Part 14920728 · Oct 22, 2015
Provisional Application 62067373 · Oct 22, 2014
Related Publication 20200084191A1 · Mar 12, 2020
Cited By (3)
US 12,216,719 US 12,375,264 US 12,682,375