[DragonFlyBSD - Bug #1358] Random number generator

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Thu Jan 15 08:42:00 PST 2015


Issue #1358 has been updated by robin.carey1.


Dear Alex & Antonio,

I should qualify that last response by clarifying; without having to save
data to an "entropy file" on shutdown (or any other non-optimal solution).

I did exactly that, on FreeBSD, a long time ago. That code was the basis
for the CRNG that I submitted to Matthew Dillon, which he then ported to
DragonFlyBSD. Matthew did not like the method I was using, and so did not
use it. However, the rest of the code I submitted was used.

I think that was about 2006.

Since then I've considered my solution and refined it (on paper).

After all, the threshold for achieving unpredictable random operation
(CRNG) is only 128-bits (the size of data which makes a brute-force attack
untenable). Not a lot really.






On 15 January 2015 at 15:37, <bugtracker-admin at leaf.dragonflybsd.org> wrote:

> Issue #1358 has been updated by alexh.
>
>
> This has never been relevant. The only way to ensure the system starts up
> with (enough) entropy is to save some on shutdown. See
> ceccfc6bc7912b64fce4d4cd929eaf9346d00d53 for more details.
>
>
> ----------------------------------------
> Bug #1358: Random number generator
> http://bugs.dragonflybsd.org/issues/1358#change-12460
>
> * Author: robin.carey1
> * Status: Feedback
> * Priority: Low
> * Assignee:
> * Category: Crypto
> * Target version: 4.2.x
> ----------------------------------------
> ---------- Forwarded message ----------
> From: Robin Carey <robin.carey1 at googlemail.com>
> Date: 2009/5/8
> Subject: Random number generator
> To: submit-request at lists.dragonflybsd.org
>
> I had an idea about how to improve the random number generator in
> DragonFlyBSD which I would like to share.
>
> There is a bootstrapping problem where it is difficult to get enough
> "entropy" at boot to ensure the random number generator is fully seeded and
> completely unpredictable immediately after the system has booted.
>
> Currently the random number generator seeds itself from nanotime() and
> nanouptime() which introduces a small degree of entropy, but probably not
> enough to ensure the above requirement is met.
>
> So a possible improvement could be made by introducing more "entropy" at
> initialisation from a high resolution timer like the TSC - rdtsc() (which
> is
> also used in the random number generator - NANOUP_EVENT() - courtesy of
> Matthew Dillon). That is my suggestion: Use rdtsc() aswell as nanotime()
> and
> nanouptime() to ensure the random number generator has enough "entropy" at
> boot to ensure it is fully seeded and completely unpredictable. If this
> were
> done (and true) then you would not need the current ability of the random
> number generator being able to be seeded from a file - an ability which
> Matthew Dillon implemented to solve the boot-seeding problem.
>
> I am wondering if there are any other high resolution timers available
> .....
>
> ---Files--------------------------------
> unnamed (1.92 KB)
>
>
> --
> 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
>



-- 
Sincerely,

Robin Carey BSc

----------------------------------------
Bug #1358: Random number generator
http://bugs.dragonflybsd.org/issues/1358#change-12472

* Author: robin.carey1
* Status: Feedback
* Priority: Low
* Assignee: 
* Category: Crypto
* Target version: 4.2.x
----------------------------------------
---------- Forwarded message ----------
From: Robin Carey <robin.carey1 at googlemail.com>
Date: 2009/5/8
Subject: Random number generator
To: submit-request at lists.dragonflybsd.org

I had an idea about how to improve the random number generator in
DragonFlyBSD which I would like to share.

There is a bootstrapping problem where it is difficult to get enough
"entropy" at boot to ensure the random number generator is fully seeded and
completely unpredictable immediately after the system has booted.

Currently the random number generator seeds itself from nanotime() and
nanouptime() which introduces a small degree of entropy, but probably not
enough to ensure the above requirement is met.

So a possible improvement could be made by introducing more "entropy" at
initialisation from a high resolution timer like the TSC - rdtsc() (which is
also used in the random number generator - NANOUP_EVENT() - courtesy of
Matthew Dillon). That is my suggestion: Use rdtsc() aswell as nanotime() and
nanouptime() to ensure the random number generator has enough "entropy" at
boot to ensure it is fully seeded and completely unpredictable. If this were
done (and true) then you would not need the current ability of the random
number generator being able to be seeded from a file - an ability which
Matthew Dillon implemented to solve the boot-seeding problem.

I am wondering if there are any other high resolution timers available .....

---Files--------------------------------
unnamed (1.92 KB)


-- 
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