IP Library Granted Patent US 11,023,327
Granted Patent B2
US 11,023,327 · App. 15/926,685 · Granted Jun 1, 2021

Encryption detection and backup management

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 11,023,327
App. No.
15/926,685
Granted
Jun 1, 2021
Kind
B2
Abstract

A first entropy indicator is calculated at a first time for a collection of data stored in at least one memory. A second entropy indicator is calculated at a second time for the collection of data. The first entropy indicator is compared with the second entropy indicator. Based on the comparison, it is determined whether to back up the collection of data and/or whether to retain an earlier backup of the collection of data.

Claims (75)

1. A Data Storage Device (DSD), comprising:

at least one memory for storing a plurality of collections of data including a first collection of data and a second collection of data; and

a controller configured to:

calculate a first entropy indicator at a first time for the whole first collection of data using a first amount of data from the first collection of data;

calculate a second entropy indicator at a second time for the whole first collection of data using the first amount of data from the first collection of data;

compare the first entropy indicator with the second entropy indicator;

determine at least one of whether to back up the first collection of data and whether to retain an earlier backup of the first collection of data based on the comparison of the first entropy indicator with the second entropy indicator; and

identify the second collection of data to use a second amount of data from the second collection of data to recalculate an entropy indicator for the whole second collection of data, wherein the second amount of data is greater than the first amount of data to increase a sensitivity for detecting encryption of the second collection of data.

2. The DSD of claim 1 , wherein the first collection of data is a file, an object, or a contiguous range of blocks, and wherein the controller is further configured to calculate a first entropy indicator for each collection of data stored in the at least one memory.

3. The DSD of claim 1 , wherein the controller is further configured to:

initiate a backup of the first collection of data in response to determining that the second entropy indicator indicates an equal or lower level of entropy than the first entropy indicator; and

refrain from initiating a backup of the first collection of data in response to determining that the second entropy indicator indicates a greater level of entropy than the first entropy indicator.

4. The DSD of claim 1 , wherein in response to determining that the second entropy indicator indicates a greater level of entropy than the first entropy indicator, the controller is further configured to send to a host at least one of an indication that the first collection of data will not be backed up and that the first collection of data may be encrypted.

5. The DSD of claim 1 , wherein the controller is further configured to:

calculate the first entropy indicator for the first collection of data in response to a command to store the first collection of data in the DSD; and

calculate the second entropy indicator in response to the first collection of data being modified or a command to back up the first collection of data.

6. The DSD of claim 1 , wherein the controller is further configured to use at least one of a Shannon entropy, a chi-squared distribution, a histogram of values, and a Monte Carlo Pi approximation to calculate the first entropy indicator for the first collection of data.

7. The DSD of claim 1 , wherein the controller is further configured to identify a third collection of data of the plurality of collections of data to use the second amount of data from the third collection of data to calculate an initial entropy indicator for the whole third collection of data.

8. The DSD of claim 1 , wherein the controller is further configured to:

determine whether at least one of the first entropy indicator and the second entropy indicator exceed an expected entropy level for a file type or an object type for the first collection of data; and

in response to determining that at least one of the first entropy indicator and the second entropy indicator exceed the expected entropy level, send an indication to a host indicating that an entropy level for the first collection of data exceeds the expected entropy level.

9. The DSD of claim 1 , wherein the controller is further configured to:

determine that more than a threshold number of collections of data of the plurality of collections of data have been modified; and

in response to determining that more than the threshold number of collections of data have been modified, recalculate entropy indicators for at least a portion of the modified collections of data.

10. The DSD of claim 9 , wherein the controller is further configured to prioritize one or more predetermined file types or object types for recalculating the entropy indicators among the modified collections of data.

11. The DSD of claim 1 , wherein the controller is further configured to adjust at least one of a frequency for calculating entropy indicators and an amount of data used to calculate entropy indicators.

12. The DSD of claim 1 , wherein in identifying the second collection of data, the controller is further configured to identify the second collection of data based on access characteristics including at least one of host hardware used to access the second collection of data, host software used to access the second collection of data, a location of a host used to access the second collection of data, and an Internet Service Provider (ISP) used to access the second collection of data.

13. The DSD of claim 1 , wherein in identifying the second collection of data, the controller is further configured to identify the second collection of data based on attributes including at least one of a name for the second collection of data, a type for the second collection of data, a size for the second collection of data, an owner for the second collection of data, a creation time for the second collection of data, and a last modification time for the second collection of data.

14. The DSD of claim 1 , wherein the DSD includes a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, or a Storage Area Network (SAN) device.

15. The DSD of claim 1 , wherein the DSD includes a Hard Disk Drive (HDD), a Solid State Drive (SSD), a Solid State Hybrid Drive (SSHD), a tape drive, or a storage array.

16. A method for managing backups, the method comprising:

calculating a first entropy indicator at a first time for a whole first collection of data stored in at least one memory using a first amount of data from the first collection of data;

calculating a second entropy indicator at a second time for the whole first collection of data using the first amount of data from the first collection of data;

comparing the first entropy indicator with the second entropy indicator;

determining at least one of whether to back up the first collection of data and whether to retain an earlier backup of the first collection of data based on the comparison of the first entropy indicator with the second entropy indicator; and

identifying a second collection of data to use a second amount of data from the second collection of data to recalculate an entropy indicator for the whole second collection of data, wherein the second amount of data is greater than the first amount of data to increase a sensitivity for detecting encryption of the second collection of data.

