IP Library Granted Patent US 12,411,977
Granted Patent B2
US 12,411,977 · App. 18/768,558 · Granted Sep 9, 2025

Data tokenization and search in a distributed network

Inventors: Ulf Mattsson (Cos Cob, CA); David Clyde Williamson (Great Missenden, GB)
Assignee: Protegrity US Holding, LLC
G06F21/6227G06F16/221G06F16/245
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,411,977
App. No.
18/768,558
Granted
Sep 9, 2025
Kind
B2
Abstract

Data in a database can be protected, for instance by tokenizing the entries of the database using one or more token tables. To enable searching data within the database without first detokenizing the tokenized database entries, bigrams of each data entry can also be tokenized and stored in association with the tokenized data entry. When a query term is received, the query term can be parsed into bigrams, and each bigram can be tokenized. The tokenized query bigrams can be used to query the database, and tokenized database entries corresponding to tokenized bigrams that match the tokenized query bigrams can be identified and returned as search results.

Claims (38)

1. A method comprising:

accessing, by a security server, a plurality of data entries in a database, each data entry comprising a set of tokenized bigrams, the set of tokenized bigrams produced by tokenizing each bigram of a set of bigrams by 1) querying a set of token tables, each token table mapping input values to token output values, with a bigram value to identify a token value mapped to the bigram value and 2) replacing the bigram value with the token value, wherein the set of bigrams is generated for a set of bytes, and wherein a first byte and a last byte of the set of bytes are included within one bigram of the set of bigrams and wherein each byte between the first byte and the last byte of the set of bytes are included within two bigrams of the set of bigrams;

receiving, by the security server, a search query term comprising a plurality of query bytes from a user;

tokenizing, by the security server, each query bigram comprising a pair of consecutive query bytes such that each query bigram includes a byte in common with at least one other query bigram using the set of token tables to produce a set of tokenized query bigrams;

querying, by the security server, the plurality of database entries with each tokenized query bigram to identify data entries associated with at least one tokenized bigram that matches at least one of the tokenized query bigrams; and

providing, by the security server, a set of tokenized bigrams associated with the identified data entries.

2. The method of claim 1 , wherein each set of bytes comprises a word of data stored within a database column.

3. The method of claim 1 , wherein each token table of the set of token tables maps each possible input value for a fixed input length to a different token value.

4. The method of claim 3 , wherein the fixed input length comprises 2 bytes.

5. The method of claim 1 , wherein the set of bytes and a corresponding set of tokenized bigrams are stored in conjunction with each other in the database.

6. The method of claim 5 , wherein the corresponding set of tokenized bigrams are stored within metadata within the database.

7. The method of claim 1 , wherein tokenizing a query bigram comprises querying a token table of the set of token tables with a value of the pair of consecutive bytes of the query bigram to identify a token value mapped to the value of the pair of consecutive bytes of the query bigram by the token table, the token value comprising the tokenized query bigram corresponding to the query bigram.

8. The method of claim 1 , wherein each identified data entry comprises a data entry associated with an above-threshold number of tokenized bigrams that match the tokenized query bigrams.

9. The method of claim 1 , wherein providing the set of tokenized bigrams comprises providing the tokenized bigrams corresponding to a threshold number of identified data entries associated with tokenized bigrams that best match the tokenized query bigrams.

10. The method of claim 1 , wherein providing the set of tokenized bigrams comprises providing all tokenized bigrams corresponding to identified data entries associated with at least a threshold number of tokenized bigrams that match the tokenized query bigrams.

11. A non-transitory computer-readable storage medium storing executable instructions that, when executed by a processor of a security server, cause the security server to perform steps comprising:

accessing, by the security server, a plurality of data entries in a database, each data entry comprising a set of tokenized bigrams, the set of tokenized bigrams produced by tokenizing each bigram of a set of bigrams by 1) querying a set of token tables, each token table mapping input values to token output values, with a bigram value to identify a token value mapped to the bigram value and 2) replacing the bigram value with the token value, wherein the set of bigrams is generated for a set of bytes, and wherein a first byte and a last byte of the set of bytes are included within one bigram of the set of bigrams and wherein each byte between the first byte and the last byte of the set of bytes are included within two bigrams of the set of bigrams;

receiving, by the security server, a search query term comprising a plurality of query bytes from a user;

tokenizing, by the security server, each query bigram comprising a pair of consecutive query bytes such that each query bigram includes a byte in common with at least one other query bigram using the set of token tables to produce a set of tokenized query bigrams;

querying, by the security server, the plurality of database entries with each tokenized query bigram to identify data entries associated with at least one tokenized bigram that matches at least one of the tokenized query bigrams; and

providing, by the security server, a set of tokenized bigrams associated with the identified data entries.

12. The non-transitory computer-readable storage medium of claim 11 , wherein each set of bytes comprises a word of data stored within a database column.

13. The non-transitory computer-readable storage medium of claim 11 , wherein each token table of the set of token tables maps each possible input value for a fixed input length to a different token value.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the fixed input length comprises 2 bytes.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the set of bytes and a corresponding set of tokenized bigrams are stored in conjunction with each other in the database.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the corresponding set of tokenized bigrams are stored within metadata within the database.

17. The non-transitory computer-readable storage medium of claim 11 , wherein tokenizing a query bigram comprises querying a token table of the set of token tables with a value of the pair of consecutive bytes of the query bigram to identify a token value mapped to the value of the pair of consecutive bytes of the query bigram by the token table, the token value comprising the tokenized query bigram corresponding to the query bigram.

18. The non-transitory computer-readable storage medium of claim 11 , wherein each identified data entry comprises a data entry associated with an above-threshold number of tokenized bigrams that match the tokenized query bigrams.

19. The non-transitory computer-readable storage medium of claim 11 , wherein providing the set of tokenized bigrams comprises providing the tokenized bigrams corresponding to a threshold number of identified data entries associated with tokenized bigrams that best match the tokenized query bigrams.

20. The non-transitory computer-readable storage medium of claim 11 , wherein providing the set of tokenized bigrams comprises providing all tokenized bigrams corresponding to identified data entries associated with at least a threshold number of tokenized bigrams that match the tokenized query bigrams.

21. A security server comprising:

a hardware processor; and

a non-transitory computer-readable storage medium storing executable instructions that, when executed by the hardware processor, cause the security server to perform steps comprising:

accessing, by the security server, a plurality of data entries in a database, each data entry comprising a set of tokenized bigrams, the set of tokenized bigrams produced by tokenizing each bigram of a set of bigrams by 1) querying a set of token tables, each token table mapping input values to token output values, with a bigram value to identify a token value mapped to the bigram value and 2) replacing the bigram value with the token value, wherein the set of bigrams is generated for a set of bytes, and wherein a first byte and a last byte of the set of bytes are included within one bigram of the set of bigrams and wherein each byte between the first byte and the last byte of the set of bytes are included within two bigrams of the set of bigrams;

receiving, by the security server, a search query term comprising a plurality of query bytes from a user;

tokenizing, by the security server, each query bigram comprising a pair of consecutive query bytes such that each query bigram includes a byte in common with at least one other query bigram using the set of token tables to produce a set of tokenized query bigrams;

querying, by the security server, the plurality of database entries with each tokenized query bigram to identify data entries associated with at least one tokenized bigram that matches at least one of the tokenized query bigrams; and

providing, by the security server, a set of tokenized bigrams associated with the identified data entries.

Assignments (2)
CHANGE OF NAME Recorded Oct 16, 2024
From: PROTEGRITY CORPORATION
To: PROTEGRITY US HOLDING, LLC
Reel/Frame 068916/0336 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2024
From: MATTSSON, ULF; WILLIAMSON, DAVID CLYDE
To: PROTEGRITY CORPORATION
Reel/Frame 068902/0098 →
Continuity (4)
Continuation 17492591 · Oct 2, 2021
Provisional Application 63163554 · Mar 19, 2021
Provisional Application 63093000 · Oct 16, 2020
Related Publication 20240362356A1 · Oct 31, 2024
References Cited (33)
US 5347632A · Filepp et al. · 1994 [cited by applicant]
US 8359326B1 · Garg et al. · 2013 [cited by applicant]
US 9081978B1 · Connolly et al. · 2015 [cited by applicant]
US 9237006B2 · Mattsson et al. · 2016 [cited by applicant]
US 9442980B1 · Trepetin et al. · 2016 [cited by applicant]
US 9973475B2 · Jain et al. · 2018 [cited by applicant]
US 10108605B1 · Leighton · 2018 [cited by applicant]
US 20020046201A1 · Hembry · 2002 [cited by applicant]
US 20040044878A1 · Evans et al. · 2004 [cited by applicant]
US 20110078152A1 · Forman · 2011 [cited by examiner]
US 20110154467A1 · Bomar et al. · 2011 [cited by applicant]
US 20130007077A1 · Wegener · 2013 [cited by applicant]
US 20130007078A1 · Wegener · 2013 [cited by applicant]
US 20130060827A1 · Wegener · 2013 [cited by applicant]
US 20130091143A1 · Raemy et al. · 2013 [cited by applicant]
US 20130103685A1 · Preneel et al. · 2013 [cited by applicant]
US 20140090081A1 · Mattsson et al. · 2014 [cited by applicant]
US 20140208068A1 · Wegener · 2014 [cited by applicant]
US 20150095252A1 · Mattsson et al. · 2015 [cited by applicant]
US 20160299882A1 · Hegerty et al. · 2016 [cited by applicant]
US 20170053138A1 · Rozenberg et al. · 2017 [cited by applicant]
US 20170063533A1 · Barham et al. · 2017 [cited by applicant]
US 20190158288A1 · Williamson et al. · 2019 [cited by applicant]
US 20200250338A1 · McFall et al. · 2020 [cited by applicant]
US 20210004373A1 · Sankaran · 2021 [cited by examiner]
US 20210019309A1 · Yadav et al. · 2021 [cited by applicant]
International Search Report and Written Opinion, Patent Cooperation Treaty Application No. PCT/US2022/014171, Apr. 27, 2022, 29 pages. [cited by applicant]
Srikanth, “Parallel lexical analyzer on the cell processor,” 2010 Fourth International Conference on Secure Software Integration and Reliability Improvement Companion, IEEE, 2010, Jun. 11, 2010, pp. 28-29, Retrieved on … [cited by applicant]
Tan et al., “Mind your Inflections! Improving NLP for non-standard Englishes with Base-Inflection Encoding,” arXiv preprint arXiv:2004.14870 (2020), Nov. 18, 2020, 17 pages, Retrieved on Apr. 2, 2022 from <https://arxiv… [cited by applicant]
United States Office Action, U.S. Appl. No. 17/581,070, filed Jan. 12, 2024, 25 pages,. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/581,068, filed Jan. 24, 2024, 95 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/492,591, filed Nov. 2, 2023, 22 pages. [cited by applicant]
United States Office Action, U.S. Appl. No. 17/492,591, filed Mar. 13, 2024, 21 pages. [cited by applicant]