The dice-entropy-conduit package

[ Tags: cryptography, data, lgpl, library ] [ Propose Tags ]

This library uses rejection sampling to provide cryptographically secure n-sided dice rolls and random sampling (within a given range). The number of used random bits is close to the information-theoretic optimal bound.

Usage:

If we wanted to use the system-specific entropy source (systemEntropy) to produce 10 dice rolls of a 6-sided dice (i.e. range [0,5]), we could write:

> systemEntropy $$ diceRolls 6 =$= CL.take 10
[5,1,3,3,0,5,3,2,2,1]

The function testPerformance yields the actual number of consumed random bits:

> testPerformance 12 10000
Generated 10000 random samples in range [0,11]
Average number of bits used: 3.5904
Entropy lower bound on the number of required bits: 3.5849625007211565
Performance ratio: 1.0015167520658164

Feedback is welcome!

Properties

Versions 1.0.0.0, 1.0.0.1
Dependencies base (==4.*), bytestring (>=0.9), conduit (>=1.1.7), entropy (>=0.3.2), transformers (>=0.4.0.0) [details]
License LGPL-2.1
Copyright Peter Robinson 2014
Author Peter Robinson <peter.robinson@monoid.at>
Maintainer peter.robinson@monoid.at
Category Cryptography, Data
Home page http://monoid.at/code
Uploaded Tue Sep 9 15:51:05 UTC 2014 by PeterRobinson
Distributions NixOS:1.0.0.1
Downloads 568 total (9 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees