IP Library Granted Patent US 12,341,763
Granted Patent B2
US 12,341,763 · App. 17/840,588 · Granted Jun 24, 2025

Generating bridge match identifiers for linking identifers from server logs

Inventors: Mahyar Salek (San Jose, CA); Philip McDonnell (Belmont, CA); Vinod Kumar Ramachandran (Sunnyvale, CA); Shobhit Saxena (Sunnyvale, CA); David Owen Shanaha (Sunnyvale, CA)
Assignee: GOOGLE LLC
H04L63/06G06F21/6254H04L63/068
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,341,763
App. No.
17/840,588
Granted
Jun 24, 2025
Kind
B2
Abstract

Systems and methods of matching identifiers between multiple datasets are described herein. A system can transmit a first identifier vector to a third party server. The first identifier vector can include a first identifier, first parameters, and second parameters. The system can receive, from the third party server, the first identifier vector encrypted based on a third-party encryption. The system can receive, from the third party server, a second identifier vector encrypted based on the third-party encryption associated with the third party server. The second identifier vector can include a second identifier, third parameters, and fourth parameters. The system can determine a correlation count between the first identifier vector and the second identifier vector. The system can determine that the first identifier corresponds to the second identifier based on the correlation count. The system can generate one identifier key for both the first identifier and the second identifier.

Claims (56)

1. A method of matching identifiers between multiple datasets in a computer network environment, comprising:

transmitting, by a data processing system having one or more processors, a first identifier vector to a third party server, the first identifier vector comprising a first identifier, a plurality of first parameters, and a plurality of second parameters;

receiving, by the data processing system, from the third party server, the first identifier vector that was (i) encrypted based on a first-party encryption that is commutative and (ii) further encrypted by a third-party encryption associated with the third party server, the third-party encryption being commutative and different from the first-party encryption;

receiving, by the data processing system, from the third party server, a second identifier vector encrypted based on the third-party encryption associated with the third party server, the second identifier vector comprising a second identifier, a plurality of third parameters, and a plurality of fourth parameters;

encrypting, by the data processing system, the second identifier vector with the first-party encryption to generate an encrypted second identifier vector that is encrypted based on the third-party encryption and further encrypted based on the first-party encryption;

determining, by the data processing system, a correlation count between the encrypted first identifier vector and the encrypted second identifier vector based on a match between some of the plurality of first parameters and some of the plurality of third parameters of the encrypted first identifier vector, and between some of the plurality of second parameters and some of the plurality of fourth parameters of the encrypted second identifier vector;

determining, by the data processing system, that the first identifier corresponds to the second identifier based on the correlation count between the first identifier vector and the second identifier vector being above a determined threshold; and

generating, by the data processing system, responsive to determining that the first identifier corresponds to the second identifier, one identifier key for both the first identifier and the second identifier.

2. The method of claim 1 , comprising:

encrypting, by the data processing system, the first identifier, the plurality of first parameters, and the plurality of second parameters based on the first-party encryption; and

transmitting, by the data processing system, the first identifier vector, responsive to encrypting the first identifier, the plurality of first parameters, and the plurality of second parameters based on the first party encryption.

3. The method of claim 2 , comprising:

encrypting, by the data processing system, the second identifier, the plurality of third parameters and the plurality of fourth parameters of the second identifier vector based on the first encryption; and

determining, by the data processing system, the correlation count between the encrypted first identifier vector and encrypted second identifier vector, responsive to encrypting the second identifier, the plurality of third parameters, and the plurality of fourth parameters.

4. The method of claim 1 , comprising:

receiving, by the data processing system, the second identifier vector from the third party server, the plurality of third parameters and the plurality of first parameters of a first type of parameter, the plurality of fourth parameters and the plurality of second parameters of a second type of parameter.

5. The method of claim 4 , comprising:

receiving, by the data processing system, the second identifier vector, the first type of parameter including location identifiers and the second type of parameter including time stamps, the location identifiers and the time stamps each identifying a location and a time of a recorded interaction.

6. The method of claim 5 , comprising:

determining, by the data processing system, the correlation count based on some of the plurality of first parameters being within a threshold distance of some of the plurality of third parameters and some of the plurality of second parameters being within a time window of some of the plurality of fourth parameters.

7. The method of claim 1 , comprising:

transmitting, by the data processing system, the first identifier vector, some of the plurality of first parameters and some of the plurality of second parameters each including dummy data.

8. The method of claim 1 , comprising:

transmitting, by the data processing system, the first identifier vector comprising the first identifier and a plurality of first combinations of the plurality of first parameters and the plurality of second parameters; and

receiving, by the data processing system, the second identifier vector comprising the second identifier and a plurality of second combinations of the plurality of third parameters and the plurality of fourth parameters.

9. The method of claim 1 , comprising:

categorizing, by the data processing system, the plurality of first parameters into a plurality of first category values based on a respective value of the first parameter; and

transmitting, by the data processing system, the first identifier vector comprising the first identifier vector and the plurality of first category values.

10. The method of claim 1 , comprising:

determining, by the data processing system, that a predefined time has passed since generating the one identifier key; and

deleting, by the data processing system, the first identifier vector and the second identifier vector, responsive to determining that the predefined that has passed.

11. A system for matching identifiers between multiple datasets, comprising:

a data processing system comprising one or more processors configured to:

transmit a first identifier vector to a third party server, the first identifier vector comprising a first identifier, a plurality of first parameters, and a plurality of second parameters;

receive from the third party server, the first identifier vector that was (i) encrypted based on a first-party encryption that is commutative and (ii) further encrypted by a third-party encryption associated with the third party server, the third-party encryption being commutative and different from the first-party encryption;

receive a second identifier vector, encrypted based on the third-party encryption associated with the third party server, the second identifier vector comprising a second identifier, a plurality of third parameters, and a plurality of fourth parameters;

encrypt the second identifier vector with the first-party encryption to generate an encrypted second identifier vector that is encrypted based on the third-party encryption and further encrypted based on the first-party encryption;

determine a correlation count between the encrypted first identifier vector and the encrypted second identifier vector based on a match between some of the plurality of first parameters and some of the plurality of third parameters of the encrypted first identifier vector, and between some of the plurality of second parameters and some of the plurality of fourth parameters of the encrypted second identifier vector;

determine that the first identifier corresponds to the second identifier based on the correlation count between the first identifier vector and the second identifier vector being above a determined threshold; and

generate, responsive to determining that the first identifier corresponds to the second identifier, one identifier key for both the first identifier and the second identifier.

12. The system of claim 11 , wherein the data processing system comprises an encryption module, the data processing system configured to:

encrypt the first identifier, the plurality of first parameters, and the plurality of second parameters based on the first-party encryption; and

transmit the first identifier vector, responsive to encrypting the first identifier, the plurality of first parameters, and the plurality of second parameters based on the first party encryption.

13. The system of claim 12 , wherein the one or more processors of the data processing system is further configured to:

encrypt the second identifier, the plurality of third parameters and the plurality of fourth parameters of the second identifier vector based on the first encryption; and

determine the correlation count between the encrypted first identifier vector and encrypted second identifier vector, responsive to encrypting the second identifier, the plurality of third parameters, and the plurality of fourth parameters.

14. The system of claim 11 , wherein the plurality of first parameters and the plurality of third parameters are a first type of parameter and the plurality of second parameters and the plurality of fourth parameters are a second type of parameter.

15. The system of claim 14 , wherein the first type of parameter includes location identifiers and the second type of parameter includes time stamps, the location identifiers and the time stamps each identifying a location and a time of a recorded interaction.

16. The system of claim 15 , comprising:

the data processing system configured to determine the correlation count based on some of the plurality of first parameters being within a threshold distance of some of the plurality of third parameters and some of the plurality of second parameters being within a time window of some of the plurality of fourth parameters.

