This short note revisits the problem of designing secure minimum storage regenerating (MSR) codes for distributed storage systems. A secure MSR code ensures that a distributed storage system does not reveal the stored information to a passive eavesdropper. The eavesdropper is assumed to have access to the content stored on @math number of storage nodes in the system and the data downloaded during the bandwidth efficient repair of an additional @math number of storage nodes. This note combines the Gabidulin codes based precoding [18] and a new construction of MSR codes (without security requirements) by Ye and Barg [27] in order to obtain secure MSR codes. Such optimal secure MSR codes were previously known in the setting where the eavesdropper was only allowed to observe the repair of @math nodes among a specific subset of @math nodes [7, 18]. The secure coding scheme presented in this note allows the eavesdropper to observe repair of any @math ouf of @math nodes in the system and characterizes the secrecy capacity of linear repairable MSR codes.
@cite_5: Distributed storage systems provide reliable access to data through redundancy spread over individually unreliable nodes. Application scenarios include data centers, peer-to-peer storage systems, and storage in wireless networks. Storing data using an erasure code, in fragments spread across nodes, requires less redundancy than simple replication for the same level of reliability. However, since fragments must be periodically replaced as nodes fail, a key question is how to generate encoded fragments in a distributed way while transferring as little data as possible across the network. For an erasure coded system, a common practice to repair from a single node failure is for a new node to reconstruct the whole encoded data object to generate just one encoded block. We show that this procedure is sub-optimal. We introduce the notion of regenerating codes, which allow a new node to communicate functions of the stored data from the surviving nodes. We show that regenerating codes can significantly reduce the repair bandwidth. Further, we show that there is a fundamental tradeoff between storage and repair bandwidth which we theoretically characterize using flow arguments on an appropriately constructed graph. By invoking constructive results in network coding, we introduce regenerating codes that can achieve any point in this optimal tradeoff.
We consider a DSS with @math storage nodes where each node stores @math symbols over a finite field @math . We assume that the DSS employs a coding scheme such that content of any @math out of @math nodes in the system is sufficient to construct the content stored in the remaining @math nodes. Furthermore, we assume that the content of every node in the system can be exactly reconstructed by contacting any @math out of @math remaining nodes and downloading @math symbols (over @math ) from each of the contacted nodes. It follows from the Singleton bound that such a system can store a file with at most @math (independent) symbols (over @math ). In fact, an MDS coding scheme does store a file @math of size @math symbols (over @math ). For such coding schemes, it follows from the work of @cite_5 that Here, we focus on the DSS employing those exact-repairable coding schemes that are both storage and repair-bandwidth efficient, i.e., we have that