miércoles, 7 de febrero de 2007

Aleatoriedad (I)

El otro día, mientras compraba en Alcampo, me fijé en mis movimientos caóticos para realizar las compras. Después de tantos años, conozco bastante bien dónde se encuentra cada producto aproximadamente, pero soy completamente incapaz de hacer una compra ordenada si no estoy concentrado en ello. Me recordó una investigación sobre la que me habló un amigo en la que utilizaban los movimientos de las moscas para generar números aleatorios.

Es curioso que a la aleatoriedad no se le dé el valor que realmente tiene. Es extremadamente complicado hacer un generador de aleatoriedad, por rara que pueda parecer esta afirmación. Todo el mundo pensará inmediatamente en que tirar dados, lanzar una moneda al aire, etc, son sucesos aleatorios. Pero esto desde un punto de vista físico no es cierto. De hecho lo mas que podemos aspirar es a tener un generador de números virtualmente impredecible (aquí es donde encaja la famosa mariposa que mueve las alas en algún lugar del mundo). Es decir, generadores que se vean afectados por tantas variables que sea imposible en la práctica predecir su comportamiento (mi caso con la compra en Alcampo sería un ejemplo débil de esto).

Pero no está todo perdido. Hay algo que sí que es intrínsecamente aleatorio y no sujeto a variables externas: la incertidumbre cuántica. (En este punto puedo hacer dos cosas: dar por supuesto que todos teneis nociones básicas de mecánica cuántica o empezar a escribir otro blog sobre un tema que ni siquiera domino. Elegiré la primera ;)

Los que hayáis llegado aquí (es difícil aguantar tanto, lo reconozco: ha aparecido la palabra "cuántica", y no he metido ningún dibujo ni ningún chiste) os preguntareis porqué narices os cuento todo esto y, sobre todo, porqué tiene el post tiene la etiqueta de "criptografía". Es simple: la aleatoriedad es esencial para la seguridad de un sistema criptográfico. Los ataques pueden ir, por supuesto, dirigidos al algoritmo, pero también pueden ir dirigidos a la clave. Si la clave no es todo lo aleatoria que debería, el protocolo se resiente (podemos tener el mejor algoritmo, pero si luego como clave elegimos, por ejemplo, nuestro nombre será trivial encontrarla para un atacante).

Y aquí hay que tener mas cuidado del que puede parecer, ya que puede haber secuencias de números que tengan una apariencia aleatoria pero que no lo sean en realidad. Para comprobar esto existen una serie de tests que nos permiten medir este parámetro (métodos probabilísticos que serían largos de explicar aquí).

Pero además esto tiene un debate mas filosófico. En un universo determinista (un universo "clásico"), la aleatoriedad no parece posible. Por suerte la mecánica cuántica nos condujo de nuevo a un universo no determinista (en el que la criptografía puede ser completamente segura). Por cierto, no viene muy al caso pero me apetece contarlo: a Einstein no le gustó esa idea ("Dios no juega a los dados") y perdió muchos años de su vida intentando demostrar que era falsa, hasta que al final la aceptó. Y esto es realmente curioso, porque precisamente él fue quien dio la descripción del movimiento browniano, que es un movimiento aleatorio.



Bueno, de momento lo dejo aquí. Perdonad por la extensión y la rallada, aunque he de confesar que es mucho peor de lo que pensais: el post me ha quedado tan largo que después de escribirlo lo he dividido en dos, asi que os queda una segunda parte que pondré en próximas fechas.

5 comentarios:

Patxi Recaj dijo...

Si coño si!!!. Veo la luz!!!. Estoy cerca del tema!!!. Gracias a recomendaciones literarias que tienes presentes, BBug. Llevo 170 paginas, y no puedo hacer otra cosa que agradecer.

Acido_Cinico dijo...

Un post muy muy interesante, BBug.
Doy fe de que es muy difícil programar [cuando uno es amateur o lo necesita por algún motivo banal que no sea criptografía como por ejemplo las simulaciones financieras via método de MonteCarlo]un generador de números pseudoaleatorios que no muestre algún tipo de comportamiento periódico a la larga... Si pudiera adjuntar aquí una imagen que hice hace tiempo de un movimiento browniano 3D lo haría... proxímamente la pondré en el blog y vincularé el post original.
Por lo que respecta al mecanicismo del universo, yo me quedo con "la espuma cuántica" : a escalas del orden de la longitud de Planck (~ 10E-33 m, la longitud más pequeña que puede existir), la materia NO ESTÁ FÍSICAMENTE DEFINIDA, no tiene métricas ni categorías ontológicas asociables, es como una espuma conceptual... De ahí que cualquier sentido de orden macroscópico es una ilusión necesariamente?

Acido_Cinico dijo...

Y por cierto, cual es ese libro del que habla Patxi?

Bletchley BuG dijo...

Le dejé varios libros y le recomendé otros. Quizá se refiera a "El universo elegante" de Brian Greene o a "El quark y el jaguar" de Murray Gell-Mann. Ambos son muy recomendables. El primero da una muy buena visión general de la física y una introducción un poco mas espesa de teoría de cuerdas. El segundo cambió mi forma de pensar en la ciencia.

Acido_Cinico dijo...

Lo he visto por casa de mi padre (el del quark y el jaguar, el otro me lo leí hace unos años y me revolvió los axones como si fueran escubidú...), así que lo pongo en cola de lectura ;> Gracias por la recomendación