17. The system of claim 11 , wherein some of the plurality of first parameters and some of the plurality of second parameters each include dummy data.

18. The system of claim 11 , wherein the first identifier vector comprises the first identifier and a plurality of first combinations of the plurality of first parameters and the plurality of second parameters and wherein the second identifier vector comprises the second identifier and a plurality of second combinations of the plurality of third parameters and the plurality of fourth parameters.

19. The system of claim 11 , comprising:

the data processing system is configured to categorize the plurality of first parameters into a plurality of first category values based on a respective value of the first parameter and to transmit the first identifier vector comprising the first identifier vector and the plurality of first category values.

20. The system of claim 11 , comprising:

the data processing system is configured to determine that a predefined time has passed since generating the one identifier key and delete the first identifier vector and the second identifier vector, responsive to determining that the predefined that has passed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: SALEK, MAHYAR; MCDONNELL, PHILIP; RAMACHANDRAN, VINOD KUMAR; SAXENA, SHOBHIT; SHANAHAN, DAVID OWEN
To: GOOGLE INC.
Reel/Frame 060639/0712 →
CHANGE OF NAME Recorded Jul 27, 2022
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 060979/0536 →
Continuity (5)
Continuation 16843553 · Apr 8, 2020
Continuation 16216768 · Dec 11, 2018
Continuation 15650099 · Jul 14, 2017
Continuation 14808634 · Jul 24, 2015
Related Publication 20220311754A1 · Sep 29, 2022
References Cited (95)
US 3468119A · Kumar et al. · 1969 [cited by applicant]
US 4868119A · Clark · 1989 [cited by applicant]
US 6952769B1 · Dubey et al. · 2005 [cited by applicant]
US 8429086B2 · Babitch · 2013 [cited by applicant]
US 8468119B2 · Kumar et al. · 2013 [cited by applicant]
US 8572379B2 · Cancedda · 2013 [cited by applicant]
US 8621240B1 · Auchmoody et al. · 2013 [cited by applicant]
US 8634853B2 · Bogatin · 2014 [cited by applicant]
US 8745390B1 · Atwood et al. · 2014 [cited by applicant]
US 9305070B2 · Zhu et al. · 2016 [cited by applicant]
US 9349026B2 · Gianniotis · 2016 [cited by applicant]
US 9716697B2 · Salek et al. · 2017 [cited by applicant]
US 10142296B2 · Salek et al. · 2018 [cited by applicant]
US 10652221B2 · Salek et al. · 2020 [cited by applicant]
US 11363006B2 · Salek et al. · 2022 [cited by applicant]
US 20060077095A1 · Tucker et al. · 2006 [cited by applicant]
US 20070038674A1 · Bejar · 2007 [cited by applicant]
US 20090037492A1 · Baitalmal · 2009 [cited by applicant]
US 20090132805A1 · Ginter et al. · 2009 [cited by applicant]
US 20100014657A1 · Kerschbaum et al. · 2010 [cited by applicant]
US 20100318858A1 · Essawi · 2010 [cited by applicant]
US 20110141967A1 · Lane · 2011 [cited by applicant]
US 20120016899A1 · Kumar et al. · 2012 [cited by applicant]
US 20120191614A1 · Babitch et al. · 2012 [cited by applicant]
US 20120330722A1 · Volpe et al. · 2012 [cited by applicant]
US 20130251150A1 · Chassagne · 2013 [cited by applicant]
US 20130326220A1 · Connelly et al. · 2013 [cited by applicant]
US 20140006097A1 · Groarke · 2014 [cited by applicant]
US 20150128285A1 · LaFever · 2015 [cited by applicant]
US 20150128287A1 · LaFever · 2015 [cited by applicant]
US 20150149763A1 · Kamara · 2015 [cited by applicant]
US 20170161521A1 · Fontecchio · 2017 [cited by applicant]
US 20170170960A1 · Shaked · 2017 [cited by applicant]
US 20180307859A1 · LaFever · 2018 [cited by applicant]
CN 101022377A · 2007 [cited by applicant]
CN 101562636A · 2009 [cited by applicant]
CN 103581309A · 2014 [cited by applicant]
GB 2469673A · 2010 [cited by applicant]
JP 2008225988A · 2008 [cited by applicant]
JP 2014092882A · 2014 [cited by applicant]
JP 2015503148A · 2015 [cited by applicant]
WO WO2014050027A1 · 2014 [cited by applicant]
Kim et al., The 7th International Conference for Internet Technology and Secured Transactions (ICITST-2012), “User-Intent Custom Adaptive Search Service based on Ontology and Similar-Word Retrieval Algorithm Composition… [cited by examiner]
Guo et al., 2013 IEEE, 5th International Conference on Intelligent Networking and Collaborative Systems, “Design of a Security Framework on MapReduce”, pp. 139-145 (Year: 2013). [cited by examiner]
Agrawal et al., “Information Sharing Across Private Databases,” Sigmod 2003, Proceedings of the ACM Sigmod International Conference on management of Data, San Diego, CA, dated Jun. 9-12, 2003 (12 pages). [cited by applicant]
Berthier et al., “On the Practicality of Detecting Anomalies with Encrypted Traffic in AMI”, 2014 IEEE International Conference on Smart GridCommunications, pp. 890-895 (Year: 2014). [cited by applicant]
Clifton et al., “TopCat: Data Mining for Topic Identification in a Text Corpus,” IEEE Transactions on Knowledge and Data Engineering, IEEE Service Center, Los Alamitos, CA, vol. 15, No. 8, dated Aug. 1, 2004 (10 pages). [cited by applicant]
Clifton, C. et al., “TopCat: Data Mining for Topic Identification in a Text Corpus,” IEEE Transactions on Knowledge and Data Engineering, IEEE Service Center, Los Alamitos, CA, vol. 15, No. 8, dated Aug. 1, 2004 (10 pag… [cited by applicant]
Decision to Grant a Patent for EP Appln. Ser. No. 16745586.4 dated Aug. 7, 2019 (73 pages). [cited by applicant]
Decision to Grant a Patent for JP Appln. Ser. No. 2017-556894, dated Dec. 17, 2018 (2 pages). [cited by applicant]
Decision to Grant on EP Appln. Ser. No. 16745586.4 dated Aug. 7, 2019 (73 pages). [cited by applicant]
Examination Report for EP Appln. Ser. No. 16745320.8 dated Oct. 30, 2019 (5 pages). [cited by applicant]
Examination Report for EP Appln. Ser. No. 16745320.8 dated Sep. 9, 2020 (3 pages). [cited by applicant]
Examination Report for IN Appln. Ser. No. 201847002014 dated Oct. 16, 2020 (10 pages). [cited by applicant]
Examination Report for IN Appln. Ser. No. 201847002015 dated Feb. 15, 2021 (5 pages). [cited by applicant]
First Office Action for CN Appln. Ser. No. 201680003790.6 dated Sep. 19, 2019 (17 pages). [cited by applicant]
First Office Action for CN Appln. Ser. No. 201680003807.8 dated Sep. 2, 2019 (11 pages). [cited by applicant]
First Office Action for CN Appln. Ser. No. 202010644421.3 dated Feb. 24, 2021 (10 pages). [cited by applicant]
International Preliminary Report of Patentability, Ch. I, for PCT Appln. Ser. No. PCT/US2016042925 dated Feb. 8, 2018 (8 pages). [cited by applicant]
International Preliminary Report on Patentability, Ch. I, for PCT Appln. Ser. No. PCT/US2016042921 dated Feb. 8, 2018 (7 pages). [cited by applicant]
International Search Report and the Written Opinion of the International Searching Authority for PCT Application PCT/US2016/042925 dated Oct. 6, 2016, 29 pages. [cited by applicant]
International Search Report and Written Opinion for PCT Appln. Ser. No. PCT/US2016/042921 dated Sep. 29, 2016 (10 pages). [cited by applicant]
International Search Report and Written Opinion for PCT Appln. Ser. No. PCT/US2016/042925 dated Oct. 6, 2016 (11 pages). [cited by applicant]
International Search Report and Written Opinion for related PCT application No. PCT/US2016/042921, dated Sep. 29, 2016. [cited by applicant]
Non-Final Office Action for KR Appln. Ser. No. 10-2017-7031639 dated May 14, 2019 (8 pages). [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 14/808,634 dated Dec. 22, 2016 (25 pages). [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 15/650,099 dated Oct. 25, 2017 (14 pages). [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 16/216,768 dated May 7, 2019 (10 pages). [cited by applicant]
Non-Final Office Action on CN Appln. Ser. No. 201680003807.8 dated Sep. 2, 2019 (11 pages). [cited by applicant]
Non-Final Office Action on KR Appln. Ser. No. 10-2017-7031188 dated Jun. 12, 2019 (14 pages). [cited by applicant]
Non-Final Office Action on KR Appln. Ser. No. 10-2017-7031639, dated May 14, 2019 (8 pages). [cited by applicant]
Notice of Allowance for KR Appln. Ser. No. 10-2017-7031188 dated Oct. 10, 2019 (3 pages). [cited by applicant]
Notice of Allowance for KR Appln. Ser. No. 10-2017-7031639 dated Oct. 1, 2019 (3 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 14/808,634 dated Mar. 31, 2017 (9 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/043,394 dated Jul. 31, 2018 (12 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/043,394 dated Mar. 27, 2018 (14 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/650,099 dated Jan. 23, 2018 (12 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/650,099 dated Jul. 6, 2018 (8 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/216,768 dated Aug. 14, 2019 (11 pages). [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/216,768 dated Jan. 13, 2020 (9 pages). [cited by applicant]
Notice of Allowance on KR Appln. Ser. No. 10-2017-7031188 dated Oct. 10, 2019 (3 pages). [cited by applicant]
Notice of Allowance on KR Appln. Ser. No. 10-2017-7031639 dated Oct. 1, 2019 (3 pages). [cited by applicant]
Notice of Allowance on U.S. Appl. No. 15/043,394 dated Jul. 31, 2018. [cited by applicant]
Notice of Allowance on U.S. Appl. No. 15/650,099 dated Jul. 6, 2018. [cited by applicant]
Office Action for KR Appln. Ser. No. 10-2017-7031188 dated Jun. 12, 2019 (14 pages). [cited by applicant]
Office Action on CN Appln. Ser. No. 201680003790.6 dated Sep. 19, 2019 (17 pages). [cited by applicant]
Office Action on EP Appln. Ser. No. 16745320.8 dated Oct. 30, 2019 (5 pages). [cited by applicant]
U.S. Notice of Allowance on U.S. Appl. No. 15/650,099 dated Jan. 23, 2018. [cited by applicant]
U.S. Notice of Allowance on U.S. Appl. No. 14/808,634 dated Mar. 31, 2017. [cited by applicant]
U.S. Notice of Allowance on U.S. Appl. No. 15/043,394 dated Mar. 27, 2018. [cited by applicant]
U.S. Office Action on U.S. Appl. No. 14/808,634 dated Dec. 22, 2016. [cited by applicant]
U.S. Office Action on U.S. Appl. No. 15/650,099 dated Oct. 25, 2017. [cited by applicant]
Urbina et al., 2014 IEEE International Conference on Smart Grid Communications, “On the Practicality of Detecting Anomalies with Encrypted Traffic in AMI”, pp. 890-895 (Year: 2014). [cited by applicant]
Written Opinion of the International Searching Authority for application No. PCT/US2016042921. [cited by applicant]
Written Opinion of the International Searching Authority for application No. PCT/US2016042925. [cited by applicant]