Feeds:
Entradas
Comentarios

Posts Tagged ‘números aleatorios’

Un ordenador puede generar números aleatorios

En nuestro anterior mito, ya apuntamos hacia esta interesante -o eso creo- pregunta: ¿puede un ordenador generar números aleatorios?

Seguramente, un primer pensamiento intuitivo apunte a una respuesta afirmativa. Dado que los números aleatorios son muy utilizados en informática, y especialmente en criptografía; parece lógico. Además, todos hemos programado alguna vez usando las típicas funciones random. Bien, pues a pesar de ello, la respuesta es que NO.

Un ordenador es un sistema determinista. Esto quiere decir que tiene una relación directa de causa-efecto, por lo que, dada una misma entrada y un mismo proceso, siempre obtendremos una misma salida… aunque Windows a veces parezca contradecir este principio. Dado un algoritmo determinado, por tanto, si queremos ver cambios en la salida (efecto), tendremos que efectuar cambios en la entrada (causa).

Así, los algoritmos de generación de números “aleatorios” son en realidad, algoritmos de generación de números “pseudoaleatorios. Esto quiere decir que los números que obtenemos no son aleatorios, pero bajo determinadas circunstancias y condiciones, podemos utilizarlos como si lo fueran. Para generar estos números pseudoaleatorios, los algoritmos utilizan entropía externa al sistema, que actúa como semilla de generación para la entrada del proceso.

Esta entropía es captada en sistemas caóticos que, pese a ser deterministas, se ven influidos por un gran número de variables; y cuya modificación, aún siendo leve, puede variar en gran medida el estado del sistema. Los ejemplos más típicos de captación de entropía en ordenadores son la interacción con el usuario (movimiento del ratón, pulsación de teclas, etc.) o con las redes de comunicaciones (flujo de entrada/salida, estado de buffers, etc.). Así, y por poner un ejemplo, al generar una pareja de claves en GnuPG, el sistema instará al usuario a maximizar la interacción con el sistema, para así magnificar los cambios introducidos en la entropía del sistema caótico.

Pero, ¿y si cambiamos un poco la pregunta de nuestro mito?

Un ordenador puede obtener números aleatorios

Bueno, ya sabemos que un ordenador no permite generar números puramente aleatorios, pero que sí permite generar números pseudoaleatorios. Pero claro, ahora no estamos utilizando el verbo “generar”.

Ahora la respuesta es afirmativa. En este caso, la generación de números puramente aleatorios requiere de un dispositivo hardware que, en base a ciertos procesos físicos (desintegración de isótopos, ruido térmico, etc.), permite realizar mediciones aleatorias. Así, en el dispositivo tiene lugar algún tipo de proceso físico intrínsecamente aleatorio, que mediante los sensores apropiados será registrado por el ordenador. En última instancia, la medición efectuada será aleatoria, si bien el ordenador se limitará a realizar una lectura, no tomando parte en ningún proceso de generación.

Y hasta aquí este mito. Como siempre, espero que os haya resultado interesante.

Read Full Post »

A %d blogueros les gusta esto: