IP Library Granted Patent US 11,582,038
Granted Patent B2
US 11,582,038 · App. 17/214,319 · Granted Feb 14, 2023

Systems and methods to secure searchable data having personally identifiable information

Inventors: Nicolas J. Scheiblauer (Santa Cruz, CA); Aaron Torres (Tukwila, WA); Christopher Allen Nowell (Calgary, CA)
Assignee: Tilia LLC
H04L9/0894G06F16/951G06F21/6254H04L9/0866H04L9/3239G06F2221/2107
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,582,038
App. No.
17/214,319
Granted
Feb 14, 2023
Kind
B2
Abstract

A method implemented in a computing system hosting a three-dimensional virtual reality world. The computer system stores a set of searchable records, each having: a searchable hash of at least a portion of personally identifiable information; and an encrypted identity, decryptable using an encryption key generated based at least in part on the searchable hash and a global key. In response to a search request identifying at least a portion of personally identifiable information as a search criterion, the computer system generates a hash of the search criterion, and finds a matching searchable record that has a searchable hash equal to the hash computed from the search criterion. An encryption key is computed based on the global key and the matched searchable record to decrypt an encrypted identity of a user having at least the portion of personally identifiable information that is the search criterion in the search request.

Claims (68)

1. A computing system, comprising:

a key master;

a server system; and

a data storage device controlled by the server system and configured to store:

a set of searchable records, wherein each respective record in the set of searchable records includes:

a searchable hash of at least a portion of personally identifiable information, wherein different portions of the personally identifiable information are stored in randomized locations; and

an encrypted identity, wherein the encrypted identity is decryptable to provide an identity of a user having the personally identifiable information; and

wherein, in response to a search request having at least a portion of first personally identifiable information, the server system is configured to:

generate, using a first cryptographic hash function, a first searchable hash from at least the portion of the first personally identifiable information; and

identify, from the set of searchable records, a first searchable record having a searchable hash that is equal to the first searchable hash;

wherein the key master is configured to generate a first encryption key based on the first searchable hash; and

wherein the server system is configured to provide a search result responsive to the search request by:

extracting, from the first searchable record, a first encrypted identity; and

decrypting, using the first encryption key, the first encrypted identity to obtain a first identity of a first user of a virtual reality world.

2. The computing system of claim 1 , wherein presence of the first encryption key is transient in the computer system.

3. The computing system of claim 2 , wherein the server system queries the key master for the first encryption key using:

the searchable hash of the first searchable record that is equal to the first searchable hash; and

a salt retrieved from the first searchable record.

4. The computing system of claim 3 , wherein the first identity of the first user includes an account identifier of the first user and the first personally identifiable information.

5. The computing system of claim 3 , wherein the first encryption key is generated using a resource-intensive password-based key derivation function.

6. The computing system of claim 5 , wherein the function is a scrypt function.

7. A method, comprising:

storing, in a computer system, a set of searchable records, wherein each respective record in the set of searchable records includes:

a searchable hash of at least a portion of personally identifiable information, wherein different portions of the personally identifiable information are stored in randomized locations; and

an encrypted identity, wherein the encrypted identity is decryptable to provide an identity of a user having the personally identifiable information; and

in response to a search request having at least a portion of first personally identifiable information:

generating, by the computer system using a first cryptographic hash function, a first searchable hash from at least the portion of the first personally identifiable information;

determining, by the computer system and from the set of searchable records, a first searchable record having a searchable hash that is equal to the first searchable hash;

generating, by the computer system, a first encryption key based on the first searchable hash;

extracting, by the computing system from the first searchable record, a first encrypted identity;

decrypting, by the computing system using the first encryption key, the first encrypted identity to obtain a first identity of a first user of the computer system; and

providing, by the computing system, a search result based at least in part on the first identity of the first user.

8. The method of claim 7 , wherein the first searchable record in the set of searchable records further includes a salt; and the first encryption key is generated from the salt, the first searchable record, and a global key.

9. The method of claim 8 , wherein the first encryption key is generated, using a resource-intensive password-based key derivation function, from the salt, the first searchable hash, and the global key.

10. The method of claim 9 , wherein the resource-intensive password-based key derivation function is a scrypt function.

11. The method of claim 10 , further comprising:

generating the first searchable record by:

computing the searchable hash of the first searchable record from at least the portion of the first personally identifiable information of the first user;

determining the salt;

computing the first encryption key from the salt, the first searchable hash, and the global key; and

encrypting, using the first encryption key, the first identity of the first user to generate the first encrypted identity.

12. The method of claim 11 , wherein the first searchable record further includes an identification of the first cryptographic hash function selected from a plurality of hash functions and used to generate the searchable hash of the first searchable record.

13. The method of claim 12 , wherein the determining of the first searchable record is based on computing, using the plurality of hash functions, a plurality of hashes of at least the portion of the first personally identifiable information and finding the first searchable record having:

a searchable hash that is equal to one of the plurality of hashes; and

an identification of the first cryptographic hash function corresponding to a hash function used to compute the one of the plurality of hashes.

14. The method of claim 13 , wherein the first identity of the first user includes an account identifier of the first user uniquely identifying a user account of the first user among a plurality of user accounts for accessing the computer system.

15. The method of claim 14 , wherein the first encryption key is not stored in the computer system.

16. The method of claim 15 , further comprising:

purging, from the computer system, the first encryption key computed during the generating of the first searchable record, after the encrypting of the first identity of the first user to generate the first encrypted identity.

17. The method of claim 16 , further comprising:

purging, from the computer system, the first encryption key generated in response to the first searchable record being identified for the search request, after the decrypting of the first encrypted identity to obtain the first identity of the first user.

18. A non-transitory computer storage medium storing instructions which, when executed on a computer system, cause the computer system to perform a method, the method comprising:

storing, in a computer system, a set of searchable records, wherein each respective record in the set of searchable records includes:

a searchable hash of at least a portion of personally identifiable information, wherein different portions of the personally identifiable information are stored in randomized locations; and

an encrypted identity, wherein the encrypted identity is decryptable to provide an identity of a user having the personally identifiable information; and

in response to a search request having at least a portion of first personally identifiable information:

generating, by the computer system using a first cryptographic hash function, a first searchable hash from at least the portion of the first personally identifiable information;

determining, by the computer system and from the set of searchable records, a first searchable record having a searchable hash that is equal to the first searchable hash;

generating, by the computer system, a first encryption key based on the first searchable hash;

extracting, by the computing system from the first searchable record, a first encrypted identity;

decrypting, by the computing system using the first encryption key, the first encrypted identity to obtain a first identity of a first user of the computer system; and

providing, by the computing system, a search result based at least in part on the first identity of the first user.

19. The non-transitory computer storage medium of claim 18 , wherein the method further comprises generating the first searchable record by:

computing the searchable hash of the first searchable record from at least the portion of the first personally identifiable information of the first user;

determining a salt;

computing the first encryption key from the salt, the first searchable hash, and a global key; and

encrypting, using the first encryption key, the first identity of the first user to generate the first encrypted identity.

20. The non-transitory computer storage medium of claim 19 , wherein the first searchable record further includes the salt and an identification of the first cryptographic hash function; and the first encryption key is generated by applying a scrypt function to the salt, the first searchable hash, and the global key.

Assignments (9)
MERGER AND CHANGE OF NAME Recorded Dec 10, 2025
From: THUNES FINANCIAL SERVICES INC; TILIA LLC
To: THUNES FINANCIAL SERVICES LLC
Reel/Frame 073175/0147 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2025
From: STAR MOUNTAIN DIVERSIFIED CREDIT INCOME FUND III, LP
To: LINDEN RESEARCH, INC.
Reel/Frame 071386/0562 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2025
From: LINDEN RESEARCH, INC.
To: TILIA LLC
Reel/Frame 071311/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2024
From: TILIA LLC
To: LINDEN RESEARCH, INC.
Reel/Frame 067022/0517 →
CHANGE OF NAME Recorded Dec 28, 2022
From: TILIA INC.
To: TILIA LLC
Reel/Frame 062248/0410 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2022
From: TILIA LLC
To: STAR MOUNTAIN DIVERSIFIED CREDIT INCOME FUND III, LP
Reel/Frame 061661/0253 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2022
From: LINDEN RESEARCH, INC.
To: TILIA INC.
Reel/Frame 061603/0191 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2022
From: LINDEN RESEARCH, INC.
To: TILIA, INC.
Reel/Frame 061292/0352 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2021
From: SCHEIBLAUER, NICOLAS J.; TORRES, AARON; NOWELL, CHRISTOPHER ALLEN
To: LINDEN RESEARCH, INC.
Reel/Frame 055753/0849 →
Continuity (3)
Continuation 16586600 · Sep 27, 2019
Continuation 15599230 · May 18, 2017
Related Publication 20210218569A1 · Jul 15, 2021
Cited By (1)
US 12,719,674