IP Library Granted Patent US 11,366,921
Granted Patent B2
US 11,366,921 · App. 16/487,893 · Granted Jun 21, 2022

Encrypting data records and processing encrypted records without exposing plaintext

Inventors: Aviad Lahav (Tel-Aviv, IL); Lev Rosenblit (Shoam, IL)
G06F21/6227G06F16/901G06F16/9038G06F16/90348G06F21/602G06F21/64H04L9/0643H04L9/0825H04L9/0891H04L9/0894H04L9/3239H04L2209/76
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,366,921
App. No.
16/487,893
Granted
Jun 21, 2022
Kind
B2
Abstract

A computer implemented method of applying a unified search for a match of one or more features in a plurality of encrypted records, comprising using one or more processors of a server associated with a database comprising a plurality of encrypted records. The processor(s) is adapted for receiving a query for searching one or more plaintext features in the plurality of encrypted, searching for a match of the one or more plaintext features using a first search methodology and a second search methodology and outputting an indication of matching encrypted records according to the match. Wherein the second search methodology is asymptotically faster than the first search methodology and wherein the first search methodology is used for searching a subset of the plurality of encrypted records selected based on status indication associated with each encrypted record.

Claims (34)

1. A computer implemented method of searching for a match of at least one feature in a plurality of encrypted records, comprising:

using at least one processor of a server associated with a database comprising a plurality of encrypted records, the at least one processor is adapted for:

receiving a query for searching at least one plaintext feature in the plurality of encrypted records, the query comprises a first hash value calculated for each of the at least one plaintext feature;

calculating, for each of the plurality of encrypted records, a second hash value based on the first hash value and a nonce associated with each encrypted record;

sorting a set of second hash values according to their value to provide a sorted hash array for the record by a fast feature encryptor;

searching for a match of the second hash value in each of a plurality of sorted hash arrays each associated with a respective one of the plurality of encrypted records using a binary search algorithm, each sorted hash array comprising the set of second hash values sorted according to their value, each of the second hash values is calculated for a respective feature of the respective encrypted record based on the first hash of the respective feature and the nonce of the respective encrypted record; and

outputting an indication of matching encrypted records according to the match.

2. A system for searching for a match of at least one feature in a plurality of encrypted records, comprising:

at least one processor of a server associated with a database comprising a plurality of encrypted records, the at least one processor is adapted to execute a code, the code comprising:

code instructions to receive, from at least client device, a query for searching at least one plaintext feature in the plurality of encrypted records, the query comprises a first hash value calculated for each of the at least one plaintext feature;

code instructions to calculate, for each of the plurality of encrypted records, a second hash value based on the first hash value and a nonce associated with each encrypted record;

code instructions to sort a set of second hash values according to their value to provide a sorted hash array for the record by a fast feature encryptor;

code instructions to search for a match of the second hash value in each of a plurality of sorted hash arrays each associated with a respective one of the plurality of encrypted records using a binary search algorithm, each sorted hash array comprising the set of second hash values sorted according to their value, each of the second hash values is calculated for a respective feature of the respective encrypted record based on the first hash of the respective feature and the nonce of the respective encrypted record; and

code instructions to output an indication of matching encrypted records according to the search.

3. A computer implemented method of searching for a match of at least one feature in a plurality of encrypted records, comprising:

using at least one processor of a server associated with a database comprising a plurality of encrypted records, the at least one processor is adapted for:

receiving a query for searching at least one plaintext feature in the plurality of encrypted records, the query comprises a first hash value calculated for the at least one plaintext feature;

searching for the plaintext feature in the plurality of encrypted records in a sequence of search iterations, each search iteration comprising:

selecting at least one value from a sequence of values and calculating at least one second hash value based on each of the at least one value and on the first hash value, and

searching for a match of the at least one second hash value in an encrypted index comprising a plurality of encrypted index entries each comprising a respective second hash value and an identifier associated with one of the plurality of the encrypted records; and

outputting an indication of matching encrypted records according to the match,

wherein the searching terminates at detection of at least one termination condition, and

wherein an identifier of the matching encrypted records is extracted from each of the encrypted index entries.

4. The computer implemented method of claim 3 , wherein the at least one termination condition comprises a first termination condition dictating termination of the search in case only some of the at least one second hash value selected in a current iteration has been found in the plurality of encrypted index entries.

5. The computer implemented method of claim 3 , wherein the at least one termination condition comprises a second termination condition dictating termination of the search in case a second hash value calculated based on a non-consecutive value is not found in the plurality of encrypted index entries in a previous iteration.

6. The computer implemented method of claim 3 , wherein selecting at least one value from a sequence of values comprises selecting non-consecutive values.

7. The computer implemented method of claim 3 , the method further comprising:

receiving one or more plaintext features extracted from a plaintext record; and

calculating a fast hash value for each of the plaintext features by applying a first pseudo random function on each plaintext feature using a first key.

8. The computer implemented method of claim 3 , the method further comprising:

generating a feature encryption key for each of the plaintext features by applying a second pseudo random function on each plaintext feature using a second key; and

outputting the first hash value and the encryption key for each of the plaintext features.

9. The computer implemented method of claim 3 , the method farther comprising:

initiating periodically a rebuilding process to apply indexing to one or more non-indexed encrypted records of the database by an index rebuilder.

Assignments (4)
SECURITY INTEREST Recorded Feb 14, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062973/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: ROSENBLIT, LEV
To: RINGCENTRAL, INC.
Reel/Frame 059868/0684 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2021
From: KINDITE LTD.
To: RINGCENTRAL, INC.
Reel/Frame 056272/0038 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2019
From: LAHAV, AVIAD
To: KINDITE LTD.
Reel/Frame 050128/0968 →
Continuity (2)
Provisional Application 62461808 · Feb 22, 2017
Related Publication 20200012807A1 · Jan 9, 2020