Analog generador de caracteres aleatoria

He estado regalando pequeños mazos de cartas con el siguiente reportaje desde 2007. Pensé que era hora de hacer públicamente y libremente disponibles para su uso no comercial. Esta presentación, así como un documento de Microsoft Word que se imprimirá en Avery 5877 tarjeta de presentación stock son revisados ​​en mi proyecto en GitHub

Cualquiera que considere métodos aritméticos para producir números aleatorios es, por supuesto, en un estado de pecado
-. John von Neumann 1951

Las tarjetas son mucho más lentos que PRNGs, sino una la cubierta se puede arrastrando los pies de una manera tal que nadie puede predecir el orden. Este mazo contiene 52 cartas (26 en mayúscula y 26 inferiores), 10 números (0-9), y otros 33 símbolos para un total de 95 cartas. Fue diseñado para crear contraseñas realmente aleatorios, claves y otros tokens de seguridad para su uso con ordenadores.

Instrucciones

Recuerde que debe mantener sus claves electrónicamente cifrado y / o físicamente seguro. Recuerde que los 32 símbolos de esta cubierta pueden causar problemas en ciertos contextos (el * en el símbolo del sistema, por ejemplo), así que asegúrese de codificar o descartar los caracteres que podrían ser un problema para su aplicación.

Bits de la Entropía

Uso de los caracteres ASCII estándar 95 impreso en estas tarjetas, hay 10.148 posibles ordenaciones de cubierta (que es 492 bits de precisión). Por revolver cada pocos caracteres, cualquier nivel deseado de la entropía se puede lograr. Hay 79 bits de entropía en una clave de 12 caracteres (que es 5,40 × 1023 claves posibles) que es cerca de 33.000 veces la precisión del valor de 64 bits más teóricamente al azar una computadora, posiblemente, podría generar. Incluso una clave de 5 caracteres tiene 7,73 × 109 valores posibles, que es casi el doble de la precisión de un número de 32 bits.

secretos sucios de PRNGs

«Garantizamos que cada número es al azar individualmente, pero no podemos garantizar que más de uno de ellos es al azar. » Darse cuenta de eso
-. Press, William H., et al. 1992 refiriéndose a RANDU

Hay sólo 8,64 × 107 milisegundos en un día. Eso es alrededor de 26 bits de entropía. Sin barajar, puede tratar usted mismo una llave más fuerte en tan sólo 5 cartas! Así que ¿por qué no utilizar un marco de tiempo más largo? Hay 3,1 × 1011 milisegundos en 10 años, que es sólo 38 bits de entropía – y que tiene una contraseña de más de 10 años? La mayoría de las personas generan sus claves en el trabajo, en el horario de 9-5 MF, que es sólo una cuarta parte de las horas en la semana, por lo que podrían estar perdiendo cerca de 2 bits de entropía allí.

Así que incluso si usted tener un generador de números aleatorios de 64 bits, a menos que usted puede obtener una semilla con más de 36 bits de entropía, que sólo recibe 36 bits de entropía en su clave. Ese es el mismo número de dígitos significativos en una clave de 6 caracteres verdaderamente aleatoria (956). ¿Cuántos dígitos significativos de la aleatoriedad no genera ningún equipo clave de cifrado contiene? No más de los dígitos significativos de entropía utilizados para crearlo veces el número de algoritmos PRNG que podría haber sido utilizado. En el año 2008, que a menudo significa que el tiempo y el ID del proceso (un número por lo general entre 1 y 32767) combinado que produce 9.9 × 1.015 posibles combinaciones o 54 bits de entropía. Si los identificadores de proceso fueron verdaderamente aleatorios (no lo son), se puede tratar a ti mismo más entropía en 9 tarjetas de estado de los arte generadores automáticos de contraseña en los sistemas operativos de consumo puede generar.

PRNGs que aceptan ratón o entrada de teclado, PRNGs de hardware, y los demonios de entropía de recolección son mejoras significativas, pero sin un análisis exhaustivo, es difícil juzgar su efectividad real. Jugando a las cartas han estado generando entropía fiable desde que se inventaron en China del siglo 12

Análisis:.. Barajar Cada tarjeta

Los números aleatorios no se deben generar con un método elegido al azar
– Donald E. Knuth

  • n : la longitud de la clave
  • 95 n : El número de posibles llaves de la longitud dada ( n ). Se permiten caracteres repetidos
  • log2 (95 n ):. Se trata de un valor aproximado correspondiente al número más cercano de bits de entropía
  • abertura: El el tiempo que un procesador de 3GHz tomaría fuerza bruta genera la mitad de las llaves de esta longitud. La mayoría de los algoritmos de cifrado se desacelerará este reducido significativamente, pero las galletas graves utilizarían mucho más caballos de fuerza. . YMMV
  • Números importantes:. ejemplos del mundo real con la misma magnitud que el número de claves posibles
n 95n log2(95n) Crack Relevant números
1 95 7 0
2 9025 13 5 ms.
3 857375 20 ½ seg.
4 81450625 26 15 seg. Número de milisegundos en un día.
5 7,73 × 109 33 30 min Número de milisegundos en 4 meses.
6 7,35 × 1011 39 2 días Billones (125 Gigabytes). Número de milisegundos en 20 años.
7 6,98 × 1013 46 1 año
8 6,63 × 1015 53 70 años 256 La longitud de clave original para el cifrado DES.
9 6,30 × 1017 59 7000 años quintillones. La edad del universo en cuestión de segundos.
10 5,98 × 1019 66 600.000 años
11 5,68 × 1021 72 Número de estrellas en el universo
12 5,40 × 1023 79 septillones. Número de Avogadro – el número de átomos en 12 gramos de carbono-12
13 5,13 × 1025 85
14 4,87 × 1027 92
15 4,63 × 1029 99
16 4,40 × 1031 105
17 4,18 × 1033 112
18 3,97 × 1035 118
19 3,77 × 1037 125
20 3,58 × 1039 131

Análisis: Sin Arrastrar los pies

O, ​​usando la notación permutación:

n # combinations log2(95n) Formula
1 95 7 95
2 8,930 13 95×94
3 830,490 20 95×94×93
4 76,405,080 26 95×94×93×92
5 6.95×109 33 95×94×93×92×91
6 6.26×1011 39 95×94×93×92×91×90
7 5.57×1013 46 95×94×93×92×91×90×89
8 4.90×1015 52 95×94×93×92×91×90×89×88
9 4.26×1017 59 95×94×93×92×91×90×89×88×87
10 3.67×1019 65 95×94×93×92×91×90×89×88×87×86
11 3.12×1021 71 95×94×93×92×91×90×89×88×87×86×85
12 2.62×1023 78 95×94×93×92×91×90×89×88×87×86×85×84
13 2.17×1025 84 95×94×93×92×91×90×89×88×87×86×85×84×83
14 1.78×1027 91 95×94×93×92×91×90×89×88×87×86×85×84×83×82
15 1.44×1029 97 95×94×93×92×91×90×89×88×87×86×85×84×83×82×81
16 1.15×1031 103 95×94×93×92×91×90×89×88×87×86×85×84×83×82…×80
17 9.12×1032 109 95×94×93×92×91×90×89×88×87×86×85×84×83×82…×79
18 7.12×1034 116 95×94×93×92×91×90×89×88×87×86×85×84×83×82…×78
19 5.48×1036 122 95×94×93×92×91×90×89×88×87×86×85×84×83×82…×77
20 4.16×1038 128 95×94×93×92×91×90×89×88×87×86×85×84×83×82…×76

El beneficio de la adición de caracteres sin barajar cae drásticamente como el número de caracteres se acerca a 94. Por ejemplo:

  • Por el carácter noveno, pierdes un poco de precisión (media tantas combinaciones sin arrastrar los pies como lo haría con el barajado). Esto no debe hacer una diferencia para la mayoría de aplicaciones.
  • Por el carácter 15a tiene alrededor de ¼ tantas combinaciones (2 bits). Pero ¼ de un número realmente grande es todavía un número realmente grande.
  • Por el carácter 18a, 3 bits de precisión se pierden (octavo las combinaciones).
  • Por la 32 ª carácter, al menos uno más bits de precisión se pierde por cada personaje adicional (sólo hay 64 o 26 caracteres dejó proporcionando 6 bits de entropía en lugar de 7)
  • El carácter 80a proporciona sólo 4 bits de entropía ( hay 16 personajes que quedan en paradero desconocido)
  • El carácter 94a proporciona sólo 1 bit de la entropía (sólo 2 posibilidades)
  • El carácter 95a no proporciona entropía adicional (la única tarjeta de la izquierda es totalmente determinado por el 94 que había antes de él).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *