US 12,135,814 B2
Storage network with key sharing
Jason K. Resch, Warwick, RI (US)
Assigned to Pure Storage, Inc., Santa Clara, CA (US)
Filed by Pure Storage, Inc., Santa Clara, CA (US)
Filed on Jun. 14, 2023, as Appl. No. 18/334,559.
Application 18/334,559 is a continuation of application No. 16/782,374, filed on Feb. 5, 2020, granted, now 11,868,498.
Application 16/782,374 is a continuation in part of application No. 16/574,793, filed on Sep. 18, 2019, granted, now 11,233,643, issued on Jan. 25, 2022.
Application 16/782,374 is a continuation in part of application No. 16/410,419, filed on May 13, 2019, granted, now 10,558,819, issued on Feb. 11, 2020.
Application 16/574,793 is a continuation of application No. 13/464,015, filed on May 4, 2012, granted, now 10,395,054, issued on Aug. 27, 2019.
Application 16/574,793 is a continuation of application No. 12/551,145, filed on Aug. 31, 2009, granted, now 10,447,474, issued on Oct. 15, 2019.
Application 12/551,145 is a continuation in part of application No. 12/426,727, filed on Apr. 20, 2009, granted, now 9,483,656, issued on Nov. 1, 2016.
Claims priority of provisional application 61/493,820, filed on Jun. 6, 2011.
Prior Publication US 2023/0325526 A1, Oct. 12, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 11/10 (2006.01); G06F 3/06 (2006.01); G06F 8/65 (2018.01); G06F 11/20 (2006.01); G06F 12/14 (2006.01); G06F 15/173 (2006.01); G06F 21/60 (2013.01); G06F 21/62 (2013.01); G06F 21/64 (2013.01); H04L 9/08 (2006.01); G06F 16/27 (2019.01)
CPC G06F 21/6227 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0644 (2013.01); G06F 3/067 (2013.01); G06F 8/65 (2013.01); G06F 11/10 (2013.01); G06F 11/1076 (2013.01); G06F 11/2089 (2013.01); G06F 12/1408 (2013.01); G06F 21/602 (2013.01); G06F 21/6218 (2013.01); G06F 21/64 (2013.01); H04L 9/085 (2013.01); H04L 9/0861 (2013.01); G06F 15/17331 (2013.01); G06F 16/27 (2019.01); G06F 2212/263 (2013.01); G06F 2221/2107 (2013.01); H04L 2209/24 (2013.01); H04L 2209/34 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprises:
receiving a data segment;
encoding the data segment into a set of encoded data slices using dispersed error encoding, wherein the data segment is reconstructable from a decode threshold number of encoded data slices of the set of encoded data slices;
storing, in storage units of a storage network, the set of encoded data slices, in accordance with a shared key-based encryption system of the storage units having keys shared with the storage units, wherein sharing the keys with the storage units via the shared key-based encryption system includes sharing a first key between a first subset of the storage units and sharing a second key, that differs from the first key, between a second subset of the storage units that differs from the first subset of the storage units;
retrieving, in accordance with the shared key-based encryption system, the set of encoded data slices from the storage units of the storage unit to verify whether individual slices of the set of encoded data slices have been corrupted; and
when one of the set of encoded data slices stored in one of the storage units has been corrupted, rebuilding the one of the set of encoded data slices by:
retrieving the decode threshold number of other slices of the set of encoded data slices, in accordance with the shared key-based encryption system;
reconstructing the one of the set of encoded data slices based on the dispersed error encoding, to generate a reconstructed data slice; and
storing, in accordance with the shared key-based encryption system, the reconstructed data slice.