generador pseudoaleatorio de_números

3
Generador pseudoaleatorio de números 1 Generador pseudoaleatorio de números Un generador pseudoaleatorio de números (GPAN) es un algoritmo que produce una sucesión de números que es una muy buena aproximación a un conjunto aleatorio de números. La sucesión no es exactamente aleatoria en el sentido de que queda completamente determinada por un conjunto relativamente pequeño de valores iniciales, llamados el estado del GPAN. Si bien es posible generar sucesiones mediante generadores de números aleatorios por dispositivos mecánicos que son mejores aproximaciones a una sucesión aleatoria, los números pseudo-aleatorios son importantes en la práctica para simulaciones (por ejemplo, de sistemas físicos mediante el método de Monte Carlo), y desempeñan un papel central en la criptografía. La mayoría de los algoritmos de generadores pseudoaleatorios producen sucesiones que poseen una distribución uniforme según varios tipos de pruebas. Las clases más comunes de estos algoritmos son generadores lineales congruentes, generadores Fibonacci demorados, desplazamiento de registros con retroalimentación lineal y desplazamientos de registros con retroalimentación generalizada. Entre los desarrollos más recientes de algoritmos pseudoaleatorios se encuentran Blum Blum Shub, Fortuna, y el Mersenne twister. Se requiere de un cuidadoso análisis matemático para tener algún tipo de confianza en que un dado GPAN genera números que son suficientemente "aleatorios" para ser útiles para el proposito para el que se los precisa. Robert R. Coveyou del Oak Ridge National Laboratory escribió un artículo titulado, "La generación de números aleatorios es demasiado importante como para ser dejado al azar." [1] Y como John von Neumann decía en broma, "Todo el que desarrolla métodos aritméticos para producir dígitos aleatorios esta desde luego en pecado." [2] Referencias Michael Luby, Pseudorandomness and Cryptographic Applications, Princeton Univ Press, 1996. A definitive source of techniques for provably random sequences. Donald Knuth. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89684-2. Chapter 3, pp.1193. Extensive coverage of statistical tests for non-randomness. R. Matthews Maximally Periodic Reciprocals Bulletin of the Institute of Mathematics and its Applications 28 147-148 1992 J. Viega, Practical Random Number Generation in Software [3] , in Proc. 19th Annual Computer Security Applications Conference, Dec. 2003. John von Neumann, "Various techniques used in connection with random digits," in A.S. Householder, G.E. Forsythe, and H.H. Germond, eds., Monte Carlo Method, National Bureau of Standards Applied Mathematics Series, 12 (Washington, D.C.: U.S. Government Printing Office, 1951): 36-38. NIST Recommendation for Random Number Generation Using Deterministic Random Bit Generators [4]

Upload: g-hoyos-a

Post on 25-Jun-2015

684 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Generador pseudoaleatorio de_números

Generador pseudoaleatorio de números 1

Generador pseudoaleatorio de númerosUn generador pseudoaleatorio de números (GPAN) es un algoritmo que produce una sucesión de números que esuna muy buena aproximación a un conjunto aleatorio de números. La sucesión no es exactamente aleatoria en elsentido de que queda completamente determinada por un conjunto relativamente pequeño de valores iniciales,llamados el estado del GPAN. Si bien es posible generar sucesiones mediante generadores de números aleatorios pordispositivos mecánicos que son mejores aproximaciones a una sucesión aleatoria, los números pseudo-aleatorios sonimportantes en la práctica para simulaciones (por ejemplo, de sistemas físicos mediante el método de Monte Carlo),y desempeñan un papel central en la criptografía.La mayoría de los algoritmos de generadores pseudoaleatorios producen sucesiones que poseen una distribuciónuniforme según varios tipos de pruebas. Las clases más comunes de estos algoritmos son generadores linealescongruentes, generadores Fibonacci demorados, desplazamiento de registros con retroalimentación lineal ydesplazamientos de registros con retroalimentación generalizada. Entre los desarrollos más recientes de algoritmospseudoaleatorios se encuentran Blum Blum Shub, Fortuna, y el Mersenne twister.Se requiere de un cuidadoso análisis matemático para tener algún tipo de confianza en que un dado GPAN generanúmeros que son suficientemente "aleatorios" para ser útiles para el proposito para el que se los precisa. Robert R.Coveyou del Oak Ridge National Laboratory escribió un artículo titulado, "La generación de números aleatorios esdemasiado importante como para ser dejado al azar."[1] Y como John von Neumann decía en broma, "Todo el quedesarrolla métodos aritméticos para producir dígitos aleatorios esta desde luego en pecado."[2]

Referencias• Michael Luby, Pseudorandomness and Cryptographic Applications, Princeton Univ Press, 1996. A definitive

source of techniques for provably random sequences.• Donald Knuth. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Third Edition.

Addison-Wesley, 1997. ISBN 0-201-89684-2. Chapter 3, pp.1–193. Extensive coverage of statistical tests fornon-randomness.

• R. Matthews Maximally Periodic Reciprocals Bulletin of the Institute of Mathematics and its Applications 28147-148 1992

• J. Viega, Practical Random Number Generation in Software [3], in Proc. 19th Annual Computer SecurityApplications Conference, Dec. 2003.

• John von Neumann, "Various techniques used in connection with random digits," in A.S. Householder, G.E.Forsythe, and H.H. Germond, eds., Monte Carlo Method, National Bureau of Standards Applied MathematicsSeries, 12 (Washington, D.C.: U.S. Government Printing Office, 1951): 36-38.

• NIST Recommendation for Random Number Generation Using Deterministic Random Bit Generators [4]

Page 2: Generador pseudoaleatorio de_números

Generador pseudoaleatorio de números 2

Enlaces externos• La biblioteca científica GNU [5]. Una biblioteca libre (GPL) en lenguaje C que incluye algunos algoritmos

GPAN.• DieHarder [6]: A free (GPL) C Random Number Test Suite.• crng [7]: Generadores aleatorios de números programados como extensiones de tipo Python codificadas en

lenguaje C.• random.org [8]: Web based Random-number generator built and maintained by Mads Haahr.• http:/ / eeyore. wu-wien. ac. at/ src/ [9] prng: Una colección de algoritmos para generar números pseudoaleatorios

programados en lenguaje C, bajo GPL.• Strange Attractors and TCP/IP Sequence Number Analysis [10] - an analysis of the strength of PRNGs used to

create TCP/IP sequence numbers by various operating systems using strange attractors. This is a good practicalexample of issues in PRNGs and the variation possible in their implementation.• Strange Attractors and TCP/IP Sequence Number Analysis - One Year Later [11] - a follow-up article

demonstrating some of the evolution of various PRNG algorithms over time.• Generating random numbers [12] Generating random numbers in Embedded Systems by Eric Uner• Analysis of the Linux Random Number Generator [13] by Zvi Gutterman, Benny Pinkas, and Tzachy Reinman

Referencias[1] Peterson, Ivars. The Jungles of Randomness: A Mathematical Safari. Wiley, NY, 1998. (pp. 178) ISBN 0-471-16449-6[2] "Various techniques used in connection with random digits", Applied Mathematics Series, no. 12, 36-38 (1951).[3] http:/ / www. acsac. org/ 2003/ papers/ 79. pdf[4] http:/ / csrc. nist. gov/ publications/ nistpubs/ 800-90/ SP800-90revised_March2007. pdf[5] http:/ / www. gnu. org/ software/ gsl/[6] http:/ / www. phy. duke. edu/ ~rgb/ General/ rand_rate. php[7] http:/ / www. avatar. se/ python/ crng/ index. html[8] http:/ / www. random. org/[9] http:/ / eeyore. wu-wien. ac. at/ src/[10] http:/ / www. bindview. com/ Services/ Razor/ Papers/ 2001/ tcpseq. cfm[11] http:/ / lcamtuf. coredump. cx/ newtcp/[12] http:/ / www. embedded. com/ showArticle. jhtml?articleID=20900500[13] http:/ / eprint. iacr. org/ 2006/ 086

Page 3: Generador pseudoaleatorio de_números

Fuentes y contribuyentes del artículo 3

Fuentes y contribuyentes del artículoGenerador pseudoaleatorio de números  Fuente: http://es.wikipedia.org/w/index.php?oldid=31742629  Contribuyentes: Camilo, Farisori, Uruk, 3 ediciones anónimas

LicenciaCreative Commons Attribution-Share Alike 3.0 Unportedhttp:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/