IP Library Granted Patent US 12,200,119
Granted Patent B2
US 12,200,119 · App. 17/010,993 · Granted Jan 14, 2025

Distribute encryption keys securely and efficiently

Inventors: Rohit Jog (Mountain View, CA); Cristina Schmidt (Mountain View, CA); Clifford Arthur Frey (Mountain View, CA)
Assignee: Google LLC
H04L9/088H04L9/0861H04L9/14H04L63/101H04L9/0822
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,200,119
App. No.
17/010,993
Granted
Jan 14, 2025
Kind
B2
Abstract

A method for distributing encryption keys includes receiving a table associated with a particular user, the table including a plurality of data blocks and splitting the table into a plurality of tablets including a corresponding portion of data blocks. The method also includes generating a resource key uniquely associated with the table and for each tablet generating a unique data encryption key for the corresponding tablet to encrypt with the unique data encryption key. The method also includes encrypting each data encryption key with the resource key and distributing control of each encrypted tablet and each corresponding encrypted data encryption key to a plurality of tablet servers, each controlling one or more of the encrypted tablets. The resource key transmits to a remote entity causing the remote entity to encrypt the resource key with a user key associated with the particular user and transmit the encrypted resource key.

Claims (66)

1. A method comprising:

receiving, at data processing hardware, a table associated with a particular user, the table comprising a plurality of data blocks;

splitting, by the data processing hardware, the table into a plurality of tablets, each tablet comprising a corresponding portion of the plurality of data blocks of the table;

generating, by the data processing hardware, a unique resource key uniquely associated with the table;

for each corresponding tablet of the plurality of tablets:

generating, by the data processing hardware, a unique data encryption key for the corresponding tablet;

encrypting, by the data processing hardware, the corresponding tablet with the unique data encryption key such that decryption of the corresponding tablet requires the unique data encryption key; and

encrypting, by the data processing hardware, the unique data encryption key with the unique resource key that is uniquely associated with the table such that decryption of the unique data encryption key requires the unique resource key;

distributing, by the data processing hardware, control of each encrypted tablet and each corresponding encrypted data encryption key to a respective tablet server of a plurality of tablet servers, each respective tablet server independent from each other respective tablet server and controlling access to one or more of the encrypted tablets from the table;

encrypting, by the data processing hardware, the unique resource key with an access control key associated with an access control list (ACL) comprising a list of tablet servers authorized to access the unique resource key, wherein the ACL is based on a role assigned to one or more tablet servers of the plurality of tablet servers;

distributing, by the data processing hardware, the unique resource key encrypted with the access control key to each tablet server in the plurality of tablet servers, wherein at least one tablet server of the plurality of tablet servers is not authorized to access the unique resource key by the ACL; and

transmitting, by the data processing hardware, the unique resource key to a remote entity, the unique resource key causing the remote entity to:

encrypt the unique resource key with a user key associated with the particular user and kept secret from the data processing hardware; and

transmit the unique resource key encrypted with the user key to the data processing hardware.

2. The method of claim 1 , further comprising, after receiving the unique resource key encrypted with the user key from the remote entity:

obtaining, by the data processing hardware, a request to access one or more data blocks of the table;

generating, by the data processing hardware, a resource key decryption request comprising the unique resource key encrypted with the user key; and

transmitting, by the data processing hardware, the resource key decryption request to the remote entity, the resource key decryption request when received by the remote entity causing the remote entity to:

decrypt the unique resource key encrypted with the user key with the user key associated with the particular user; and

transmit the decrypted unique resource key to the data processing hardware.

3. The method of claim 1 , further comprising:

receiving, at the data processing hardware, a resource key request requesting the unique resource key in a decrypted form from one of the tablet servers of the plurality of tablet servers;

determining, by the data processing hardware, whether the one of the tablet servers is authorized to access the unique resource key based on the ACL;

when the one of the tablet servers is authorized to access the unique resource key, decrypting, by the data processing hardware, the unique resource key encrypted with the access control key with the access control key; and

transmitting, by the data processing hardware, the decrypted unique resource key to the one of the tablet servers.

4. The method of claim 3 , wherein the decrypted unique resource key, when received by the one of the tablet servers causes the one of the tablet servers to:

decrypt, using the decrypted unique resource key, the unique data encryption key corresponding to at least one tablet controlled by the one of the tablet servers; and

decrypt, using the decrypted unique data encryption key, the corresponding at least one tablet.

5. The method of claim 1 , wherein the unique resource key comprises an expiration time limit.

6. The method of claim 5 , further comprising rotating, by the data processing hardware, the unique resource key at a rotation rate that is less than the expiration time limit of the unique resource key.

