I have made a couple of updates to the L15 algorithm since it was imported
into the DragonFlyBSD tree as
the CSPRNG used for /dev/urandom (/sys/kern/kern_nrandom.c).
The first update (output indirection) is purely security related (and a
slight decrease in performance), so I
doubt you'd be interested in that.
However, the second update (which I implemented last night) increases
performance and also is a minor
security improvement. I would have thought this would be of interest to
DragonFly, especially considering
that the (random) system thread on DragonFly calls NANOUP_EVENT()
approximately once every second.
Both updates are available in source form (C++):
And the corresponding documentation (regarding both updates) is also
available from the above URL.
If you have an questions or don't understand what I'm talking about feel
free to contact me by E-mail.
Robin Carey BSc
- Description updated (diff)
- Status changed from New to Closed
- % Done changed from 0 to 100
Closing. Made modifications as requested and also adjusted /dev/urandom and the sysctl random to use IBAA (which is what /dev/random uses), so they all use IBAA now and nothing uses L15. These changes will make it into the 3.8.1 roll on Monday June 16th 2014.
In the near future we will run with two independent algorithms and xor their streams together. We are discussing this now. 3.8.1 will likely roll with just IBAA but if we get the second algorithm in place in the next few weeks we will MFC it to the release branch.