IP Library Granted Patent US 12,355,861
Granted Patent B2
US 12,355,861 · App. 18/335,406 · Granted Jul 8, 2025

Method, apparatus, and computer-readable medium for searching polymorphically encrypted data

Inventors: Igor Balabine (Menlo Park, CA); Richard Grondin (Québec, CA)
Assignee: INFORMATICA LLC
H04L9/0618G06F16/903G06F21/602H04L9/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 12,355,861
App. No.
18/335,406
Granted
Jul 8, 2025
Kind
B2
Abstract

A method, apparatus, and computer-readable medium for searching polymorphically encrypted data includes storing one or more pseudonymous tokens in a data store, the one or more pseudonymous tokens being generated by encrypting a ciphertext using a first algorithm and an encryption key, the first algorithm comprising a polymorphic algorithm configured to generate a distinct pseudonymous token for each application of the polymorphic algorithm to the same plaintext, and identifying data in the data store that corresponds to the ciphertext by querying the data store using a search token generated by encrypting the plaintext using a second algorithm and the encryption key, the search token being distinct from the one or more pseudonymous tokens.

Claims (53)

1. A method executed by one or more computing devices for polymorphically encrypting data, the method comprising:

generating, by at least one of the one or more computing devices, one or more pseudonymous tokens by encrypting a ciphertext using a first algorithm and an encryption key, the first algorithm comprising a polymorphic algorithm configured to generate a distinct pseudonymous token for each application of the polymorphic algorithm to the same ciphertext with the same encryption key; and

storing, by at least one of the one or more computing devices, the one or more pseudonymous tokens in a data store, wherein data in the data store corresponding to the ciphertext is configured to be retrieved by querying the data store using a search token generated by encrypting the ciphertext using a second algorithm and the encryption key, the search token being distinct from the one or more pseudonymous tokens.

2. The method of claim 1 , further comprising retrieving, by at least one of the one or more computing devices, data in the data store that corresponds to the ciphertext by querying the data store using the search token generated by encrypting the ciphertext using the second algorithm and the encryption key by:

applying one or more first transformations to one or more columns containing the one or more pseudonymous tokens to generate one or more transformed columns;

applying one or more second transformations to the search token to generate a transformed search token; and

retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token.

3. The method of claim 2 , wherein retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token comprises:

comparing each transformed column value in the one or more transformed columns to the transformed search token using a matching function to identify one or more matching transformed column values; and

identifying one or more rows containing the one or more matching transformed column values as corresponding to the ciphertext.

4. The method of claim 2 , further comprising:

modifying, by at least one of the one or more computing devices, the distinct pseudonymous token of the plurality of pseudonymous tokens by adding a respective one of one or more pseudo random permutation (PRP) seeds in the distinct pseudonymous token.

5. The method of claim 4 , further comprising:

encrypting, by at least one of the one or more computing devices, the respective one of the one or more PRP seeds using a different third algorithm and the encryption key, wherein adding the respective one of the one or more PRP seeds includes adding the encrypted respective PRP seed either before or after the distinct pseudonymous token.

6. The method of claim 5 , further comprising:

detaching, by at least one of the one or more computing devices, the encrypted one or more PRP seeds; and

decrypting, by at least one of the one or more computing devices, the encrypted one or more PRP seeds using the third algorithm and the encryption key.

7. The method of claim 1 , wherein the second algorithm is different from the first algorithm.

8. A system for polymorphically encrypting data, the system comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

generate one or more pseudonymous tokens by encrypting a ciphertext using a first algorithm and an encryption key, the first algorithm comprising a polymorphic algorithm configured to generate a distinct pseudonymous token for each application of the polymorphic algorithm to the same ciphertext with the same encryption key; and

store the one or more pseudonymous tokens in a data store, wherein data in the data store corresponding to the ciphertext is configured to be retrieved by querying the data store using a search token generated by encrypting the ciphertext using a second algorithm and the encryption key, the search token being distinct from the one or more pseudonymous tokens.

9. The system of claim 8 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to retrieve data in the data store that corresponds to the ciphertext by querying the data store using the search token generated by encrypting the ciphertext using the second algorithm and the encryption key by:

applying one or more first transformations to one or more columns containing the one or more pseudonymous tokens to generate one or more transformed columns;

applying one or more second transformations to the search token to generate a transformed search token; and

retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token.

10. The system of claim 9 , wherein retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token comprises:

comparing each transformed column value in the one or more transformed columns to the transformed search token using a matching function to identify one or more matching transformed column values; and

identifying one or more rows containing the one or more matching transformed column values as corresponding to the ciphertext.

11. The system of claim 9 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

modify the distinct pseudonymous token of the plurality of pseudonymous tokens by adding a respective one of one or more pseudo random permutation (PRP) seeds in the distinct pseudonymous token.

12. The system of claim 11 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

encrypt the respective one of the one or more PRP seeds using a different third algorithm and the encryption key, wherein adding the respective one of the one or more PRP seeds includes adding the encrypted respective PRP seed either before or after the distinct pseudonymous token.

13. The system of claim 12 , wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

detach the encrypted one or more PRP seeds; and

decrypt the encrypted one or more PRP seeds using the third algorithm and the encryption key.

14. The system of claim 8 , wherein the second algorithm is different from the first algorithm.

15. At least one non-transitory computer-readable medium storing computer- readable instructions for polymorphically encrypting data that, when executed by one or more computing devices, cause at least one of the one or more computing devices to:

generate one or more pseudonymous tokens by encrypting a ciphertext using a first algorithm and an encryption key, the first algorithm comprising a polymorphic algorithm configured to generate a distinct pseudonymous token for each application of the polymorphic algorithm to the same ciphertext with the same encryption key; and

store the one or more pseudonymous tokens in a data store, wherein data in the data store corresponding to the ciphertext is configured to be retrieved by querying the data store using a search token generated by encrypting the ciphertext using a second algorithm and the encryption key, the search token being distinct from the one or more pseudonymous tokens.

16. The at least one non-transitory computer-readable medium of claim 15 , further storing computer-readable instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to retrieve data in the data store that corresponds to the ciphertext by querying the data store using the search token generated by encrypting the ciphertext using the second algorithm and the encryption key by:

applying one or more first transformations to one or more columns containing the one or more pseudonymous tokens to generate one or more transformed columns;

applying one or more second transformations to the search token to generate a transformed search token; and

retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token.

17. The at least one non-transitory computer-readable medium of claim 16 , wherein retrieving one or more rows corresponding to the ciphertext based at least in part on the one or more transformed columns and the transformed search token comprises:

comparing each transformed column value in the one or more transformed columns to the transformed search token using a matching function to identify one or more matching transformed column values; and

identifying one or more rows containing the one or more matching transformed column values as corresponding to the ciphertext.

18. The at least one non-transitory computer-readable medium of claim 16 , further storing computer-readable instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

modify the distinct pseudonymous token of the plurality of pseudonymous tokens by adding a respective one of one or more pseudo random permutation (PRP) seeds in the distinct pseudonymous token.

19. The at least one non-transitory computer-readable medium of claim 18 , further storing computer-readable instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

encrypt the respective one of the one or more PRP seeds using a different third algorithm and the encryption key, wherein adding the respective one of the one or more PRP seeds includes adding the encrypted respective PRP seed either before or after the distinct pseudonymous token.

20. The at least one non-transitory computer-readable medium of claim 15 , wherein the second algorithm is different from the first algorithm.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: JPMORGAN CHASE BANK, N.A.
To: INFORMATICA LLC
Reel/Frame 073597/0722 →
SECURITY INTEREST Recorded Jun 12, 2024
From: INFORMATICA LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067706/0090 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: BALABINE, IGOR; GRONDIN, RICHARD
To: INFORMATICA LLC
Reel/Frame 065109/0214 →
Continuity (3)
Continuation 17172987 · Feb 10, 2021
Continuation 16032545 · Jul 11, 2018
Related Publication 20230412357A1 · Dec 21, 2023
References Cited (19)
US 9087212B2 · Balakrishnan · 2015 [cited by examiner]
US 9712320B1 · Kiayias · 2017 [cited by examiner]
US 10097522B2 · Philipp · 2018 [cited by examiner]
US 10554385B2 · Gajek · 2020 [cited by examiner]
US 10664604B2 · Lindell · 2020 [cited by examiner]
US 10958415B2 · Balabine · 2021 [cited by examiner]
US 11716191B2 · Balabine · 2023 [cited by examiner]
US 20130046974A1 · Kamara · 2013 [cited by examiner]
US 20150156011A1 · Kamara · 2015 [cited by examiner]
US 20160125198A1 · Hahn · 2016 [cited by examiner]
US 20160344707A1 · Philipp · 2016 [cited by examiner]
US 20170262546A1 · Chen · 2017 [cited by examiner]
US 20180337788A1 · Gajek · 2018 [cited by examiner]
US 20180349617A1 · Wang · 2018 [cited by examiner]
US 20190026502A1 · Segev · 2019 [cited by examiner]
Stefanov et al.; “Practical Dynamic Searchable Encryption with Small Leakage”, 2014, NDSS, pp. 1-15. (Year: 2014). [cited by examiner]
Yoshino et al.; “Symmetric Searchable Encryption for Database Applications”, 2011, International Conference on Network-Based Information Systems, pp. 657-662. (Year: 2011). [cited by examiner]
Verheul et al.; “Polymorphic Encryption and Pseudonymisation for Personalised Healtcare”, 2016, Institute for Computing and Information Sciences, pp. 1-37. (Year: 2016). [cited by examiner]
Liu et al.; “Searchable Encryption Scheme on the Cloud Via Fully Homomorphic Encryption”, 2016, IEEE, pp. 108-111. (Year: 2016). [cited by examiner]