IBAA recommendation

Robin Carey robin.carey1 at googlemail.com
Sun Mar 7 10:36:06 PST 2010

Dear DragonFlyBSD bugs.
DragonFly uses Bob Jenkins' IBAA CSPRNG for /dev/random.
I have been doing some work on this CSPRNG, which is available from:
I have two recommendations to make with regard to the IBAA CSPRNG which is used in DragonFly:
(1) Use my rounded up BETA=32/SHIFT=20 values as opposed to the original SHIFT=19 value in the
original IBAA CSPRNG/algorithm (details available from above URL)
(2) Use a 32-bit counter. This is a minor modification, which gurantees no bad states (an initial state of all zeroes
     maps back to an internal state of all zeroes after 256 iterations), and also guarantees a cycle length of at least
     2^32. Details on how to implement the counter are available from the above URL. It's a minor modification which
     has minimal performance impact.
Also, a 64-bit version of IBAA is available from the above URL. Matthew Dillon seemed to be interested in that, with
regard to the 64-bit x86-64 port of DragonFly (but I haven't heard back from him about that).
-- Sincerely,Robin Carey

More information about the Bugs mailing list