secret-sharing: Information-theoretic secure secret sharing
Implementation of an (m,n)-threshold secret sharing scheme.
A given ByteString b (the secret) is split into n shares,
and any m shares are sufficient to reconstruct b.
The scheme preserves information-theoretic perfect secrecy in the sense that the knowledge of up
to m-1 shares does not reveal any information about the secret b.
Example in GHCi: Suppose that you want to split the string "my secret data" into n=5 shares such that at least m=3 shares are necessary to reconstruct the secret.
> :m + Data.ByteString.Lazy.Char8 Crypto.SecretSharing > let secret = pack "my secret message!" > shares <- encode 3 5 secret > mapM_ (Prelude.putStrLn . show) shares -- each share should be deposited at a different site. (1,"\134\168\154\SUBV\248\CAN:\250y<\GS\EOT*\t\222_\140") (2,"\225\206\241\136\SUBse\199r\169\162\131D4\179P\210x") (3,"~\238%\192\174\206\\\f\214\173\162\148\&3\139_\183\193\235") (4,"Z\b0\188\DC2\f\247\f,\136\&6S\209\&5\n\FS,\223") (5,"x\EM\CAN\DELI*<\193q7d\192!/\183v\DC3T") > let shares' = Prelude.drop 2 shares > decode shares' "my secret message!"
The mathematics behind the secret sharing scheme is described in: "How to share a secret." by Adi Shamir. In Communications of the ACM 22 (11): 612–613, 1979.
| Versions | 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3 |
|---|---|
| Dependencies | base (>=4.6 && <5), binary (>=0.5.1.1 && <0.10), bytestring (==0.10.*), dice-entropy-conduit (==1.0.*), finite-field (==0.8.*), polynomial (>=0.7.1 && <0.8), vector (>=0.10.11.0 && <0.13) [details] |
| License | LGPL-2.1-only |
| Copyright | Peter Robinson 2014 |
| Author | Peter Robinson <peter.robinson@monoid.at> |
| Maintainer | peter.robinson@monoid.at |
| Revised | Revision 1 made by HerbertValerioRiedel at Thu Mar 23 16:07:02 UTC 2017 |
| Category | Cryptography |
| Home page | http://monoid.at/code |
| Uploaded | by PeterRobinson at Sun Oct 5 17:23:42 UTC 2014 |
| Distributions | NixOS:1.0.0.3 |
| Downloads | 1543 total (43 in the last 30 days) |
| Rating | (no votes yet) [estimated by rule of succession] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] Hackage Matrix CI |
Downloads
- secret-sharing-1.0.0.3.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.