US10037440B1ActiveUtility
Generating a unique encryption key
Est. expiryJun 3, 2034(~7.9 yrs left)· nominal 20-yr term from priority
Inventors:John ColgroveMark L. McauliffeEthan MillerNaveen NeelakantamMarco SanvidoNeil A. VachharajaniTaher Vohra
H04L 9/065G06F 21/78H04L 9/0894H04L 9/0866G06F 21/6227
88
PatentIndex Score
4
Cited by
143
References
16
Claims
Abstract
Utilizing a non-repeating identifier to encrypt data, including: receiving a request to write data to a storage device; selecting a segment-offset pair where the data will be stored, where the selected segment-offset pair is unique to every other segment-offset pair utilized during the lifetime of the storage device; and encrypting the data in dependence upon an identifier of the segment-offset pair.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of utilizing a non-repeating identifier to encrypt data, the method comprising:
by a storage array controller:
receiving a request to write data to a storage device in a storage array;
selecting a segment-offset pair where the data will be stored, wherein the selected segment-offset pair is unique relative to every other segment-offset pair previously utilized by the storage device, wherein the selected segment-offset pair cannot be reutilized to service another request to write data to the storage device, and wherein multiple segment-offset pairs map to the same physical location within the storage device during the lifetime of the storage device;
utilizing the new segment identifier of the segment-offset pair to encrypt the data including utilizing an encryption key; and
writing the encrypted data to the storage device at the selected segment-offset pair.
2. The method of claim 1 wherein selecting the segment-offset pair where the data will be stored further comprises:
determining whether an active segment has enough free space to store the data;
responsive to determining that the active segment does have enough free space to store the data, storing the data in the active segment; and
responsive to determining that the active segment does not have enough free space to store the data:
creating a new segment; and
storing the data in the new segment.
3. The method of claim 2 wherein creating the new segment further comprises selecting a new segment identifier using a monotonically increasing number for the new segment identifier.
4. The method of claim 2 wherein creating the new segment further comprises selecting a new segment identifier using a Bloom filter to verify that the new segment identifier is unique relative to all other segment identifiers previously utilized by the storage device.
5. The method of claim 1 further comprising:
transmitting encrypted data to the storage device; and
storing the encrypted data in the storage device.
6. An apparatus for utilizing a non-repeating identifier to encrypt data, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
by a storage array controller:
receiving a request to write data to a storage device in a storage array;
selecting a segment-offset pair where the data will be stored, wherein the selected segment-offset pair is unique relative to every other segment-offset pair previously utilized by the storage device, wherein the selected segment-offset pair cannot be reutilized to service another request to write data to the storage device, and wherein multiple segment-offset pairs map to the same physical location within the storage device during the lifetime of the storage device;
utilizing the new segment identifier of the segment-offset pair to encrypt the data including utilizing an encryption key; and
writing the encrypted data to the storage device at the selected segment-offset pair.
7. The apparatus of claim 6 wherein selecting the segment-offset pair where the data will be stored further comprises:
determining whether an active segment has enough free space to store the data;
responsive to determining that the active segment does have enough free space to store the data, storing the data in the active segment; and
responsive to determining that the active segment does not have enough free space to store the data:
creating a new segment; and
storing the data in the new segment.
8. The apparatus of claim 7 wherein creating the new segment further comprises selecting a new segment identifier using a monotonically increasing number for the new segment identifier.
9. The apparatus of claim 7 wherein creating the new segment further comprises selecting a new segment identifier using a Bloom filter to verify that the new segment identifier is unique relative to all other segment identifiers previously utilized by the storage device.
10. The apparatus of claim 6 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
transmitting encrypted data to the storage device; and
storing the encrypted data in the storage device.
11. The apparatus of claim 6 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
transmitting unencrypted data to the storage device; and
storing encrypted data in the storage device.
12. A storage system for utilizing a non-repeating identifier to encrypt data, the storage system comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the storage system to carry out the steps of:
by a storage array controller:
receiving a request to write data to a storage device in a storage array;
selecting a segment-offset pair where the data will be stored, wherein the selected segment-offset pair is unique relative to every other segment-offset pair previously utilized by the storage device, wherein the selected segment-offset pair cannot be reutilized to service another request to write data to the storage device, and wherein multiple segment-offset pairs map to the same physical location within the storage device during the lifetime of the storage device;
utilizing the new segment identifier of the segment-offset pair to encrypt the data including utilizing an encryption key; and
writing the encrypted data to the storage device at the selected segment-offset pair.
13. The storage system of claim 12 wherein selecting the segment-offset pair where the data will be stored further comprises:
determining whether an active segment has enough free space to store the data;
responsive to determining that the active segment does have enough free space to store the data, storing the data in the active segment; and
responsive to determining that the active segment does not have enough free space to store the data:
creating a new segment; and
storing the data in the new segment.
14. The storage system of claim 13 wherein creating the new segment further comprises selecting a new segment identifier using a monotonically increasing number for the new segment identifier.
15. The storage system of claim 13 wherein creating the new segment further comprises selecting a new segment identifier using a Bloom filter to verify that the new segment identifier is unique relative to all other segment identifiers previously utilized by the storage device.
16. The storage system of claim 12 further comprising computer program instructions that, when executed, cause the storage system to carry out the steps of:
transmitting encrypted data to the storage device; and
storing the encrypted data in the storage device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.