Como dice el título ¿Cuál es la diferencia entre un número generado aleatoriamente y un número seguro generado aleatoriamente?¿Cuál es la diferencia entre un número generado aleatoriamente y un número seguro generado aleatoriamente?
Respuesta
algoritmo Sin computacionalmente viable debe:
- recuperar la semilla, o
- predecir el "siguiente bit"
para un generador de números aleatorios seguro.
Ejemplo: un registro de desplazamiento de retroalimentación lineal produce muchos números aleatorios, pero con un rendimiento suficiente, la semilla se puede descubrir y se pueden predecir todos los números subsiguientes.
Con solo un "número aleatorio" uno generalmente significa un número pseudo aleatorio. Debido a que es un número pseudo aleatorio, puede ser pronosticado (fácilmente) por un atacante.
Un número aleatorio seguro es un número aleatorio de una fuente de datos verdaderamente aleatoria, es decir. involucrando un grupo de entropía de algún tipo.
Esto es muy, muy inexacto: un número generado aleatoriamente significa exactamente eso, generado al azar: tirar un dado, escuchar el ruido blanco del sonido tarjeta, al azar. –
Los generadores de números pseudoaleatorios generan números aparentemente aleatorios algorítmicamente. Por ejemplo, Mersenne Twister. Los generadores de números aleatorios criptográficamente fuertes no son menos "pseudo", también generan números algorítmicamente. –
Sin embargo, generalmente se muestra que son difíciles de predecir siempre que su entropía permanezca en secreto. Un ejemplo de un generador de números pseudo aleatorios criptográficamente fuerte (prng) es Yarrow que se utiliza en la implementación de/dev/random y/dev/urandom en Mac OS X y fue diseñado por Bruce. –
Probablemente depende del contexto, pero cuando los compara de esta manera, diría que "número aleatorio" es pseduo random number y un "número aleatorio seguro" es verdaderamente aleatorio. El primero le da un número basado en una semilla y un algoritmo, el otro en alguna función aleatoriamente heredada.
Los números aleatorios seguros no tienen que ser de fuentes verdaderamente aleatorias Por ejemplo, generalmente es bastante seguro generar números aleatorios seguros utilizando una buena fuente pseudoaleatoria y utilizando el resultado de suma de comprobación MD5 como resultados aleatorios seguros. Esta no es una solución ideal, pero decente. –
Es como la diferencia entre AES y ROT13.
Para ser menos impertinente, generalmente hay una compensación cuando se generan números aleatorios entre lo difícil que es y cuán predecible es el siguiente en la secuencia una vez que haya visto unos pocos. Un número aleatorio devuelto por el rand incorporado de su idioma() generalmente será de la variedad barata y predecible.
De acuerdo con Purfiedeas. También hay buen artículo sobre eso, llamado Cheat Online Poker
Un número aleatorio seguro no debe ser predecible incluso teniendo en cuenta la lista de números aleatorios generados con anterioridad. Por lo general, lo usaría para una clave de una rutina de cifrado, por lo que no le gustaría que sea predecible o predecible. Por supuesto, adivinable depende del contexto, pero debe suponer que el atacante sabe todo lo que sabe y podría usar para producir su número aleatorio.
Existen varios sitios web que generan números aleatorios seguros, uno de confianza es hotbits. Si solo está haciendo la generación de números aleatorios como una actividad única, ¿por qué no utilizar un resultado de sorteo de lotería, ya que es probablemente aleatorio? Por supuesto, no le diga a nadie qué lotería y qué sorteo, y ponga esos números a través de un truco adecuado para obtener el rango que desea.
Un número aleatorio probablemente significaría un número pseudo aleatorio devuelto por un algoritmo que utiliza un 'semilla'.
Un número aleatorio seguro sería un verdadero número aleatorio devuelto por un dispositivo como un generador de números aleatorios basado en cesio (que usa la tasa de disminución del cesio para devolver números). Esto ocurre naturalmente y no puede predecirse.
Tenga en cuenta que los números no son aleatorios. La "aleatoriedad" simplemente no es propiedad de ningún número dado (ni siquiera cuando XKCD le indique lo contrario).
Solo el proceso de generar los números podría calificarse con "aleatoriedad". Lea What Colour are your bits para tener alguna discusión sobre este tema.
Cualquier comentario con una referencia XKCD obtiene mi voto de aprobación :) –
- 1. Número hexadecimal generado aleatoriamente en C#
- 2. MySQL: ¿Por qué la comparación de la clave principal con un número generado aleatoriamente no utiliza el índice?
- 3. ¿Cuál es la diferencia entre un número de puerto y un número de protocolo?
- 4. AWS DynamoDB: ¿elige un registro/elemento aleatoriamente?
- 5. ¿Cuál es la diferencia entre "nuevo número (...)" y "número (...)" en JavaScript?
- 6. ¿Cuál es la diferencia entre un JavaBean y un POJO?
- 7. Vim sustituye a Regex con números generados aleatoriamente
- 8. ¿Cuál es la diferencia entre sscanf o atoi para convertir una cadena en un número entero?
- 9. ¿Cuál es la diferencia entre un predicado y un funcionador?
- 10. ¿Cuál es la diferencia entre un método y un selector?
- 11. Cuál es la diferencia entre un subproceso y un controlador
- 12. ¿Cuál es la diferencia entre un controlador y un servicio?
- 13. ¿Cuál es la diferencia entre un lenguaje y un marco?
- 14. ¿Cuál es la diferencia entre un ayudante y un parcial?
- 15. ¿Cuál es la diferencia entre un nanokernel y un exokernel?
- 16. ¿Cuál es la diferencia entre un árbol y un directorio?
- 17. ¿Cuál es la diferencia entre un algoritmo y un método
- 18. ¿Cuál es la diferencia entre un HashMap y un TreeMap?
- 19. ¿Cuál es la diferencia entre un vector y un vértice?
- 20. ¿Cuál es la diferencia entre un REPL y un intérprete?
- 21. ¿Cuál es la diferencia entre un IORef y un MVar?
- 22. ¿Cuál es la diferencia entre un "nonce" y un "GUID"?
- 23. NSSet cómo extraer objetos aleatoriamente?
- 24. Cuál es la diferencia entre = y: =
- 25. Favicon generado dinámicamente
- 26. Log4net deja de registrar aleatoriamente.
- 27. ¿Cuál es la diferencia entre "precisión" y "precisión"?
- 28. ¿Cuál es la diferencia entre @ y @@ en un módulo?
- 29. ¿Cuál es la diferencia entre un hilo y una fibra?
- 30. ¿Cuál es la diferencia entre un algoritmo y una función?
esto podría ayudar http://stackoverflow.com/a/4441091/17447 – naveen