IP Library Granted Patent US 9,813,248
Granted Patent B2
US 9,813,248 · App. 14/722,854 · Granted Nov 7, 2017

Content-based encryption keys

Inventors: Murali Bashyam (Fremont, CA); Tarun K. Tripathy (Newark, CA)
Assignee: QUEST SOFTWARE INC.
H04L9/3242G06F11/1004H04L9/0866
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 9,813,248
App. No.
14/722,854
Filed
May 27, 2015
Granted
Nov 7, 2017
Kind
B2
Art Unit
2491
USPC
380/28
Abstract

Techniques and mechanisms described herein facilitate the encryption of content using content-based encryption keys. According to various embodiments, data stream may include one or more data chunks. A client machine may apply a hash function to a data chunk to determine a fingerprint value. A cryptographic protocol shared with a remote server may be applied to the fingerprint value to determine a data chunk encryption key. The data chunk encryption key may be used to encrypt the data chunk, and the encrypted data chunk may be sent to the remote server for storage.

Claims (31)

1. A method comprising:

parsing a data stream into a plurality of data chunks by applying a rolling hash function that produces a respective checksum value for each of the plurality of data chunks, the plurality of data chunks including a designated data chunk;

determining a fingerprint value for the designated data chunk by applying a hash function to the designated data chunk via a processor at a client machine;

constructing a data chunk encryption key for encrypting the designated data chunk by combining the fingerprint value with one or more secret strings, the one or more secret strings being pre-negotiated between the client machine and a remote server, the data chunk encryption key being specific to the designated data chunk;

encrypting the designated data chunk with the data chunk encryption key to produce an encrypted data chunk; and

transmitting the encrypted data chunk to the remote server for storage via a communications interface at the client machine.

2. The method recited in claim 1 , wherein a respective data chunk encryption key is constructed for each of the plurality of data chunks.

3. The method recited in claim 1 , wherein the cryptographic protocol comprises a secret shared between the client machine and the remote server.

4. The method recited in claim 1 , wherein constructing the data chunk encryption key further comprises determining a hash based message authentication code based on the fingerprint value.

5. The method recited in claim 1 , the method further comprising:

transmitting the fingerprint to the remote server via the communications interface.

6. The method recited in claim 5 , the method further comprising:

receiving a data chunk status message from the remote server indicating whether the designated data chunk is stored on the remote server.

7. The method recited in claim 6 , wherein the designated data chunk is transmitted to the remote server for storage when it is determined that the designated data chunk is not stored on the remote server.

8. A client machine comprising:

memory operable to store a fingerprint value for a designated data chunk, the fingerprint value determined by applying a hash function to the designated data chunk;

a processor operable to:

parsing a data stream into a plurality of data chunks by applying a rolling hash function that produces a respective checksum value for each of the plurality of data chunks, the plurality of data chunks including the designated data chunk,

construct a data chunk encryption key for encrypting the designated data chunk by combining the fingerprint value with one or more secret strings, the one or more secret strings being pre-negotiated between the client machine and a remote server, the data chunk encryption key being specific to the designated data chunk, and

encrypt the designated data chunk with the data chunk encryption key to produce an encrypted data chunk; and

a communications interface operable to transmit the encrypted data chunk to the remote server for storage.

9. The client machine recited in claim 8 , wherein a respective data chunk encryption key is constructed for each of the plurality of data chunks.

10. The client machine recited in claim 8 , wherein the cryptographic protocol comprises a secret shared between the client machine and the remote server.

11. The client machine recited in claim 8 , wherein constructing the data chunk encryption key further comprises determining a hash based message authentication code based on the fingerprint value.

12. The client machine recited in claim 8 , wherein the communications interface is operable to transmit the fingerprint to the remote server.

13. One or more non-transitory computer readable media having instructions stored thereon for performing a method, the method comprising:

parsing a data stream into a plurality of data chunks by applying a rolling hash function that produces a respective checksum value for each of the plurality of data chunks, the plurality of data chunks including a designated data chunk;

determining a fingerprint value for the designated data chunk by applying a hash function to the designated data chunk via a processor at a client machine;

constructing a data chunk encryption key for encrypting the designated data chunk by combining the fingerprint value with one or more secret strings, the one or more secret strings being pre-negotiated between the client machine and a remote server, the data chunk encryption key being specific to the designated data chunk;

encrypting the designated data chunk with the data chunk encryption key to produce an encrypted data chunk; and

transmitting the encrypted data chunk to the remote server for storage via a communications interface at the client machine.

Assignments (27)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CHANGE OF NAME Recorded Aug 8, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043483/0371 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 035726 FRAME: 0657. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 8, 2017
From: BASHYAM, MURALI; TRIPATHY, TARUN K.
To: DELL SOFTWARE INC.
Reel/Frame 043483/0340 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 036502 FRAME 0291 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0637 →
RELEASE OF REEL 036502 FRAME 0237 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0088 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 036502 FRAME 0206 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0204 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 036502/0237 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 036502/0291 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 27, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036502/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2015
From: BASHYAM, MURALI; TRIPATHY, TARUN K.
To: DELL SOFTWARE, INC.
Reel/Frame 035726/0657 →
Continuity (1)
Related Publication 20160352511A1 · Dec 1, 2016