[DragonFlyBSD - Bug #2601] IBAA and /dev/random

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Tue Dec 3 12:28:00 PST 2013


Issue #2601 has been updated by phma.


Why use IBAA instead of ISAAC?

----------------------------------------
Bug #2601: IBAA and /dev/random
http://bugs.dragonflybsd.org/issues/2601#change-11660

* Author: robin.carey1
* Status: New
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
Dear DragonFlyBSD bugs,

With regard to DragonFlyBSD IBAA & /dev/random implementation:

I noticed that Dragonfly bypasses IBAAs weak initial states (twice) by
"warming up" the CSPRNG in:

1) rand_initialize()

and

2) add_buffer_randomness()
I am referring to the Kernel file: /sys/kern/kern_nrandom.c

----------

I realized that this "probably/might" solve the problem (of IBAAs weak
initial states, which leak the internal state) - but in my opinion does not
100%/definitely solve that problem.

I would like to point out that there is, in my opinion, a guaranteed way to
solve the above problem - and, which also eliminates the above code
duplication (two instances), to one instance.

Also, in my opinion using the new method I am suggesting might also
improve the quality of randomness output, by "smoothing out" the
internal state, i.e. if there is a non-uniform or "jaggedy"
internal-state/memory.

--------------

The new method:

In the "read_random()" function:

Warm up the CSPRNG (IBAA) before producing any output. When I say
"warm up", I mean calling IBAA_Call() 10 times, e.g.:

/*
 * Warm up the generator to get rid of weak initial states.
 */
for (i = 0; i < 10; ++i)
        IBAA_Call();

--------------

If there are any questions, I am happy to discuss this by E-mail.

Thanks !



-- 
Sincerely,

Robin Carey BSc


-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



More information about the Bugs mailing list