IP Library Granted Patent US 10,728,023
Granted Patent B2
US 10,728,023 · App. 16/050,173 · Granted Jul 28, 2020

Hash function with content based salt

Inventors: Zvi Schneider (Tel Aviv, IL); Amitai Alkalay (Kadima, IL); Lior Kamran (Rishon LeZion, IL)
Assignee: EMC IP Holding Company LLC
H04L9/0643
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,728,023
App. No.
16/050,173
Granted
Jul 28, 2020
Kind
B2
Abstract

An aspect for implementing a hash function with content-based salt includes identifying a data block (block b) of a given size, dividing the data block into x number of segments, selecting y number of bytes from each of the segments, totaling y_total bytes, and performing a bitwise and/or on a z number of the y_total bytes. The bitwise and/or operation produces S(b). An aspect further includes calculating a hash function on the data block producing a number of bytes hash. The hash function results in a hash value (H′(b)). An aspect also includes calculating the hash function on a concatenation of the hash value and S(b).

Claims (38)

1. A method comprising:

for a data block,

dividing the data block into x number of segments;

selecting y number of bytes from each of the segments, totaling y_total bytes;

performing a bitwise and/or operation on a z number of the y_total bytes, the bitwise and/or operation producing a salt for the data block S(b);

calculating a hash function on the data block producing a number of bytes hash, the hash function resulting in a hash value; and

calculating the hash function further on a concatenation of the hash value and S(b) resulting in a unique fingerprint, the unique fingerprint configured to identify the data block upon future access to the data block,

wherein the y number of bytes selected is a function of a number of computations determined to avoid producing the same hash for two different data blocks.

2. The method of claim 1 , wherein the data block is divided into an equal number of segments.

3. The method of claim 1 , wherein the hash function is one of a SHA1 function and a SHA2 function.

4. The method of claim 1 , wherein the hash function is a MURMUR function.

5. The method of claim 1 , wherein the z number of the y_total bytes is determined by dividing the y_total bytes into a selected number of fragments.

6. A system, comprising:

a memory comprising computer-executable instructions; and

a processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:

for a data block (b),

dividing the data block into x number of segments;

selecting y number of bytes from each of the segments, totaling y_total bytes;

performing a bitwise and/or operation on a z number of the y_total bytes, the bitwise and/or operation producing a salt for the data block S(b);

calculating a hash function on the data block producing a number of bytes hash, the hash function resulting in a hash value; and

calculating the hash function further on a concatenation of the hash value and S(b) resulting in a unique fingerprint, the unique fingerprint configured to identity the data block upon future access to the data block;

wherein the y number of bytes selected is a junction of a number of computations determined to avoid producing the same hash for two different data blocks.

7. The system of claim 6 , wherein the data block is divided into an equal number of segments.

8. The system of claim 6 , wherein the hash function is one of a SHA1 function and a SHA2 function.

9. The system of claim 6 , wherein the hash function is a MURMUR function.

10. The system of claim 6 , wherein the z number of the y_total bytes is determined by dividing the y_total bytes into a selected number of fragments.

11. A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer causes the computer to perform operations comprising:

for a data block (b);

dividing the data block into x number of segments;

selecting y number of bytes from each of the segments, totaling y_total bytes;

performing a bitwise and/or operation on a z number of the y_total bytes, the bitwise and/or operation producing a salt for the data block S(b);

calculating a hash function on the data block producing a number of bytes hash, the hash function resulting in a hash value; and

calculating the hash function further on a concatenation of the hash value and S(b) resulting in a unique fingerprint, the unique fingerprint configured to identity the data block upon future access to the data block;

wherein the y number of bytes selected is a function of a number of computations determined to avoid producing the same hash for two different data blocks.

12. The computer program product of claim 11 , wherein the data block is divided into an equal number of segments.

13. The computer program product of claim 11 , wherein the hash function is one of a SHA1 function and a SHA2 function.

14. The computer program product of claim 11 , wherein the hash function is a MURMUR function.

15. The computer program product of claim 11 , wherein the z number of the y_total bytes is determined by dividing the y_total bytes into a selected number of fragments.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2018
From: SCHNEIDER, ZVI; ALKALAY, AMITAI; KAMRAN, LIOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046598/0830 →
Continuity (1)
Related Publication 20200044826A1 · Feb 6, 2020