From: unruh on
On 2010-01-21, jmorton123 <jmorton123(a)rock.com> wrote:
> The clock time used is 1000 ticks per second. If there is a bias it
> must be incrediblly small because a computer cannont fuction with any
> significant clock bias nor can an operating system. Furthermore, any

But that is not relevant. The computer for example could visit the mouse
only once every 1/10 second, and then the quantization would be 1/10
sec. And people's habits are predictable-- they press the button
regularly ot randomly, and move the mouse with a set velocity. All those
introduce huge biases into the "random numbers"

> insignifiant bias which you indicate that may be present is completely
> washed out by the randomness of the click moments entered by the

They are NOT random.

> user. Lastly, you need to ask youself: can these random numbers be
> reproduced? I think not. Thank you.

Much of the statistics can be reproduced, yes. People are in fact very
predictable.
It is precisely such naive statements ( my mouse clicks seem
unpredictable to me, so they must be) that indicates that noone should
trust anything you do in the field.
>
From: unruh on
On 2010-01-21, Noob <root(a)127.0.0.1> wrote:
> Tom St Denis wrote:
>
>> You do realize the most modern OSes trap interrupts and events to
>> harvest entropy from right? Even Windows has a CSP function
>> CryptGenRandom() [or something like that] for reading RNG output. In
>> most *NIX OSes you'd use /dev/urandom.
>
> Or /dev/random depending on the situation.

I would say, never use /dev/random. There are virtually no situations
where it buys you anything, and lots where it can totally screw you.

>
> http://en.wikipedia.org/wiki//dev/random
From: rossum on
On Wed, 20 Jan 2010 08:50:30 -0800 (PST), jmorton123
<jmorton123(a)rock.com> wrote:

>When you start the program it saves the system time. Each time you
>click the mouse or press the enter key, the time is once again
>stored. Then the start time is subtracted from the mouse click time.
>Then this difference is used to access an array that contains the
>binary numbers from 0 - 255.
And if the attacker has a hidden microphone in your office or is
bouncing a laser off the office windows they will be able to hear, and
time, mouse clicks and key strokes.

You need a source of randomness that can more easily be protected from
an attacker.

Your idea may possibly be of use in a Fortuna-style RNG as one among
many entropy sources. Fortuna is designed to be usable with
low-quality entropy sources.

rossum

From: Gordon Burditt on
>The clock time used is 1000 ticks per second. If there is a bias it
>must be incrediblly small because a computer cannont fuction with any
>significant clock bias nor can an operating system.

I don't agree. I've seen a computer with time-of-day clocks off
by a rather large factor, so it lost about 58 minutes an hour
(although this wasn't the CPU clock, so it didn't run 30 times too
slow). The user of this computer hadn't noticed. I only noticed
because the time stamp on a diagnostic report for an unrelated
problem (dirty floppy drive heads) had the wrong year. Some users
didn't even bother to set the clock in the first place.

Example: Suppose you start timing the mouse click by using a finer-
resolution clock, such as the Pentium Time Stamp Counter. This
clock increments at a much faster speed, say, 1GHz. Or perhaps you
go the expensive route using an atomic clock calibrated to national
standards. (No, I don't mean you sync to an atomic clock once a
day, I mean you *buy* one and use it, in addition to careful
sync'ing.)

Mouse clicks and keystrokes on some computers are transmitted through
an 8052 (or similar) keyboard coprocessor, and the event travels
on a serial line clocked at about 30kHz to 50kHz (and it takes about
10 bit times or so to transmit an event). The arrival times of
mouse clicks are now limited to about 3 - 5 kHz, and you lost most
of the finer-resolution randomness.

It gets worse if the clock you're using and the keyboard serial
clock are divided down from the same master clock.

There are hardware components and timing in the mouse driver that
limit how close mouse clicks can be to each other (two clicks
a microsecond apart are switch bounce), and how far apart they
can be from each other (what's the difference between two clicks
and one double click?)

Browsers may be awoken from waiting for input based on a task
scheduler, which may be using scheduling time quanta that are
much larger than 1 millisecond. Even Windows does task scheduling.

This information is being sent over a network. There are possibilities
here for bias to be introduced that's different for each user of
the web site generating the numbers, coming from the sender's ISP,
the web site's ISP, and every router in between. Suppose every
packet was held up by an ISP doing bandwidth throttling (which you
may not even know about!) to collect a bunch of packets from you
and release them all at once on a multiple of one second. You'd
lose a lot of randomness, but probably not enough throughput to
notice, and this might be happening to only *SOME* users of the web
site, so the fact that someone else did a complex certification of
the random numbers generated by the site doesn't mean that's what
YOU get.

It's possible that network traffic variability can under some
circumstances introduce *more* randomness, but it's not something
the user or site owner can control or predict.

It's also possible that the people at No Such Agency (or perhaps a
botnet operator) could have your connection to this web site run
through their router just to spoil the randomness you get from the
site, and you'd never know about it.


>Furthermore, any
>insignifiant bias which you indicate that may be present is completely
>washed out by the randomness of the click moments entered by the
>user.

Have you ever watched a TV show called "The Amazing Race"? Teams
of people race around the world. It seems that whenever they have
to get on an airplane, teams that were "close together" (due to
small differences related to their skill in navigating or completing
odd tasks that are part of the race) are now "exactly together" or
several hours apart depending on the airline schedule. There are
a lot of things that tend to sync up signals in computers.

It tends to work the other way: things that sync up signals wash
out much if not all of the randomness entered by the user, in much
the same way that a big (automobile) traffic jam syncs the commuters.


>Lastly, you need to ask youself: can these random numbers be
>reproduced? I think not. Thank you.

Probably not exactly. But it might be a lot easier than it seems.
If you want proof, use the random numbers generated by such a site
to gamble with real money at high stakes, announce how you do it,
and someone will figure out how to break it well enough to win
a lot of money.

From: amzoti on
On Jan 20, 10:50 am, "Dave -Turner" <ad...(a)127.0.0.1> wrote:
> i take it you haven't actually tested it against Diehard (etc) :)

Try: http://www.iro.umontreal.ca/~simardr/testu01/tu01.html