IP Library Granted Patent US 10,339,124
Granted Patent B2
US 10,339,124 · App. 14/722,914 · Granted Jul 2, 2019

Data fingerprint strengthening

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 10,339,124
App. No.
14/722,914
Granted
Jul 2, 2019
Kind
B2
Abstract

Techniques and mechanisms described herein facilitate the strengthening of a data fingerprint. According to various embodiments, a data stream may be parsed into a plurality of data chunks. A hash function may be applied to each of the data chunks to determine a respective data chunk hash value. A respective data chunk fingerprint for each of the plurality of data chunks may be transmitted to a remote server. Each data chunk fingerprint may include the respective data chunk hash value and one or more respective intermediate hash values.

Claims (34)

1. A computing device comprising:

memory configured to store a data stream, the data stream being parsed into a plurality of data chunks;

a processor configured to:

determine a first data chunk hash value for a first portion of each of the plurality of data chunks by applying a hash function to the first portion of each of the plurality of data chunks;

generate a first data chunk fingerprint based on the first data chunk hash value and one or more respective intermediate hash values by applying a mathematical function to the first data chunk hash value and the one or more respective intermediate hash values;

determine a second data chunk hash value for a successive portion of each of the plurality of data chunks by applying the hash function to the successive portion of each of the plurality of data chunk; and

generate a new respective intermediate hash value by applying the mathematical function to the second data chunk hash value and a previous intermediate hash value, the new respective intermediate hash value dependent upon the first portion and the second portion;

and

a communications interface configured to transmit the respective data chunk fingerprint to a remote server for each of the plurality of data chunks, each data chunk fingerprint including the respective data chunk hash value and the new respective intermediate hash values.

2. The computing device recited in claim 1 , wherein the one or more respective intermediate hash values are generated during the parsing of the data stream or during the determining of the data chunk hash values.

3. The computing device recited in claim 1 , wherein a first data chunk checksum value is generated during the parsing of the data stream.

4. The computing device recited in claim 3 , wherein the one or more respective intermediate hash values includes the first data chunk checksum value.

5. The computing device recited in claim 1 , wherein the hash function is an additive hash function which yields the data chunk hash value by summing a plurality of results produced by applying the mathematical function to a respective data chunk and a plurality of intermediate results.

6. The computing device recited in claim 5 , wherein the one or more respective intermediate hash values includes one or more of the intermediate results.

7. The computing device recited in claim 1 , wherein the first data chunk fingerprint is determined by concatenating the respective data chunk hash value and the new respective intermediate hash value.

8. The computing device recited in claim 1 , wherein the communications interface is further configured to receive a data chunk status message, the data chunk status message indicating whether a data chunk associated with one of the data chunk fingerprints is stored at the remote server.

9. The computing device recited in claim 8 , wherein the communications interface is further configured to transmit the data chunk to the remote server for storage when it is determined that the data chunk is not stored at the remote server.

10. A method, comprising:

parsing a data stream into a plurality of data chunks, the data stream being stored in memory;

generating one or more respective intermediate hash values during the parsing of the data stream;

via a processor, determining a first data chunk hash value for a first portion of each of the plurality of data chunks by applying a hash function to the first portion of each of the plurality of data chunks; generating a first data chunk fingerprint based on the first data chunk hash value and the one or more respective intermediate hash values by applying a mathematical function to the first data chunk hash value and the one or more respective intermediate hash values; determining a second data chunk hash value for a successive portion of each of the plurality of data chunks by applying the hash function to the successive portion of each of the plurality of data chunk; and generating a new respective intermediate hash value by applying the mathematical function to the second data chunk hash value and a previous intermediate hash value, the new respective intermediate hash value dependent upon the first portion and the second portion; and

via a communications interface, transmitting the respective data chunk fingerprint to a remote server for each of the plurality of data chunks, each data chunk fingerprint including the respective data chunk hash value and the new respective intermediate hash values.

11. The method recited in claim 10 , wherein the one or more respective intermediate hash values are generated during the parsing of the data stream or during the determining of the data chunk hash values.

12. The method recited in claim 10 , wherein a first data chunk checksum value is generated during the parsing of the data stream.

13. The method recited in claim 12 , wherein the one or more respective intermediate hash values includes the first data chunk checksum value.

14. The method recited in claim 10 , wherein the hash function is an additive hash function which yields the data chunk hash value by summing a plurality of results produced by applying the mathematical function to a respective data chunk and a plurality of intermediate results, and wherein the one or more respective intermediate hash values includes one or more of the intermediate results.

15. The method recited in claim 10 , wherein the first data chunk fingerprint is determined by concatenating the respective data chunk hash value and the new respective intermediate hash value.

16. The method recited in claim 10 , wherein the communications interface is further configured to receive a data chunk status message, the data chunk status message indicating whether a data chunk associated with one of the data chunk fingerprints is stored at the remote server.

17. One or more non-transitory computer readable media having instructions stored thereon for causing a system to perform operations comprising:

parsing a data stream into a plurality of data chunks, the data stream being stored in memory;

generating one or more respective intermediate hash values during the parsing of the data stream;

via a processor, determining a first data chunk hash value for a first portion of each of the plurality of data chunks by applying a hash function to the first portion of each of the plurality of data chunks; generating a first data chunk fingerprint based on the first data chunk hash value and the one or more respective intermediate hash values by applying a mathematical function to the first data chunk hash value and the one or more respective intermediate hash values; determining a second data chunk hash value for a successive portion of each of the plurality of data chunks by applying the hash function to the successive portion of each of the plurality of data chunk; and generating a new respective intermediate hash value by applying the mathematical function to the second data chunk hash value and a previous intermediate hash value, the new respective intermediate hash value dependent upon the first portion and the second portion; and

via a communications interface, transmitting a respective data chunk fingerprint to a remote server for each of the plurality of data chunks, each data chunk fingerprint including the respective data chunk hash value and the one or more respective intermediate hash values.

18. The one or more non-transitory computer readable media recited in claim 17 , wherein the one or more respective intermediate hash values are generated during the parsing of the data stream or during the determining of the data chunk hash values.

Assignments (26)
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 →
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 →
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 →
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 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
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 →
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 →
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 →
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 →
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 →
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 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 (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 (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 (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: TRIPATHY, TARUN K.; BASHYAM, MURALI
To: DELL SOFTWARE, INC.
Reel/Frame 035726/0685 →