1. Background
Computers aren't able to generate truly random numbers, they think the way you tell them to think, they can't come up with random numbers on their own. Generating keys for an encryption scheme is simply a mathematical operation. It needs an input, and it gives an output.
PRNG(X) = Y
As long as you provide the same X
you'll always get the same Y
. Keep the equation in your mind.
2. Entropy
So we can't get truly random Y
, but we can get the next best thing; a lower chance of reproducibility. So, the less likely it is to come up with the same X
again, the more "random" Y
is. This process is called increasing the entropy.
3. TrueCrypt
The way TrueCrypt increases the entropy is by collecting information that are unlikely to be repeated again, such as timestamps, /dev/random
in Linux/Mac OS X, CryptoAPI in Windows, network statistics, and mouse & keyboard.
4. Mouse Movement
Finally, what does all of the above has to do with mouse movement? I think you've figured it out by now. The more you move the mouse the more you'll increase the entropy. Moving your mouse for 1 second will have a certain amount of entropy, and moving it for 10 seconds will certainly have more entropy. But how much entropy is practically sufficient? Luckily for us, Thomas Pornin has crunched the numbers and it turns out that 128 bit is enough.
Edit:So, also according to Thomas, 9 seconds are enough to generate 128bit of entropy.