Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rutgers!sri-unix!hplabs!hpcea!hpda!hppcgo!hpsal2!hpisof0!campbelr
From: campbelr@hpisof0.HP (Bob Campbell)
Newsgroups: comp.arch
Subject: Re: random number generator in hardware (XOR scheme)
Message-ID: <3830001@hpisof0.HP>
Date: Thu, 18-Dec-86 20:19:59 EST
Article-I.D.: hpisof0.3830001
Posted: Thu Dec 18 20:19:59 1986
Date-Received: Sat, 20-Dec-86 21:44:09 EST
References: <7160@boring.mcvax.UUCP>
Lines: 50

/ hpisof0:comp.arch / dupuy@amsterdam.columbia.edu (Alexander Dupuy) / 10:33 am  Nov 24, 1986 /
henry@utzoo.UUCP (Henry Spencer) replies to an earlier post:
>
> > How about taking the exclusive-or of several such random bit generators?
> > This converges exponentially toward probability 1/2 as the number of
> > bits xor'ed increases.
>
>Only if the generators drift independently, which in general they won't:
>things like temperature and aging effects will be similar for all.

Actually, the xor scheme works best if the generators all drift in the same
direction.  Taking four generators which have drifted to 75% ones and 25%
zeros, and hooking them up in a two-level xor tree gives you the following
probability table:

f(a,b,c,d) = (a^b)^(c^d)

a  b  c  d	(a^b)^(c^d)	Prob (256ths)
----------	-----------	-------------
1  1  1  1	0		81
1  1  1  0	1			27
1  1  0  1	1			27
1  1  0  0	0		9
1  0  1  1	1			27
1  0  1  0	0		9
1  0  0  1	0		9
1  0  0  0	1			3
0  1  1  1	1			27
0  1  1  0	0		9
0  1  0  1	0		9
0  1  0  0	1			3
0  0  1  1	0		9
0  0  1  0	1			3
0  0  0  1	1			3
0  0  0  0	0		1
				-----------
				136	120
				53%	47%

    3% drift is not bad considering the generators are each 25% off.
This works well for odd as well as even numbers of generators.  This
setup is vulnerable to drift if generator pairs drift in _opposite_
directions, but with careful design, the factors you mention will tend
to prevent this.

@alex
----
arpa: dupuy@columbia.edu
uucp: ...!seismo!columbia!dupuy
----------