1. Fondo
Las computadoras no son capaces de generar números verdaderamente aleatorios, piensan de la forma en que les dices que piensen, no pueden generar números aleatorios por sí mismos. La generación de claves para un esquema de encriptación es simplemente una operación matemática. Necesita una entrada y da una salida.
PRNG(X) = Y
Mientras proporcione el mismo X
, siempre obtendrá el mismo Y
. Mantenga la ecuación en su mente.
2. Entropía
Por lo tanto, no podemos obtener Y
realmente aleatorio, pero podemos obtener la siguiente mejor opción; una menor posibilidad de reproducibilidad. Por lo tanto, cuanto menos probable sea que vuelva a aparecer el mismo X
, más "aleatorio" es Y
. Este proceso se llama aumentar la entropía.
3. TrueCrypt
La forma en que TrueCrypt aumenta la entropía es mediante la recopilación de información que probablemente no se volverá a repetir, como timestamps , < a href="https://en.wikipedia.org/wiki//dev/random"> /dev/random
en Linux / Mac OS X, CryptoAPI en Windows, estadísticas de red y mouse & teclado.
4. Movimiento del ratón
Finalmente, ¿qué tiene que ver todo lo anterior con el movimiento del mouse? Creo que ya lo has descubierto. Cuanto más mueva el mouse, más aumentará la entropía. Mover el mouse durante 1 segundo tendrá una cierta cantidad de entropía, y moverlo durante 10 segundos sin duda tendrá más entropía. ¿Pero cuánta entropía es prácticamente suficiente? Por suerte para nosotros, Thomas Pornin ha aplastado los números y resulta que 128 bits es suficiente.
Editar: Entonces, también según Thomas , 9 segundos son suficientes para generar 128 bits de entropía.