17. A host, comprising:

an interface configured to communicate with at least one Data Storage Device (DSD); and

means for:

calculating a first entropy indicator at a first time for a whole first collection of data stored in the at least one DSD using a first amount of data from the first collection of data;

calculating a second entropy indicator at a second time for the whole first collection of data using the first amount of data from the first collection of data;

comparing the first entropy indicator with the second entropy indicator;

determining at least one of whether to back up the first collection of data and whether to retain an earlier backup of the first collection of data based on the comparison of the first entropy indicator with the second entropy indicator; and

identifying a second collection of data to use a second amount greater portion of data from the second collection of data to recalculate an entropy indicator for the whole second collection of data, wherein the second amount of data is greater than the first amount of data to increase a sensitivity for detecting encryption of the second collection of data.

18. The method of claim 16 , wherein the first collection of data is a file, an object, or a contiguous range of blocks, and wherein the method further comprises calculating a first entropy indicator for each collection of data stored in the at least one memory.

19. The method of claim 16 , further comprising:

initiating a backup of the first collection of data in response to determining that the second entropy indicator indicates an equal or lower level of entropy than the first entropy indicator; and

refraining from initiating a backup of the first collection of data in response to determining that the second entropy indicator indicates a greater level of entropy than the first entropy indicator.

20. The method of claim 16 , wherein in response to determining that the second entropy indicator indicates a greater level of entropy than the first entropy indicator, the method further comprises sending to a host at least one of an indication that the first collection of data will not be backed up and that the first collection of data may be encrypted.

21. The method of claim 16 , further comprising:

calculating the first entropy indicator for the first collection of data in response to a command to store the first collection of data; and

calculating the second entropy indicator in response to a command to modify the first collection of data or a command to back up the first collection of data.

22. The method of claim 16 , wherein at least one of a Shannon entropy, a chi-squared distribution, a histogram of values, and a Monte Carlo Pi approximation is used to calculate the first entropy indicator for the first collection of data.

23. The method of claim 16 , further comprising identifying a third collection of data to use the second amount of data from the third collection of data to calculate an initial entropy indicator for the whole third collection of data.

24. The method of claim 16 , further comprising:

determining whether at least one of the first entropy indicator and the second entropy indicator exceed an expected entropy level for a file type or an object type for the first collection of data; and

in response to determining that at least one of the first entropy indicator and the second entropy indicator exceed the expected entropy level, sending an indication to a host indicating that an entropy level for the first collection of data exceeds the expected entropy level.

25. The method of claim 16 , further comprising:

determining that more than a threshold number of collections of data have been modified; and

in response to determining that more than the threshold number of collections of data have been modified, recalculating entropy indicators for at least a portion of the modified collections of data.

26. The method of claim 25 , further comprising prioritizing one or more predetermined file types or object types for recalculating the entropy indicators among the modified collections of data.

27. The method of claim 16 , further comprising adjusting at least one of a frequency for calculating entropy indicators and an amount of data used to calculate entropy indicators.

28. The method of claim 16 , wherein in identifying the second collection of data, the method further comprises identifying the second collection of data based on access characteristics including at least one of host hardware used to access the second collection of data, host software used to access the second collection of data, a location of a host used to access the second collection of data and an Internet Service Provider (ISP) used to access the second collection of data.

29. The method of claim 16 , wherein in identifying the second collection of data, the method further comprises identifying the second collection of data based on attributes including at least one of a name for the second collection of data, a type for the second collection of data, a size for the second collection of data, an owner for the second collection of data, a creation time for the second collection of data, and a last modification time for the second collection of data.

30. A computer-readable storage medium storing computer-executable instructions for managing backups, wherein when the computer-executable instructions are executed by a controller or a processor, the computer-executable instructions cause the controller or the processor to:

calculate a first entropy indicator at a first time for a first whole collection of data stored in at least one memory using a first amount of data from the first collection of data;

calculate a second entropy indicator at a second time for the whole first collection of data using the first amount of data from the first collection of data;

compare the first entropy indicator with the second entropy indicator;

determine at least one of whether to back up the first collection of data and whether to retain an earlier backup of the first collection of data based on the comparison of the first entropy indicator with the second entropy indicator; and

identify a second collection of data to use a second amount of data from the second collection of data to recalculate an entropy indicator for the whole second collection of data, wherein the second amount of data is greater than the first amount of data to increase a sensitivity for detecting encryption of the second collection of data.

31. The computer-readable storage medium of claim 30 , wherein the computer-readable storage medium forms part of a system.

32. The host of claim 17 , further comprising means for recalculating entropy indicators for the second collection of data more frequently than the recalculation of entropy indicators for the first collection of data.

33. The host of claim 17 , further comprising means for identifying a third collection of data to use the second amount of data from the third collection of data to calculate an initial entropy indicator for the whole third collection of data.

34. The DSD of claim 1 , wherein the controller is further configured to recalculate entropy indicators for the second collection of data more frequently than the recalculation of entropy indicators for the first collection of data.

35. The host of claim 17 , further comprising means for identifying the second collection based on at least one of a file type or object type, a name for the second collection of data, a size for the second collection of data, an owner for the second collection of data, a creation time for the second collection of data, and a last modification time for the second collection of data.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2018
From: LINNEN, DANIEL J.; GHAI, ASHISH; RAJAGIRI, AVINASH; PEESARI, SRIKAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045493/0463 →