IP Library Granted Patent US 10,902,145
Granted Patent B2
US 10,902,145 · App. 16/292,115 · Granted Jan 26, 2021

Method and computer program product for order preserving symbol based encryption

Inventor: David Movshovitz (Raanana, IL)
Assignee: salesforce.com, inc.
G06F21/6227H04L9/00H04L9/0618H04L9/0662H04L9/0891H04L9/3213
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 10,902,145
App. No.
16/292,115
Granted
Jan 26, 2021
Kind
B2
Abstract

Techniques for sorting encrypted data within a software as a service (SaaS) environment. Data is encrypted on a per symbol basis with a symbol based encryption module. Sort and search functionality preserving encryption that allows other modules to sort tokens and to search for tokens is provided. Encrypted tokens that have been encrypted by the symbol based encryption module are stored in a database. Access to the encrypted tokens is provided through the SaaS environment.

Claims (30)

1. A method for searching encrypted data, the method comprising:

maintaining a data store having data encrypted on a per symbol basis using a selected encryption protocol, wherein data elements have been replaced with random tokens and a lexicographic order between the random tokens and the plaintext data elements they represent has been maintained and each encrypted element has a unique prefix and suffix;

receiving a textual search request;

applying to search terms of the textual search request the selected encryption protocol;

performing a search utilizing encrypted search terms encrypted using the selected encryption protocol; and

generating a response to the search.

2. The method according to claim 1 , wherein generating the response to the search comprises utilizing the prefixes and the suffixes to replace encrypted elements in the response with corresponding plaintext values.

3. The method according to claim 2 , wherein the response comprises a portion of a page accessed via a browser application of a remote electronic device from which the textual search request was received.

4. The method according to claim 2 , wherein the response comprises a file sent to a remote electronic device from which the textual search request was received.

5. The method according to claim 1 , wherein the searching, the applying, the performing and the generating are performed by a proxy server between a client-side application and an application server.

6. The method according to claim 1 , wherein the searching, the applying, the performing and the generating are performed by a reverse proxy server between a client-side application and an application server.

7. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, are configurable to cause the one or more processors to:

maintain a data store having data encrypted on a per symbol basis using a selected encryption protocol, wherein data elements have been replaced with random tokens and a lexicographic order between the random tokens and the plaintext data elements they represent has been maintained and each encrypted element has a unique prefix and suffix;

receive a textual search request;

apply to search terms of the textual search request the selected encryption protocol;

perform a search utilizing encrypted search terms encrypted using the selected encryption protocol; and

generate a response to the search.

8. The non-transitory computer-readable medium according to claim 7 , wherein generating the response to the search comprises utilizing the prefixes and the suffixes to replace encrypted elements in the response with corresponding plaintext values.

9. The non-transitory computer-readable medium according to claim 8 , wherein the response comprises a portion of a page accessed via a browser application of a remote electronic device from which the textual search request was received.

10. The non-transitory computer-readable medium according to claim 8 , wherein the response comprises a file sent to a remote electronic device from which the textual search request was received.

11. The non-transitory computer-readable medium according to claim 7 , wherein the searching, the applying, the performing and the generating are performed by a proxy server between a client-side application and an application server.

12. The non-transitory computer-readable medium according to claim 7 , wherein the searching, the applying, the performing and the generating are performed by a reverse proxy server between a client-side application and an application server.

13. A system comprising:

at least one memory device;

one or more hardware processors coupled with the at least one memory device, the one or more hardware processors to maintain a data store having data encrypted on a per symbol basis using a selected encryption protocol, wherein data elements have been replaced with random tokens and a lexicographic order between the random tokens and the plaintext data elements they represent has been maintained and each encrypted element has a unique prefix and suffix, to receive a textual search request, to apply to search terms of the textual search request the selected encryption protocol, to perform a search utilizing encrypted search terms encrypted using the selected encryption protocol, and to generate a response to the search.

14. The system according to claim 13 , wherein generating the response to the search comprises utilizing the prefixes and the suffixes to replace encrypted elements in the response with corresponding plaintext values.

15. The system according to claim 14 , wherein the response comprises a portion of a page accessed via a browser application of a remote electronic device from which the textual search request was received.

16. The system according to claim 14 , wherein the response comprises a file sent to a remote electronic device from which the textual search request was received.

17. The system according to claim 13 , wherein the searching, the applying, the performing and the generating are performed by a proxy server between a client-side application and an application server.

18. The system according to claim 13 , wherein the searching, the applying, the performing and the generating are performed by a reverse proxy server between a client-side application and an application server.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2020
From: MOVSHOVITZ, DAVID
To: SALESFORCE.COM, INC.
Reel/Frame 054708/0905 →