Después de haber aprendido sobre la teoría del caos en la universidad hace algunos años, he tenido curiosidad por saber si ha encontrado algún uso práctico en la informática.
Déjame explicarte dónde imagino que podría usarse ...
El caos, en el sentido matemático, es un comportamiento estocástico ("aleatorio") en un sistema determinista ("no aleatorio"). Los sistemas caóticos tienen tres propiedades clave:
- están limitados
- son no repetitivas
- son sensibles a las condiciones iniciales
Por ejemplo, tome la función de mapa iterativo caótico f (x) = 2x 2 - 1 . Para entradas entre -1 y +1 (excluyendo -1, -0.5, 0, 0.5 y 1), la iteración de esta función produce resultados caóticos. Por ejemplo:
x | f(x)
----------+-----------
0.700000 | -0.020000
-0.020000 | -0.999200
-0.999200 | 0.996801
0.996801 | 0.987226
0.987226 | 0.949229
0.949229 | 0.802070
0.802070 | 0.286633
0.286633 | -0.835683
-0.835683 | 0.396731
Los resultados están limitados (la salida siempre es mayor que -1.0, menor que 1.0) y no se repite (intente iterar unos cuantos miles de veces; ganó No veo ningún patrón emergente). Si varía el primer valor de x en una cantidad muy pequeña (por ejemplo, use 0.700001) comenzará a ver los resultados divergiendo considerablemente de los anteriores después de unas pocas iteraciones. En otras palabras, esta función también es sensible a las condiciones iniciales .
Podría imaginar esto teniendo varias aplicaciones en computación como un generador predecible de números pseudoaleatorios. Por ejemplo, podría usar algo como la función anterior como la base para uno de esos llaveros seguros utilizados para "algo que tener contigo "autenticación. Imagine que usa f (x) = 2x 2 - 1 en dicho dispositivo. Siempre que el dispositivo y el servidor se hayan sembrado con exactamente la misma entrada inicial, seguirán estando sincronizados para siempre (lo que permite problemas de tiempo), ya que la función es completamente determinista. Digamos que utilizó los primeros seis dígitos después del punto decimal como la clave mostrada al usuario y validada por el servidor. Si alguien miró por encima de su hombro, vio el valor actual y lo introdujo en la misma función, aún así no podrían predecir los valores futuros del dispositivo gracias a la sensibilidad de la función a las condiciones iniciales: solo valer la entrada con seis cifras decimales.
Entonces, ¿es correcta mi intuición? ¿El caos ha encontrado tal uso en la seguridad informática?