-
Notifications
You must be signed in to change notification settings - Fork 10
/
design.txt
52 lines (42 loc) · 1.54 KB
/
design.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
How it really works at the lowest level
=======================================
the broker
**********
Adding data:
- the amount of information is calculated
- then the data is stirred into the pool
this is accomplished by encrypting the pool with e.g. AES
or 3DES or whatever the user selected
the key used, is the entropy data to add
Retrieving data:
- the pool is hashed
- then the pool is 'unstirred' by decrypting it with the hash
as a key
- the hash is fold in half and then returned to the user
In both cases:
- the initial vector (as used by the stirrer) is initialized
to a random value. this random value is obtained from the
crypto++ prng
References:
- entropy estimation: http://en.wikipedia.org/wiki/Entropy_estimation
- stirring: RFC 4086 (June 2005) chapter 6.2.1, second paragraph
servers (daemons producing entropy)
***********************************
server_timers:
- measures the jitter of two timer-frequencies
server_audio:
- measures the noise in an audio-stream. preferably of a low-volume
stream so that the noise in the electronics is measured (a song
or someone talking might not be that random)
server_video:
- see server_audio but this one measures the noise in a video
signal. if you have a tv-card, tune it to a frequency where it
only receives noise
server_usb:
- like server_timers only here the difference of the local system
clock and the clock in an USB device is measured
In all cases:
- where applicable, von Neumann whitening is applied
Contact info
------------
mail@vanheusden.com