US 12,353,586 B2
Secure encrypted identifier data sharing
Justin Langseth, Kailua, HI (US); Michael Earle Rainey, Kennewick, WA (US); and William L. Stratton, Jr., Atlanta, GA (US)
Assigned to Snowflake Inc., Bozeman, MT (US)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Jan. 31, 2023, as Appl. No. 18/162,709.
Application 18/162,709 is a continuation of application No. 17/664,135, filed on May 19, 2022.
Application 17/664,135 is a continuation of application No. 17/390,938, filed on Jul. 31, 2021, granted, now 11,347,886.
Claims priority of provisional application 63/216,888, filed on Jun. 30, 2021.
Prior Publication US 2023/0169203 A1, Jun. 1, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/9535 (2019.01); G06F 16/27 (2019.01); G06F 21/62 (2013.01); H04L 9/40 (2022.01); H04L 9/06 (2006.01)
CPC G06F 21/6227 (2013.01) [G06F 16/27 (2019.01); G06F 16/9535 (2019.01); H04L 63/0421 (2013.01); H04L 9/0643 (2013.01)] 21 Claims
OG exemplary drawing
 
1. A computer implemented method comprising:
generating, by a requester account, requester data of a request for a data set from a secured database of a database system;
generating, by a provider account, shared tables of the data set for use in a clean room query based on the requester data, the shared tables encrypted by the provider account using an encryption function of the requester account with a pass phrase that is private to the requester account, the shared tables being processed in micro-batches, the micro-batches being mixed and re-ordered from an initial sequence;
generating, by the requester account, a clean room request for the data set;
generating, by the provider account, a shared secure user defined table function that accepts the pass phrase as a decryption key parameter, the pass phrase being passed to the shared secure user defined table function by the requester account;
generating, by the request account, results data by passing the pass phrase to the shared secure user defined table function;
decrypting, by the shared secure user defined table function using the pass phrase, the requester data;
matching, by the secure user defined table function, the requester data to user identifiers in the data set that are accessed using metadata references without exposing the user identifiers to the requester; and
displaying the results data based on the matching.