IP Library Granted Patent US 9,679,155
Granted Patent B1
US 9,679,155 · App. 14/738,473 · Granted Jun 13, 2017

Prefix search in encrypted text

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,679,155
App. No.
14/738,473
Granted
Jun 13, 2017
Kind
B1
Abstract

A method enables prefix search of cloud stored encrypted files that are encrypted using an order preserving encryption (OPE) algorithm. The encrypted text prefix search method generates a minimum possible plaintext string and a maximum possible plaintext string of the same character length including the search term as the prefix. The minimum and maximum possible plaintext strings are encrypted using the same order preserving encryption algorithm for the encrypted text. The method determines from the minimum ciphertext and the maximum ciphertext a set of common leading digits. The set of common leading digits is used as an OPE encrypted prefix search term and provided to a cloud storage service to search in the cloud stored encrypted files for encrypted text matching the OPE encrypted prefix search term.

Claims (35)

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

receiving, at a network intermediary, a search request with a search term directed to encrypted files stored in a cloud storage service, the cloud stored encrypted files being encrypted using an order-preserving encryption algorithm;

generating a minimum possible plaintext string using the search term as prefix and padding the 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 search term as prefix and padding the 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 cloud stored encrypted files;

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 cloud service search request including the set of common leading digits as an encrypted prefix search term;

sending the cloud service search request with the encrypted prefix search term to the cloud storage service; and

receiving a search result from the cloud storage service.

2. The method of claim 1 , wherein receiving the search result from the cloud storage service comprises:

receiving the search result including a listing of document indexes identifying one or more encrypted files in the cloud storage service having an encrypted text with a prefix matching the encrypted prefix search term; and

providing the search result to a requesting user device.

3. The method of claim 1 , wherein receiving the search result from the cloud storage service comprises:

receiving the search result including an encrypted file stored in the cloud storage service having an encrypted text with a prefix matching the encrypted prefix search term;

decrypting the returned encrypted file; and

providing the decrypted file as the search result to a requesting user device.

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

determining the character type of the search term; and

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

5. The method of claim 4 , wherein padding one or more trailing characters to the search term using the minimum possible value associated with the character type of the search term comprises:

padding one or more trailing characters to the search term using the minimum possible value associated with the character type of the search term based on the ASCII values assigned to the character type.

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

determining the character type of the search term; and

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

7. The method of claim 6 , wherein padding one or more trailing characters to the search term using the maximum possible value associated with the character type of the search term comprises:

padding one or more trailing characters to the search term using the maximum possible value associated with the character type of the search term based on the ASCII values assigned to the character type.

8. A system for performing prefix search of encrypted cloud stored data, comprising:

a network proxy server comprising a computer and configured as a network intermediary between a user device and a cloud storage service storing encrypted files being encrypted using an order-preserving encryption algorithm, the network proxy server being configured to receive a search request with a search term directed to encrypted files stored in a cloud storage service, to generate a minimum possible plaintext string using the search term as prefix and padding the 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 search term as prefix and padding the 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 cloud stored encrypted files, 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 cloud service search request including the set of common leading digits as an encrypted prefix search term, to send the cloud service search request with the encrypted prefix search term to the cloud storage service, and to receive a search result from the cloud storage service.

9. The system of claim 8 , wherein the network proxy server is further configured to receive the search result including a listing of document indexes identifying one or more encrypted files in the cloud storage service having an encrypted text with a prefix matching the encrypted prefix search term and to provide the search result to a requesting user device.

10. The system of claim 8 , wherein the network proxy server is further configured to receive the search result including an encrypted file stored in the cloud storage service having an encrypted text with a prefix matching the encrypted prefix search term, to decrypt the returned encrypted file, and to provide the decrypted file as the search result to a requesting user device.

11. The system of claim 8 , wherein the network proxy server is further configured to determine the character type of the search term and to pad one or more trailing characters to the search term using the minimum possible value associated with the character type of the search term.

12. The system of claim 11 , wherein the network proxy server is further configured to pad one or more trailing characters to the search term using the minimum possible value associated with the character type of the search term based on the ASCII values assigned to the character type.

13. The system of claim 8 , wherein the network proxy server is further configured to determine the character type of the search term and to pad one or more trailing characters to the search term using the maximum possible value associated with the character type of the search term.

14. The system of claim 13 , wherein the network proxy server is further configured to pad one or more trailing characters to the search term using the maximum possible value associated with the character type of the search term based on the ASCII values assigned to the character type.

Assignments (15)
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 →
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 →
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 →
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 047955/0474 →
SECURITY INTEREST Recorded Jul 20, 2018
From: SKYHIGH NETWORKS, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 046416/0225 →
SECURITY INTEREST Recorded Jul 20, 2018
From: SKYHIGH NETWORKS, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 046416/0286 →