File: design.txt

package info (click to toggle)
entropybroker 2.9-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,600 kB
  • sloc: cpp: 14,386; sh: 934; makefile: 188; java: 148; perl: 12
file content (52 lines) | stat: -rw-r--r-- 1,580 bytes parent folder | download | duplicates (3)
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