IP Library Granted Patent US 9,760,637
Granted Patent B2
US 9,760,637 · App. 14/852,029 · Granted Sep 12, 2017

Wildcard search in encrypted text using order preserving encryption

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 9,760,637
App. No.
14/852,029
Granted
Sep 12, 2017
Kind
B2
Abstract

A encrypted text wildcard search method enables wildcard search of encrypted text by using a permuterm index storing permuted keyword strings that are encrypted using an order preserving encryption algorithm. The permuted keyword strings are encrypted using an order preserving encryption algorithm or a modular order preserving encryption algorithm and stored in the permuterm index. In response to a search query containing a wildcard search term, the encrypted text wildcard search method transforms the wildcard search term to a permuted search term having a prefix search format. The permuted search term having the prefix search format is then used to perform a range query of the permuterm index to retrieve permuted keyword strings having ciphertext values that fall within the range query. In some embodiments, the encrypted text wildcard search method enables prefix search, suffix search, inner-wildcard search, substring search and multiple wildcard search of encrypted text.

Claims (55)

1. A method for performing wildcard search of encrypted cloud stored data comprising:

receiving, at a network intermediary, a document destined for a cloud service provider;

encrypting, at a network intermediary, the document using a document encryption algorithm;

generating a set of permuted keyword strings for each of some or all of the keywords in the document, the set of permuted keyword strings for each keyword being generated by adding a first character delimiter before the first character of the keyword and applying cyclic rotation of the characters of the keyword, including the first character delimiter;

encrypting the permuted keyword strings using an order preserving encryption algorithm;

storing the encrypted permuted keyword strings in a database;

transmitting the encrypted document to the cloud service provider;

receiving, at a network intermediary, a search request with a search term directed to encrypted documents stored in a cloud service provider, the search term comprising a wildcard search term;

transforming the wildcard search term to a permuted search term having a prefix search format;

generating a minimum possible plaintext string using the permuted search term as prefix and padding the permuted search term to a first character length using one or more trailing characters indicative of a minimum possible value related to the search term;

generating a maximum possible plaintext string using the permuted search term as prefix and padding the permuted search term to the first character length using one or more trailing characters indicative of a maximum possible value related to the search term;

encrypting the minimum possible plaintext string and the maximum possible plaintext string using the order-preserving encryption algorithm used to encrypt the permuted keyword strings;

generating a minimum ciphertext from the minimum possible plaintext string and a maximum ciphertext from the maximum possible plaintext string;

determining a set of common leading digits from the minimum ciphertext and the maximum ciphertext;

generating a range query including the set of common leading digits;

sending the range query to the database of encrypted permuted keyword strings; and

receiving a search result from the database including encrypted permuted keyword strings having ciphertext values that fall within the range query.

2. The method of claim 1 , wherein encrypting, at a network intermediary, the document using a document encryption algorithm comprises:

encrypting, at a network intermediary, the document using an AES256-GCM authenticated encryption algorithm.

3. The method of claim 1 , wherein encrypting the permuted keyword strings using an order preserving encryption algorithm comprises:

encrypting the permuted keyword strings using a modular order preserving encryption algorithm.

4. The method of claim 1 , wherein the wildcard search term comprises one of a prefix search term, a suffix search term, an inner-wildcard search term, a substring search and a multiple wildcard search term, the wildcard search term being a character string including a wildcard term; and wherein transforming the search term to a permuted search term having a prefix search format comprises adding the first character delimiter to the character string of the wildcard search term and rotating the characters of the character string until the wildcard term is at an end of the character string.

5. The method of claim 1 , further comprising:

decrypting the encrypted permuted keyword strings in the search result using the order preserving encryption algorithm; and

unpermuting, using the first character delimiter, the decrypted permuted keyword strings to obtain plaintext keyword strings with the first character of each plaintext keyword string in a first position in the plaintext keyword string.

6. The method of claim 5 , further comprising:

encrypting the plaintext keyword strings of the search result using the document encryption algorithm;

formulating a second search request using the encrypted keyword strings;

transmitting the second search request including the encrypted keyword strings to the cloud service provider;

receiving a second search result including an encrypted document stored in the cloud service provider having an encrypted text matching at least one of the encrypted keyword strings;

decrypting the returned encrypted document; and

providing the decrypted document in response to the search request.

7. The method of claim 1 , further comprising:

providing the encrypted permuted keyword strings of the search result to a searchable encryption search index;

searching for the encrypted permuted keyword strings in the searchable encryption search index;

retrieving from the search index an encrypted document index mapped to a matching encrypted permuted keyword string;

decrypting the encrypted document index;

retrieving an encrypted document from the cloud service provider using the decrypted document index;

decrypting the retrieved document; and

providing the decrypted document in response to the search request.

8. The method of claim 1 , wherein generating a minimum plaintext string using the permuted search term as prefix and padding the permuted search term to a first character length using one or more trailing characters indicative of a minimum possible value related to the search term comprises:

determining the character type of the permuted search term; and

padding one or more trailing characters to the permuted search term using the minimum possible value associated with the character type of the permuted search term.

9. The method of claim 1 , wherein generating a maximum plaintext string using the permuted search term as prefix and padding the permuted search term to the first character length using one or more trailing characters indicative of a maximum possible value related to the search term comprises:

determining the character type of the permuted search term; and

padding one or more trailing characters to the permuted search term using the maximum possible value associated with the character type of the permuted search term.

10. A system for performing wildcard search of encrypted cloud stored data, comprising:

a network proxy server, comprising a hardware computer system, configured as a network intermediary between a user device and a cloud service provider storing encrypted files on behalf of the user device; and

a database in communication with the network proxy server,

wherein the network proxy server is configured to receive a document destined for the cloud service provider, to encrypt the document using a document encryption algorithm, to generate a set of permuted keyword strings for each of some or all of the keywords in the document, the set of permuted keyword strings for each keyword being generated by adding a first character delimiter before the first character of the keyword and applying cyclic rotation of the characters of the keyword, including the first character delimiter, to encrypt the permuted keyword strings using an order preserving encryption algorithm, to store the encrypted permuted keyword strings in the database, and to transmit the encrypted document to the cloud service provider; and

wherein the network proxy server is further configured to receive a search request with a search term directed to encrypted documents stored in a cloud service provider, the search term comprising a wildcard search term, to transform the search term to a permuted search term having a prefix search format, to generate a minimum possible plaintext string using the permuted search term as prefix and padding the permuted search term to a first character length using one or more trailing characters indicative of a minimum possible value related to the search term, to generate a maximum possible plaintext string using the permuted search term as prefix and padding the permuted search term to the first character length using one or more trailing characters indicative of a maximum possible value related to the search term, to encrypt the minimum possible plaintext string and the maximum possible plaintext string using the order-preserving encryption algorithm used to encrypt the permuted keyword strings, to generate a minimum ciphertext from the minimum possible plaintext string and a maximum ciphertext from the maximum possible plaintext string, to determine a set of common leading digits from the minimum ciphertext and the maximum ciphertext, to generate a range query including the set of common leading digits, to send the range query to the database of encrypted permuted keyword strings, and to receive a search result from the database including encrypted permuted keyword strings having ciphertext values that fall within the range query.

11. The system of claim 10 , wherein the network proxy server is further configured to encrypt the document using an AES256-GCM authenticated encryption algorithm.

12. The system of claim 10 , wherein the network proxy server is further configured to encrypt the permuted keyword strings using a modular order preserving encryption algorithm.

13. The system of claim 10 , wherein the wildcard search term comprises one of a prefix search term, a suffix search term, an inner-wildcard search term, a substring search and a multiple wildcard search term, the wildcard search term being a character string including a wildcard term; and wherein the network proxy server is further configured to transform the wildcard search term to a permuted search term having a prefix search format by adding the first character delimiter to the character string of the wildcard search term and rotating the characters of the character string until the wildcard term is at an end of the character string.

14. The system of claim 10 , wherein the network proxy server is further configured to decrypt the encrypted permuted keyword strings in the search result using the order preserving encryption algorithm and to unpermute, using the first character delimiter, the decrypted permuted keyword strings to obtain plaintext keyword strings with the first character of each plaintext keyword string in a first position in the plaintext keyword string.

Assignments (16)
ASSIGNMENT OF INTERCOMPANY FIRST LIEN PATENT SECURITY AGREEMENT Recorded Apr 14, 2025
From: UBS AG, STAMFORD BRANCH
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 070840/0598 →
INTERCOMPANY FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 24, 2025
From: SKYHIGH SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 070618/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2024
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: SKYHIGH SECURITY LLC
Reel/Frame 069272/0570 →
RELEASE OF SECURITY INTEREST Recorded Aug 16, 2024
From: STG PARTNERS, LLC
To: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
Reel/Frame 068671/0435 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 15, 2024
From: MAGENTA SECURITY HOLDINGS LLC; SKYHIGH SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 068657/0666 →
SECURITY INTEREST Recorded Aug 1, 2024
From: MUSARUBRA US LLC; SKYHIGH SECURITY LLC
To: STG PARTNERS, LLC
Reel/Frame 068324/0731 →
CHANGE OF NAME Recorded May 9, 2022
From: SKYHIGH NETWORKS, LLC
To: SKYHIGH SECURITY LLC
Reel/Frame 059912/0601 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 27, 2021
From: MUSARUBRA US LLC; SKYHIGH NETWORKS, LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 057453/0053 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 27, 2021
From: MUSARUBRA US LLC; SKYHIGH NETWORKS, LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 056990/0960 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MCAFEE, LLC; SKYHIGH NETWORKS, LLC
Reel/Frame 057620/0102 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 046416/0286 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: SKYHIGH NETWORKS, LLC
Reel/Frame 054211/0739 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 046416 FRAME: 0286. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 19, 2020
From: SKYHIGH NETWORKS, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 054560/0325 →
CHANGE OF NAME Recorded Dec 19, 2018
From: SKYHIGH NETWORKS, INC.
To: SKYHIGH NETWORKS, LLC
Reel/Frame 049049/0239 →
SECURITY INTEREST Recorded Jul 20, 2018
From: SKYHIGH NETWORKS, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 046416/0286 →
SECURITY INTEREST Recorded Jul 20, 2018
From: SKYHIGH NETWORKS, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 046416/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2015
From: GRUBBS, PAUL
To: SKYHIGH NETWORKS, INC.
Reel/Frame 037017/0390 →