The dice-entropy-conduit package

[Tags:lgpl, library, test]

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.


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

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!


Dependencies base (==4.*), bytestring (>=0.9), conduit (>=1.1.7), entropy (>=0.3.2), transformers (>= [details]
License LGPL-2.1
Copyright Peter Robinson 2014
Author Peter Robinson <>
Category Cryptography, Data
Home page
Uploaded Tue Sep 9 15:51:05 UTC 2014 by PeterRobinson
Distributions NixOS:
Downloads 507 total (4 in the last 30 days)
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees