# secret-sharing: Information-theoretic secure secret sharing

Versions | 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3 |
---|---|

Dependencies | base (==4.6.*), binary (>=0.5.1.1), bytestring (==0.10.*), dice‑entropy‑conduit (>=1.0.0.0), finite‑field (>=0.8.0), polynomial (>=0.7.1), vector (>=0.10.11.0) [details] |

License | LGPL-2.1-only |

Copyright | Peter Robinson 2014 |

Author | Peter Robinson <peter.robinson@monoid.at> |

Maintainer | peter.robinson@monoid.at |

Category | Cryptography |

Home page | http://monoid.at/code |

Uploaded | by PeterRobinson at Wed Sep 10 03:42:36 UTC 2014 |

Distributions | NixOS:1.0.0.3 |

Downloads | 1463 total (12 in the last 30 days) |

Rating | (no votes yet) [estimated by rule of succession] |

Your Rating | |

Status | Docs not available [build log] All reported builds failed as of 2016-12-13 [all 6 reports] Hackage Matrix CI |

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.

## Modules

*Crypto*- Crypto.SecretSharing
- Crypto.SecretSharing.Internal

- Crypto.SecretSharing

## Downloads

- secret-sharing-1.0.0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)