|0.1.3||Jul 24, 2021|
|0.1.2||Jul 21, 2021|
|0.1.0||Jul 20, 2021|
#1533 in Math
31 downloads per month
Used in guff-sharefiles
Information Dispersal Algorithm in Rust
This crate name is a placeholder.
It will include functionality for doing IDA (Information Dispersal Algorithm) transforms on data.
A crate for working with Cauchy and Vandermonde matrices
A small collection of routines for creating matrices that can be used to implement erasure (error-correction) schemes or threshold schemes using Galois fields.
Note that this crate only provides data for insertion into a matrix. For the missing functionality, see:
- guff : basic operations over finite fields, including vector operations
- guff-matrix : full set of matrix types and operations
Using finite field matrix operations for threshold schemes
A "threshold scheme" is a mathematical method for securely splitting a secret into a number of "shares" such that:
if a set number (the "threshold") of shares are combined, the original secret can be recovered
if fewer shares than the threshold are combined, no information about the secret is revealed
This module focuses in particular on Michael O. Rabin's "Information Dispersal Algorithm" (IDA). In it, splitting a secret is achieved by:
creating a transform matrix that has the required threshold property
placing the secret into an input matrix, padding it if needed
calculating transform x input to get an output matrix
reading off each share as a row of the transform matrix and the corresponding row of the output matrix
To reconstruct the secret:
take the supplied transform matrix rows and put them into a square matrix
calculate the inverse of the matrix
form a new input matrix from the corresponding output data rows
calculate inverse x input
read the secret back from the output matrix
More details of the algorithm can be found later.