Entropy fix after better statistical analysis

[originally from svn r723]
This commit is contained in:
Simon Tatham 2000-10-20 10:42:31 +00:00
Родитель 92deca11dd
Коммит 58cdc03c68
1 изменённых файлов: 12 добавлений и 10 удалений

Просмотреть файл

@ -322,7 +322,7 @@ static int CALLBACK MainDlgProc (HWND hwnd, UINT msg,
static const char generating_msg[] = static const char generating_msg[] =
"Please wait while a key is generated..."; "Please wait while a key is generated...";
static const char entropy_msg[] = static const char entropy_msg[] =
"Please move the mouse in this window to generate randomness"; "Please generate some randomness by moving the mouse over the blank area.";
struct MainDlgState *state; struct MainDlgState *state;
switch (msg) { switch (msg) {
@ -372,7 +372,7 @@ static int CALLBACK MainDlgProc (HWND hwnd, UINT msg,
endbox(&cp); endbox(&cp);
beginbox(&cp, "Actions", beginbox(&cp, "Actions",
IDC_BOX_ACTIONS, IDC_BOXT_ACTIONS); IDC_BOX_ACTIONS, IDC_BOXT_ACTIONS);
staticedit(&cp, "Length of generated keys in &bits:", staticedit(&cp, "Number of &bits in a generated key:",
IDC_BITSSTATIC, IDC_BITS, 20); IDC_BITSSTATIC, IDC_BITS, 20);
endbox(&cp); endbox(&cp);
} }
@ -476,16 +476,18 @@ static int CALLBACK MainDlgProc (HWND hwnd, UINT msg,
/* /*
* My brief statistical tests on mouse movements * My brief statistical tests on mouse movements
* suggest that there are about 5 bits of * suggest that there are about 2.5 bits of
* randomness in the x position, 5 in the y * randomness in the x position, 2.5 in the y
* position, and 1.7 in the message time, making * position, and 1.7 in the message time, making
* 11.7 bits of unpredictability per mouse * 5.7 bits of unpredictability per mouse movement.
* movement. However, other people have told me * However, other people have told me it's far less
* it's far less than that, so I'm going to be * than that, so I'm going to be stupidly cautious
* stupidly cautious and knock that down to a nice * and knock that down to a nice round 2. With this
* round 4. * method, we require two words per mouse movement,
* so with 2 bits per mouse movement we expect 2
* bits every 2 words.
*/ */
state->entropy_required = (state->keysize / 4) * 2; state->entropy_required = (state->keysize/2) * 2;
state->entropy_got = 0; state->entropy_got = 0;
state->entropy_size = (state->entropy_required * state->entropy_size = (state->entropy_required *
sizeof(*state->entropy)); sizeof(*state->entropy));