Improvements to Shamir Secret Sharing to verify the integrity of shares issued by a central dealer.
Chelsea H. Komlo 63c2b071e8 add instructions for how to import and further detail on project | преди 5 години | |
---|---|---|
src | преди 5 години | |
.gitignore | преди 5 години | |
Cargo.toml | преди 5 години | |
LICENCE | преди 5 години | |
README.md | преди 5 години |
This implementation was part of the contribution for the following paper:
Bailey Kacsmar, Chelsea Komlo, Florian Kerschbaum, Ian Goldberg. "Mind the Gap: Ceremonies for Applied Secret Sharing." Proceedings on Privacy Enhancing Technologies. Vol. 2020, No. 2. 18 pages. April 2020.
This library presents a subset of the presented improvements to Shamir's threshold scheme presented in this paper. As such, this library provides the ability for participants to verify the integrity of shares received by a central dealer, and for participants to update shares in the future, providing protection against an adversary who can collect a threshold number of shares across update epochs, but not within a single epoch.
Note that this library does not provide support for serialization and
deserialization of shares in order to securely transmit and store shares after
they have been generated. Furthermore, the caller of generate_shares
will
need to account for securely deleting shares once they have been properly
transmitted to participants.
Furthermore, this library does not account for how participants should handle the case when a share or update is not valid.
To import this library into an existing Rust project, add the following to the dependencies in your project's Cargo.toml
vss = "0.1.0"
This project does not provide an FFI for integration into non-Rust projects.
Note that although the paper discusses additional improvements to Shamir's Threshold Scheme, we did not include all improvements in this library due the variance in implrementation requirements. For examle, when operating in Extended Mode, the integrity value can be distributed along with shares in order to allow for validating the secret document upon recovery. However, as platform and security requirements can change how documents are encrypted, we opted to not include improvements for the Extended mode of operation in this library; see the paper (Figure 5 specifically) for more details.