7. The method of claim 6 , wherein the expiration time limit and the rotation rate are each configurable by the particular user.

8. The method of claim 1 , wherein the corresponding portion of data blocks of each tablet includes different data blocks than the corresponding portion of data blocks of each other tablet.

9. A system comprising:

data processing hardware; and

memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:

receiving a table associated with a particular user, the table comprising a plurality of data blocks;

splitting the table into a plurality of tablets, each tablet comprising a corresponding portion of the plurality of data blocks of the table;

generating a unique resource key uniquely associated with the table;

for each corresponding tablet of the plurality of tablets,

generating a unique data encryption key for the corresponding tablet;

encrypting the corresponding tablet with the unique data encryption key such that decryption of the corresponding tablet requires the unique data encryption key; and

encrypting the unique data encryption key with the unique resource key that is uniquely associated with the table such that decryption of the unique data encryption key requires the unique resource key;

distributing control of each encrypted tablet and each corresponding encrypted data encryption key to a respective tablet server of a plurality of tablet servers, each respective tablet server independent from each other respective tablet server and controlling access to one or more of the encrypted tablets from the table;

encrypting the unique resource key with an access control key associated with an access control list (ACL) comprising a list of tablet servers authorized to access the unique resource key, wherein the ACL is based on a role assigned to one or more tablet servers of the plurality of tablet servers;

distributing the unique resource key encrypted with the access control key to each tablet server in the plurality of tablet servers, wherein at least one tablet server of the plurality of tablet servers is not authorized to access the unique resource key by the ACL; and

transmitting the unique resource key to a remote entity, the unique resource key causing the remote entity to:

encrypt the unique resource key with a user key associated with the particular user and kept secret; and

transmit the unique resource key encrypted with the user key to the data processing hardware.

10. The system of claim 9 , wherein the operations further comprise, after receiving the unique resource key encrypted with the user key from the remote entity:

obtaining a request to access one or more data blocks of the table;

generating a resource key decryption request comprising the unique resource key encrypted with the user key; and

transmitting the resource key decryption request to the remote entity, the resource key decryption request when received by the remote entity causing the remote entity to:

decrypt the unique resource key encrypted with the user key with the user key associated with the particular user; and

transmit the decrypted unique resource key to the data processing hardware.

11. The system of claim 9 , wherein the operations further comprise:

receiving a resource key request requesting the unique resource key in a decrypted form from one of the tablet servers of the plurality of tablet servers;

determining whether the one of the tablet servers is authorized to access the unique resource key based on the ACL;

when the one of the tablet servers is authorized to access the unique resource key, decrypting the unique resource key encrypted with the access control key with the access control key; and

transmitting the decrypted unique resource key to the one of the tablet servers.

12. The system of claim 11 , wherein the decrypted unique resource key, when received by the one of the tablet servers causes the one of the tablet servers to:

decrypt, using the decrypted unique resource key, the unique data encryption key corresponding to at least one tablet controlled by the one of the tablet servers; and

decrypt, using the decrypted unique data encryption key, the corresponding at least one tablet.

13. The system of claim 9 , wherein the unique resource key comprises an expiration time limit.

14. The system of claim 13 , wherein the operations further comprise rotating the unique resource key at a rotation rate that is less than the expiration time limit of the unique resource key.

15. The system of claim 14 , wherein the expiration time limit and the rotation rate are each configurable by the particular user.

16. The system of claim 9 , wherein the corresponding portion of data blocks of each tablet includes different data blocks than the corresponding portion of data blocks of each other tablet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: JOG, ROHIT; FREY, CLIFFORD ARTHUR; SCHMIDT, CRISTINA
To: GOOGLE LLC
Reel/Frame 053734/0090 →
Continuity (1)
Related Publication 20220069981A1 · Mar 3, 2022
References Cited (62)
US 7093137B1 · Sato · 2006 [cited by examiner]
US 7178021B1 · Hanna · 2007 [cited by examiner]
US 7266699B2 · Newman · 2007 [cited by examiner]
US 7548928B1 · Dean · 2009 [cited by examiner]
US 7778419B2 · Gebotys · 2010 [cited by examiner]
US 8607358B1 · Shankar · 2013 [cited by examiner]
US 8626749B1 · Trepetin · 2014 [cited by examiner]
US 8639947B2 · Elovici · 2014 [cited by examiner]
US 8914632B1 · Shankar · 2014 [cited by examiner]
US 9442980B1 · Trepetin · 2016 [cited by examiner]
US 9843446B2 · Mityagin · 2017 [cited by examiner]
US 9946810B1 · Trepetin · 2018 [cited by examiner]
US 10372935B1 · Mwaura · 2019 [cited by examiner]
US 10698883B2 · Beier · 2020 [cited by examiner]
US 11860673B1 · Kodakandla · 2024 [cited by examiner]
US 20060005017A1 · Black · 2006 [cited by examiner]
US 20060112284A1 · Kato · 2006 [cited by examiner]
US 20060288232A1 · Ho · 2006 [cited by examiner]
US 20070074047A1 · Metzger · 2007 [cited by examiner]
US 20090013194A1 · Mir · 2009 [cited by examiner]
US 20090225987A1 · Metzger · 2009 [cited by examiner]
US 20100183148A1 · Bellwood · 2010 [cited by examiner]
US 20100235633A1 · Asano · 2010 [cited by examiner]
US 20160148021A1 · Wong · 2016 [cited by examiner]
US 20160239674A1 · Bao · 2016 [cited by examiner]
US 20160350544A1 · Wong · 2016 [cited by examiner]
US 20170206372A1 · Jung · 2017 [cited by examiner]
US 20170286698A1 · Shetty · 2017 [cited by examiner]
US 20180144152A1 · Greatwood · 2018 [cited by examiner]
US 20180145826A1 · Greatwood · 2018 [cited by examiner]
US 20190121887A1 · Beier · 2019 [cited by examiner]
US 20190149320A1 · Keselman · 2019 [cited by examiner]
US 20190319785A1 · Kumar · 2019 [cited by examiner]
US 20200135306A1 · Wong · 2020 [cited by examiner]
US 20210143989A1 · Chitkara · 2021 [cited by examiner]
CN 107113292A · 2017 [cited by examiner]
CN 105282171B · 2018 [cited by applicant]
CN 110300112A · 2019 [cited by examiner]
CN 110633580A · 2019 [cited by examiner]
CN 108809906B · 2020 [cited by examiner]
CN 111639357A · 2020 [cited by examiner]
GB 2574076A · 2019 [cited by examiner]
JP H11143780A · 1999 [cited by examiner]
JP 2006277695A · 2006 [cited by applicant]
JP 2007026120A · 2007 [cited by examiner]
JP 2017073074A · 2017 [cited by applicant]
JP 2019061694A · 2019 [cited by examiner]
JP 2020080560A · 2020 [cited by applicant]
WO 2010057191A2 · 2010 [cited by applicant]
WO WO2019173774A1 · 2019 [cited by examiner]
Scalable Architecture for Multi-User Encrypted SQL Operations on Cloud Database Services by Luca Ferretti, Fabio Pierazzi, Michele Colajanni, and Mirco Marchetti; pp. 14; IEEE Transactions on Cloud Computing, vol. 2, No… [cited by examiner]
CN111639357A_Encryption Network Disk System and Authentication Method and Device Thereof (English Translation) by Sun, Xia-kun and Fan, Yuan; pp. 7 Jun. 5, 2020. [cited by examiner]
JP2007026120A_Information Processor, Device for Manufacturing Information Recording Medium, Information Recording Medium and Method, and Computer Program (English Translation); pp. 32 by Takashima Yoshikazu, Ueda Kenjir… [cited by examiner]
Martin Hentschel; (Data Encryption with Customer-Managed Keys); pp. 5; Published in May 11, 2017. [cited by examiner]
Arshad Ali; (Granular or Cell Level Encryption Vs. Transparent Data Encryption (TDE)); pp. 5; Published in Jun. 23, 2014. [cited by examiner]
Prashanth Jayaram; (How to configure Always Encrypted in SQL Server 2016 using SSMS, PowerShell and T-SQL); pp. 26; Published in Oct. 2, 2017. [cited by examiner]
Alejandro Corbellini, Cristian Mateos, Alejandro Zunino, Daniela Godoy, Silvia Schiaffino; (Persisting big-data: The NoSQL landscape); pp. 23; Available online Jul. 30, 2016. [cited by examiner]
Ameya Nayak, Anil Poriya, Dikshay Poojary; (Type of NOSQL Databases and its Comparison with Relational Databases); pp. 4; vol. 5—No. 4, Mar. 2013. [cited by examiner]
Shruthi Ramesh and Manimaran Govindarasu; (An Efficient Framework for Privacy-Preserving Computations on Encrypted IoT Data); pp. 9; Date of publication: May 28, 2020. [cited by examiner]
Bharat S. Rawal and S. Sree Vivek; (Secure Cloud Storage and File Sharing); pp. 6; Date of publication: Nov. 23, 2017. [cited by examiner]
Indian Examination Report for the related Application No. 202347021878, dated Aug. 28, 2023, 5 pages. [cited by applicant]
Office Action issued in related Japanese Patent Application No. 2023-514824, dated Jun. 4, 2024. [cited by applicant]