Aleatoriedad y pseudoaleatoriedad

Anuncio
http://www.eugenio-soler-galan.es/aleatoriedad
Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
Profesor: Benjamín Ramos Álvarez
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
junio de 2008
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
Página 2 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
INDICE
1. MOTIVACIÓN ............................................................................................ pág. 4
2. ¿DÓNDE ENCONTRAMOS ALEATORIEDAD?........................................ pág. 6
3. OTROS CONCEPTOS RELACIONADOS CON LA ALEATORIEDAD .... pág. 11
4. CRIPTOGRAFÍA Y NÚMEROS ALEATORIOS ....................................... pág. 14
5. ¿CÓMO CONSEGUIR NÚMEROS PSEUDOALEATORIOS? ................ pág. 20
a. Generador aleatorio por entrada de teclado ........................... pág. 26
b. Generadores de Fibonacci ...................................................... pág. 26
6. CONTRASTES DE ALEATORIEDAD...................................................... pág. 28
a. Contraste de rachas ................................................................ pág. 28
b. Test de Wald-Wolfowitz ........................................................... pág. 31
c. Test de adherencia ................................................................... pág 32
d. Contraste de Kolmogorov – Smirnov ........................................ pág 33
e. Prueba de frecuencia................................................................ pág 35
f. Prueba de series (prueba de los dos bits) ................................ pág 35
g. Prueba de póquer ..................................................................... pág 36
h. Prueba de rachas ..................................................................... pág 36
i.
Prueba de autocorrelación........................................................ pág 37
j. Tests estadístico universal de Maurer ...................................... pág 38
k. Contraste
l.
............................................................................. pág 39
Contraste de permutaciones..................................................... pág 39
m. Contraste de huecos ................................................................ pág 40
7. ANALISIS DE ALEATORIEDAD ............................................................. pág. 41
a. Postulados de Golomb ............................................................ pág. 41
8. EL CAOS COMO SOLUCIÓN A LA ALEATORIEDAD ............................ pág. 44
9. CONCLUSIONES .................................................................................... pág. 46
10. TABLA PERCENTILES TEST DE RACHAS ........................................... pág. 48
11. TABLA DE LA NORMAL.......................................................................... pág. 50
12. ALGORITMO DE UN GENERADOR ALEATORIO POR ENTRADA DE
TECLADO ............................................................................................... pág. 51
13. BIBLIOGRAFÍA........................................................................................ pág. 52
14. LA ENTROPÍA DE UNA VARIABLE ALEATORIA ................................... pág. 54
junio de 2008
Página 3 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
MOTIVACIÓN
Con este trabajo de investigación se pretende ver el estado en el que se
encuentra hoy en día el tema de la aleatoriedad, sobre todo en el campo de la
aleatoriedad simulada, ya que el tema de la aleatoriedad propiamente dicha, es
un dilema filosófico sobre el que muchos han estado discutiendo durante siglos,
como veremos a continuación.
La aleatoriedad no es algo que tan solo tenga una aplicación técnica,
desde siempre el hombre se ha preguntado si su destino está no o escrito 1 . Los
determistas 2 niegan al hombre el derecho de obrar libremente de acuerdo con su
voluntad enfrentados a los no deterministas que opinan justamente lo contrario
que el hombre obra libremente y que sus actos no están escritos. A día de hoy,
estamos en un estadio en el que todo está escrito, pero en el que el hombre tiene
el poder de cambiarlo, (¿por qué alguien va a ser encarcelado por sus actos, si
no puede hacer nada para evitarlo?. En su destino ya estaba escrito que esto
sucedería, no ha sido él quien a cometido un crimen, simplemente a cumplido su
destino, en nuestro sistema jurídico actual, cuando una persona no tiene
capacidad de decisión no va a la cárcel, va a un centro psiquiátrico, ..), un invento
de lo más práctico, aunque no parezca de lo más lógico. Estamos ante la
sociedad de lo práctico y no de lo lógico. A nosotros nos interesa la
“aleatoriedad”, y podríamos estar discutiendo sobre si existen procesos aleatorios
o no al igual que los deterministas y los no deterministas, pero vamos a tirar por
el camino práctico y no por el filosófico. Consideraremos que algo es aleatorio,
cuando no se puede volver a reproducir con los medios actuales, en un tiempo
más o menos corto, en exactamente las mismas condiciones que se hizo
anteriormente. De ahí el título del trabajo: la aleatoriedad como principio
filosófico y la pseudoaleatoriedad 3 que no se plantea la existencia o no de la
aleatoriedad pero que intenta imitarla cumpliendo los requisitos anteriormente
expuestos: no repetición del hecho, en exactamente las mismas condiciones. En
1
Decía Esquilo que “Ni aun permaneciendo sentado junto al fuego de su hogar puede el hombre escapar a la
sentencia de su destino”
2
Los "fatalistas" y los "deterministas" resumen sus argumentos, en este sentido, diciendo que "El hombre
está sometido a los impulsos de su naturaleza que lo dominan".
3
Que dicho sea de paso no existe como tal en el diccionario de la lengua castellana. pseudo aleatorio tiene
simplemente el significado de falta aleatoriedad.
junio de 2008
Página 4 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
numerosas ocasiones de desconoce cual es el proceso y lo único que se tiene es
el resultado, para lo cual contamos con una batería de test que nos dicen si esos
resultados provienen o no de un proceso “aleatorio”, esto ya es Estadística. Para
la Informática, y en concreto en el campo de la seguridad en redes tiene mucha
importancia la aleatoriedad, ya sea en sistemas de cifrados asimétricos como en
los simétricos. Este trabajo de investigación, solo es eso, un trabajo de
investigación, ya que se puede seguir trabajando en él, desarrollando algunos
puntos concretos para realizar una posible tesis doctoral. Por ejemplo hacia
donde pueden ir los nuevos caminos en lo que ha cifrado se refiere: en un
primer momento se uso cifrado simétrico, ahora estamos en cifrado asimétrico
con clave pública-privada, quizás el futuro pase por la teoría del caos, al igual
que en otras ciencias donde se ha pasado del determinismo a la estadística y de
la estadística a la teoría del caos para poder explicar ciertos fenómenos. Existen
diversos autores que dicen que el azar no existe que el caos sí.
En el campo de la seguridad-informática es muy importante la
aleatoriedad, en los últimos años es algo que se tiene muy en cuenta. Ahora ya
no sucede como antaño cuando se asignaban login a los alumnos de un
determinado centro, su contraseña se formaba a partir de una política fija, con lo
que cualquiera que supiera los datos de otro podía averiguar su contraseña. Es
importante por tanto que aunque el login de usuario siga una política fija, la
contraseña sea aleatoria. Este hecho lo encontramos en casi todos los campos,
ya que cada vez más tenemos login y contraseña para casi cualquier cosa.
junio de 2008
Página 5 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
¿DÓNDE ENCONTRAMOS ALEATORIEDAD?
En la Filosofía
El azar ontológico es aquel que forma parte del ser, de la forma misma en
que el mundo es, por lo que aunque encontremos leyes deterministas habrá
procesos
que
son
irreductiblemente
espontáneos
y
aleatorios,
independientemente del avance del conocimiento. El azar epistemológico es
aquel que encontramos en nuestro conocimiento bien sea por ignorancia, por
incapacidad para tratar sistemas complejos en un mundo determinista o bien
porque exista un auténtico azar ontológico. El determinismo afirma que no existe
el azar ontológico. Los procesos considerados aleatorios serían en realidad
eventos en los que se ha desatendido las particularidades (o es excesivamente
trabajoso o complejo estudiarlas). Cuando no se niega la ciencia como
conocimiento de la realidad, su carácter predictivo resulta problemático para la
existencia de libre albedrío. Por ello en algunos casos se ha intentado salvar éste
acudiendo al azar que aceptan las nuevas teorías científicas. Los críticos aducen
que aunque se admita la existencia del azar, éste es algo completamente
diferente del libre albedrío, no se es más libre por tomar una decisión aleatoria
que por tomar una determinista.
El Caos determinista se refiere a fenómenos que permiten cierta
predictibilidad en su globalidad, pero que analizados a pequeña escala son
impredecibles. Se trabaja con descripciones estadísticas de conjuntos de grandes
cantidades de elementos, cada uno de ellos impredecible de manera individual
pero no así globalmente. El azar puede encontrarse en o asimilarse al
comportamiento individual de las partículas que lo forman. Los sistemas
turbulentos son aquellos cuya evolución no es predecible a corto plazo debido a
que
variaciones
infinitesimales
en
las
condiciones
provocan
cambios
exponenciales. No predictibilidad y aleatoriedad en estos casos no son
equivalentes. Éstos son un ejemplo claro de complejidad.
junio de 2008
Página 6 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
En la Física
Desde que Isaac Newton presentó su nueva forma de hacer ciencia ésta
fue asociada al determinismo. Como para el determinismo el azar sólo puede ser
epistemológico, considera preferibles las teorías científicas de las que se
desprenden leyes en las que no tiene cabida el azar. Bajo el punto de vista de la
Física clásica un evento era aparentemente aleatorio cuando no podía
establecerse o controlarse su causa. Se podía asimilar a ignorancia. Se dice que
el azar es un simple juego de probabilidades basadas en formulas, es decir que
la suerte no existe.
Con las nuevas teorías científicas sobre sistemas caóticos o turbulentos y
con la mecánica cuántica, algunos científicos consideran que no está tan claro
que el azar no forme parte del mundo. Según la interpretación estándar (o de
Copenhagen) de la mecánica cuántica, en un experimento controlado hasta sus
más mínimos detalles siempre hay un grado de aleatoriedad en el resultado.
Muchos procesos físicos de carácter cuántico podrían ser irreductiblemente
aleatorios. Las leyes de la desintegración atómica pueden predecir el número de
núcleos de un cuerpo radiactivo que se desintegrará en un periodo dado de
tiempo, pero no cuándo lo hará un núcleo concreto. Ha habido diferentes
objeciones a esta interpretación, como la de variables ocultas, en el sentido de
que el resultado del experimento viene determinado por un cierto número de
características inobservadas o inobservables. Esta interpretación ya ha sido
contrastada experimentalmente por y con la interpretación estándar, y los
resultados experimentales la han descartado. Otra interpretación es la del
multiuniverso, según la cual todos los posibles resultados se dan, en todo un
conjunto de universos. Aún no se ha diseñado y realizado un experimento que
contraste esta interpretación con la estándar.
Una interpretación de la entropía ϑ es que ésta mide la cantidad de azar de
un sistema. Pero la entropía también puede interpretarse como complejidad, que
se puede analizar utilizando las probabilidades.
junio de 2008
Página 7 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
En la Matemática
El cálculo de probabilidades nos da las leyes de un sistema que se puede
clasificar como aleatorio, por lo que de alguna manera es un cálculo determinista,
se opone al azar aunque de forma diferente a las teorías mecanicistas clásicas.
Mientras que éstas se refieren al determinismo de objetos individuales, las
probabilidades se refieren al determinismo de conjuntos. La explicación
probabilista no presupone el azar en la base de la ciencia, ya que puede ser
simplemente una muestra de nuestra ignorancia.
Las matemáticas se ocupan del azar por medio de las diversas teorías de
probabilidad.
El
ordenamiento
estadístico
es
una
forma
de
tratar
matemáticamente la naturaleza y el hombre, como si fuesen datos aleatorios pero
sin que lo sean necesariamente. Así se intenta prever y controlar en lo posible los
fenómenos complejos.
En las comunicaciones
Una comunicación correcta depende, entre otras cosas, de la minimización
del efecto aleatorio del ruido. Éste impone límites a la eficiencia de la
comunicación. El estudio de dichos límites condujo a Claude Shannon al
desarrollo de la teoría de la información, a efectuar aportaciones fundamentales a
la teoría de la comunicación y a establecer las bases teóricas de la criptografía.
El acceso a una fuente de aleatoriedad de alta calidad es crítico en
criptografía. La elección de una clave muy ligeramente no aleatoria puede
resultar en el desciframiento de las comunicaciones.
Número aleatorio
Un número aleatorio es un resultado de una variable al azar especificada
por una función de distribución. Cuando no se especifica ninguna distribución, se
presupone que se utiliza la distribución uniforme continua en el intervalo [0,1].
junio de 2008
Página 8 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
En los ordenadores personales es fácil simular la generación de números
aleatorios, mediante mecanismos de generación de números pseudoaleatorios,
que, sin ser aleatorios (siguen una fórmula), lo aparentan.
Un número pseudo-aleatorio es un número generado en un proceso que
parece producir números al azar, pero no lo hace realmente. Las secuencias de
números pseudo-aleatorios no muestran ningún patrón o regularidad aparente
desde un punto de vista estadístico, a pesar de haber sido generadas por un
algoritmo completamente determinista, en el que las mismas condiciones iniciales
producen siempre el mismo resultado.
Los mecanismos de generación de números aleatorios que se utilizan en la
mayoría de los sistemas informáticos son en realidad procesos pseudoaleatorios.
Una de las utilidades principales de los números pseudoaleatorios se lleva
a cabo en el llamado método de Monte Carlo, con múltiples utilidades, por
ejemplo para hallar áreas / volúmenes encerradas en una gráfica y cuyas
integrales son muy difíciles de hallar o irresolubles; mediante la generación de
puntos basados en estos números, podemos hacer una buena aproximación de
la superficie / volumen total, encerrándolo en un cuadrado / cubo, aunque no lo
suficientemente buena. Asimismo, también destacan en el campo de la
Criptografía. Por ello se sigue investigando en la generación de dichos números,
empleando por ejemplo medidores de ruido blanco o analizadores atmosféricos,
ya que experimentalmente se ha comprobado que tienen una aleatoriedad
bastante alta.
En la Informática
En la Informática el azar interviene fundamentalmente en la seguridad de
la información (en el cifrado), ya sea para que otros no sean capaces de ver lo
que otros mandan, ya sea para salvaguardar la integridad de lo mandado. En
general en la actualidad se usan algoritmos de código abierto (todo el mundo
conoce el algoritmo) y el resultado del cifrado o el resumen nos parece obtenido
al azar, que es precisamente lo que queremos, para que otros no puedan en un
junio de 2008
Página 9 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
corto espacio de tiempo descifrar el mensaje si no poseen algún método que así
se lo permita, ligado al que el otro quiera que lo descifre. De hay el desarrollo de
los algoritmos de clave privada-clave pública. La pega a esto es que cada vez las
claves tienen que ser mas largas a medida que va aumentado la potencia de los
ordenadores, ya que lo que era seguro hace 10 años puede que hoy no se tarde
más de unos minutos o quizás segundos en descifrar lo que antes era
indescifrable (siempre utilizamos esta palabra con un significado relativo, todo
depende del tiempo). Además con el paso del tiempo estos algoritmos de código
abierto cada vez están más estudiados y se pueden encontrar vulnerabilidades,
en definitiva, el tiempo juega en contra en el “azar” en la informática. En definitiva
el azar-la seguridad, es una cuestión de tiempo.
junio de 2008
Página 10 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
OTROS CONCEPTOS RELACIONADOS CON LA ALEATORIEDAD
Incertidumbre. Básicamente indica falta de certeza respecto a la resolución de
un experimento o problema. Sin embargo es muy usado en Física con un
significado más preciso, para referirse a la falta de certeza de una medida, es
decir, a la existencia de un límite para determinar la exactitud con que se pueden
realizar medidas en el mundo físico. El paradigma de esta idea de incertidumbre
está en el famoso principio de incertidumbre de Heisemberg, que
básicamente dice que no se pueden medir la posición y velocidad (o momento
cinético) simultáneamente con la precisión que se desee. Mejor dicho, dice que la
precisión de una es inversamente proporcional a la de la otra. Por eso se
acostumbra a presentar este principio diciendo que “no se puede precisar la
posición y velocidad de una partícula simultáneamente”.
Indeterminismo. Utilizado para expresar la falta de determinismo para un
fenómeno, entendiendo por determinismo el hecho de que el fenómeno se
comporta según ciertas leyes bien conocidas que permiten predecir su desarrollo
y consecuencias. Otra vez se trata de poder determinar con certeza las
consecuencias un experimento. Un experimento azaroso es en cierta medida
indeterminista al no poder establecer con certeza su resultado.
Impredectibilidad. Expresa la imposibilidad de predecir las consecuencias de un
experimento o el comportamiento de un fenómeno con certeza. Expresa entonces
el indeterminismo del fenómeno, y por lo tanto la existencia de una incertidumbre
respecto al mismo.
Caos. Término acuñado en tiempos relativamente recientes, para clasificar a una
serie de fenómenos o sistemas dinámicos (sistemas que evolucionan en el
tiempo), en los que pese a que cada elemento involucrado se comporta de
acuerdo a leyes deterministas (e incluso sencillas), el sistema evoluciona en
forma aparentemente aleatoria (azarosa).
Irreductibilidad. Expresa la imposibilidad de reducir un cierto enunciado a una
consecuencia de los axiomas elementales en un sistema formal lógico. Hasta
junio de 2008
Página 11 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
tiempos recientes se tenía confianza que de un sistema formal bien definido,
como podría ser el cuerpo total de las matemáticas, sería posible extraer todas
las conclusiones válidas a partir de un conjunto reducido de axiomas
elementales, o expresado de otra forma, dado un enunciado válido este podría
reducirse a los axiomas. El hecho de que algo como esto no suceda introduce el
azar en un sistema formal, porque no es posible por ejemplo Gambling: “El azar
en la ciencia asegura, si la base axiomática está completa, porque puede
aparecer un enunciado irreductible que por lo tanto deba ser incorporado como
un nuevo axioma”. Fenómenos como el de la irreductibilidad están fuertemente
ligados al tratamiento formal del azar, y tienen como consecuencia directa en su
análisis, que por ejemplo no puede afirmarse con certeza si un número (o una
serie de ellos) es efectivamente aleatorio.
Aleatoriedad, “randomness”. Se refiere a la naturaleza azarosa de un
fenómeno, o una manifestación del mismo. Se habla con frecuencia de número
aleatorio o comportamiento aleatorio. El equivalente anglosajón es “randomness”,
y frecuentemente se usa el anglicismo “randómico” en español como sinónimo de
aleatorio.
Condiciones iniciales. Dado un fenómeno y una ley que permite hacer
predicciones sobre él (es decir, sobre los valores de ciertas magnitudes del
mismo), se llaman condiciones iniciales del sistema a los valores de aquellas
magnitudes que entradas a las ecuaciones que permiten conocer el valor de la
magnitud a predecir. Por ejemplo en mecánica clásica, dadas la posición y
velocidad de un móvil en un cierto instante t, es posible predecir a través de las
ecuaciones del movimiento, la posición y velocidad del móvil en cualquier otro
instante.
Errores de medida. Consideremos algo que nos enseñan a hacer desde
nuestras primeras experiencias de laboratorio: las medidas tienen errores, los
errores se estiman y se expresan con la medida tomada, los errores se propagan
al utilizar las medidas en ecuaciones para extraer otros resultados. Obsérvese
entonces de que estamos ante un fenómeno determinista del cual conocemos
con precisión la ley (ecuaciones) de la que se lo controla. Esto nos habilita a
junio de 2008
Página 12 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
hacer predicciones respecto al mismo. Consideremos el péndulo por ejemplo, su
periodo viene definido por la longitud de la cuerda y la aceleración de la
gravedad. Dada por conocida la aceleración de la gravedad g (y supondremos
que sin error), medimos el largo de la cuerda, pero lo haremos con cierto error.
Colocamos los datos en la ecuación, obtenemos un valor para el periodo del
péndulo, y propagando el error, obtenemos el error o incertidumbre de tal valor.
Esto quiere decir que en realidad no podemos predecir exactamente un valor de
T, sino un espacio de muestra continuo con centro en T. La teoría de errores
habla de eso justamente de cómo el error en las medidas introduce un error en el
resultado de las ecuaciones que se expande, define el espacio de muestra del
resultado y la distribución de probabilidad del mismo. Como vemos entonces todo
experimento regido por leyes deterministas pero con condiciones iniciales
medidas con error, se transforma en un experimento azaroso.
Para
cualquier
modelo
que
necesite
condiciones
iniciales
para
hacer
predicciones, al tener esa medida de condiciones iniciales errores, la predicción
es azarosa, qué tanto dependerá de qué tan grueso sea el error, y de cuál es el
comportamiento del sistema. En los sistemas dinámicos no lineales, la segunda
característica es de mucho mayor peso la primera, y esto origina comportamiento
caótico.
junio de 2008
Página 13 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
CRIPTOGRAFÍA Y NÚMEROS ALEATORIOS
Los algoritmos de llave pública, debido a su mayor orden de complejidad, suelen
ser empleados en conjunción con algoritmos de llave privada de la siguiente
forma: el mensaje primero se codifica empleando un algoritmo simétrico y la
llamada clave de sesión, que será diferente cada vez. Es la clave de sesión la
que se codifica empleando criptografía asimétrica. La única manera de que estas
claves sean seguras es que no exista ningún tipo de dependencia entre una clave
y la siguiente, esto es, que sean aleatorias. De aquí surge el interés por los
números aleatorios en Criptografía.
Más adelante se hablará de generadores pseudoaleatorios y diferentes tests de
aleatoriedad como el denominado test ψ2, que puede ser consultado en casi
cualquier libro de Estadística. Los generadores tradicionales no nos permiten
calcular secuencias realmente aleatorias, puesto que conociendo un número
obtenido con el generador podemos determinar cualquiera de los posteriores,
recordemos que cada elemento de la secuencia se emplea como semilla para el
siguiente. Si bien las series que producen estos generadores superan los test
estadísticos de aleatoriedad, son totalmente previsibles, y esa condición es
inadmisible para aplicaciones criptográficas. Un famoso ejemplo de este
problema ocurrió en una de las primeras versiones de Netscape, que resultaba
insegura debido al uso de un generador pseudoaleatorio demasiado previsible.
Vamos a caracterizar diferentes tipos de secuencias aleatorias, así como su
interés en Criptografía. También veremos cómo implementar un buen generador
aleatorio útil desde el punto de vista criptográfico.
Tipos de Secuencias Aleatorias. Secuencias pseudoaleatorias
En realidad es casi del todo imposible generar secuencias auténticamente
aleatorias en una computadora. Todos los generadores pseudoaleatorios
producen secuencias finitas y periódicas de números empleando operaciones
aritméticas y/o lógicas. Lo único que podremos conseguir es que estas
secuencias sean lo más largas posible antes de comenzar a repetirse y que
junio de 2008
Página 14 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
superen los tests estadísticos de aleatoriedad. En este sentido podríamos hablar
de:
-
Secuencias estadísticamente aleatorias: Secuencias que superan los
tests estadísticos de aleatoriedad. Un generador congruencial lineal
cumple esta propiedad, pero en Criptografía será del todo inútil, debido a
que cada valor de la secuencia se emplea como semilla para calcular el
siguiente, lo cual nos permite conocer toda la serie a partir de un único
valor. Supongamos que tenemos un sistema que se basa en emplear
claves aleatorias para cada sesión y usamos un generador de este tipo.
Bastaría con que una de las claves quedara comprometida para que todas
las comunicaciones pasadas y futuras pudieran ser descifradas sin
problemas. Incluso se ha demostrado que conociendo únicamente un bit
de cada valor de la secuencia, ésta puede ser recuperada completamente
con una cantidad relativamente pequeña de valores.
Secuencias criptográficamente aleatorias
El problema de las secuencias estadísticamente aleatorias, y lo que las hace
poco útiles en Criptografía, es que son completamente predecibles. Definiremos,
por tanto:
-
Secuencias criptográficamente aleatorias: Para que una secuencia
pseudoaleatoria sea criptográficamente aleatoria, ha de cumplir la
propiedad de ser impredecible. Esto quiere decir que debe ser
computacionalmente intratable el problema de averiguar el siguiente
número de la secuencia, teniendo total conocimiento acerca de todos los
números anteriores y del algoritmo de generación empleado. Existen
generadores pseudoaleatorios criptográficamente resistentes que cumplen
esta propiedad. Sin embargo no son suficientes, debido a que se necesita
una semilla para inicializar el generador. Si un atacante lograra averiguar
la semilla que estamos empleando en un momento dado, podría de nuevo
comprometer nuestro sistema. Necesitamos para ella valores realmente
impredecibles, de forma que nuestro adversario no pueda averiguarlos ni
junio de 2008
Página 15 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
tratar de simular el proceso de generación que nosotros hemos llevado a
cabo. Necesitamos, pues, valores auténticamente aleatorios.
Secuencias totalmente aleatorias
En realidad, como ya vimos anteriormente se puede pensar que no existen en el
Universo sucesos cien por cien aleatorios. En cualquier caso, y a efectos
prácticos, consideraremos un tercer tipo de secuencias pseudoaleatorias:
-
Secuencias aleatorias: Diremos que una secuencia es totalmente
aleatoria (o simplemente aleatoria) si no puede ser reproducida de manera
fiable. Llegados a este punto parece claro que nuestro objetivo no va a ser
generar
secuencias
aleatorias
puras,
sino
más
bien
secuencias
impredecibles y no reproducibles. Será suficiente, pues, con emplear un
generador criptográficamente aleatorio alimentado por una semilla
totalmente aleatoria.
Generación de Secuencias Aleatorias Criptográficamente Válidas
Para poder obtener secuencias a la vez impredecibles y no reproducibles, se
usan generadores de secuencias criptográficamente aleatorias, en conjunción
con algún mecanismo de recolección de bits aleatorios, que nos va a permitir
inicializar la semilla del generador. Un esquema de este tipo será seguro siempre
que se salvaguarde adecuadamente la semilla empleada. Veamos en primer
lugar algunos mecanismos para obtener los bits de la semilla, y después nos
centraremos en los generadores criptográficamente aleatorios propiamente
dichos.
Obtención de Bits Aleatorios
Como hemos dicho antes, las operaciones aritméticas y lógicas que realiza una
computadora son completamente deterministas. Sin embargo, los ordenadores,
como veremos a continuación, poseen elementos menos deterministas que
pueden ser útiles para nuestros propósitos.
junio de 2008
Página 16 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Para obtener n bits aleatorios bastaría con que una persona lanzara una moneda
al aire n veces y nos fuera diciendo el resultado. En la actualidad apenas hay
computadores que incorporen hardware específico para esta tarea, aunque existe
y sería bastante barato y sencillo incorporarlo a la arquitectura de cualquier
ordenador. Existen valores obtenidos del hardware de la computadora que suelen
proporcionar algunos bits de aleatoriedad. Parece razonable que leer en un
momento dado el valor de un reloj interno de alta precisión proporcione un
resultado más o menos impredecible, por lo que podríamos emplearlo para
recolectar valores aleatorios. Diferentes pruebas han demostrado sin embargo
que mecanismos de este tipo, que pueden ser útiles en ciertas arquitecturas y
sistemas operativos, dejan de servir en otras versiones del mismo sistema o en
arquitecturas muy similares, por lo que hemos de tener mucho cuidado con esto.
Algunas veces se ha propuesto el uso de los números de serie de los
componentes físicos (hardware) de un sistema, pero recordemos que estos
números tienen una estructura muy rígida, y a veces conociendo simplemente el
fabricante y la fecha aproximada de fabricación podemos adivinar casi todos sus
dígitos, por lo que van a ser demasiado predecibles. Tampoco son útiles las
fuentes públicas de información, como por ejemplo los bits de un CD de audio,
puesto que nuestros atacantes pueden disponer de ellas, con lo que el único
resto de aleatoriedad que nos va a quedar es la posición que escojamos dentro
del CD para extraer los bits.
Fuentes Adecuadas de Obtención de Bits Aleatorios
Cuando
no
disponemos
de
un
elemento
físico
en
la
computadora
específicamente diseñado para producir datos aleatorios, podemos emplear
algunos dispositivos hardware relativamente comunes en los ordenadores
actuales:
-
Tarjetas digitalizadoras de sonido o vídeo. Un dispositivo digitalizador de
audio (o vídeo) sin ninguna entrada conectada, siempre que tenga ganancia
suficiente, capta esencialmente ruido térmico, con una distribución aleatoria, y
por lo tanto puede ser apto para nuestros propósitos.
junio de 2008
Página 17 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
-
Unidades
de
Disco.
Las
unidades
de
disco
presentan
pequeñas
fluctuaciones en su velocidad de giro debido a turbulencias en el aire. Si se
dispone de un método para medir el tiempo de acceso de la unidad con
suficiente precisión, se pueden obtener bits aleatorios de la calidad necesaria.
Si no se dispone de una fuente fiable de bits aleatorios se puede efectuar la
combinación de varias fuentes de información menos fiables. Por ejemplo,
podríamos leer el reloj del sistema, algún identificador del hardware, la fecha y
la hora locales, el estado de los registros de interrupciones del sistema, etc.
Esto garantizará que en total se ha recogido una cantidad suficiente de bits
realmente aleatorios.
La mezcla de todas esas fuentes puede proporcionarnos suficiente aleatoriedad
para nuestros propósitos. Teniendo en cuenta que el número de bits realmente
aleatorios que se obtendrán como resultado final del proceso ha de ser
necesariamente menor que el número de bits recogido inicialmente, hemos de
buscar un mecanismo para llevar a cabo esa combinación. Emplearemos a tal
efecto las denominadas funciones de mezcla fuertes. Una función de mezcla es
aquella que toma dos o más fuentes de información y produce una salida en la
que cada bit es una función compleja y no lineal de todos los bits de la entrada.
Por
término
medio,
modificar
un
bit
en
la
entrada
debería
alterar
aproximadamente la mitad de los bits de salida. Podemos emplear diferentes
algoritmos criptográficos para construir este tipo de funciones:
-
Algoritmos Simétricos. Un algoritmo simétrico de cifrado puede ser útil
como función de mezcla de la siguiente forma: supongamos que usa una
clave de n bits, y que tanto su entrada como su salida son bloques de m
bits. Si disponemos de n+m bits inicialmente, podemos codificar m bits
usando como clave los n restantes, y así obtener como salida un bloque de
m bits con mejor aleatoriedad. Así, por ejemplo, si usamos DES, podemos
reducir a 64 bits un bloque de 120.
-
Funciones Resumen. Una función resumen puede ser empleada para
obtener un número fijo de bits a partir de una cantidad arbitraria de bits de
junio de 2008
Página 18 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
entrada.
junio de 2008
Página 19 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
¿CÓMO CONSEGUIR NÚMEROS PSEUDOALEATORIOS?
¿Cómo se consiguen números aleatorios? La cuestión, que en principio
parece sin importancia, es realmente complicada desde el punto de vista técnico
y también conlleva aspectos filosóficos 4
En la práctica necesitamos alguna forma de generar números aleatorios.
Según D. H. Lehmer propuso, se considera aleatoria cualquier sucesión de
números que cumpliera las dos condiciones siguientes:
- Cualquier persona que desconozca cómo se ha obtenido la sucesión
debe ser incapaz de predecir el siguiente término.
- La sucesión de números debe pasar con nota todos los tests de
aleatoriedad a que sea sometida: rachas, gaps, serial, etc.
Hay una célebre frase de R. Coveyou, atribuida también a Donald Knuth,
que aparece muchas veces por Internet en páginas dedicadas a chistes
científicos... aunque es real como la vida misma: “La generación de números
aleatorios es una cuestión demasiado importante para dejarla en manos del
azar”.
La principal característica de un número aleatorio, es que su probabilidad
de ser elegido es la misma probabilidad que tiene cualquier otro número dentro
de un intervalo, además la elección debe ser independiente, aunque con los
métodos que se aplican en la actualidad se puede considerar que la siguiente
secuencia 1001 1010 1001 0100 es más aleatoria que esta otra 0000 0000 0000
0000, aunque realmente ambas secuencias tienen la misma probabilidad de
darse, lo que tiene la primera de especial sobre la segunda es su grado de
desorden, su caos, es decir que lo que se mide no solo es la probabilidad sino la
entropía, sin embargo existe una enorme discusión sobre la aleatoriedad real, es
decir, cómo podemos estar seguros o cómo se puede demostrar que algún
“Una sucesión de dígitos absolutamente aleatoria es un concepto lógicamente contradictorio”
(Martin Gardner).
4
junio de 2008
Página 20 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
dispositivo es aleatorio, en realidad poco podríamos conseguir si nos restringimos
al concepto puro de aleatorio. Aunque gran parte de la probabilidad aplicada está
basada en la existencia de eventos aleatorios, por ejemplo, si se quiere encontrar
la preferencia de algún producto o partido político se procede a realizar una
encuesta, la cual no se realiza a toda la población sino que se elige una muestra
de tamaño considerable para que el intervalo de confianza sea satisfactorio, pues
bien, la herramienta estadística debe de suponer que la muestra tomada es
aleatoria, de otra forma los resultados estarán muy lejos de la realidad, para lo
cual existen métodos que permiten acercarse a que la muestra considerada sea
lo más aleatoria posible evitando las características más comunes de no
aleatoriedad. De esta forma podemos llegar al concepto de pseudoaleatoriedad.
Diremos entonces que un dispositivo genera números pseudoaleatorios si en lo
posible evita las principales características de no aleatoriedad. Por ejemplo, si
nuestro dispositivo generara una cadena de 10 dígitos binarios, y en
circunstancias normales nos da una salida de a=0000000001, entonces
podríamos pensar que existe una mayor probabilidad de que el dispositivo genera
al 0 que al 1, por lo que tener una mayor cantidad de ceros que de unos ó una
mayor cantidad de unos que de ceros será una característica de no aleatoriedad.
Se pueden encontrar varias características de éstas y tratar de evitarlas.
Existe también una prueba que detecta la mayor parte de estas
características, el método Universal de Maurer. La forma práctica de generar
números pseudoaleatorios para propósitos criptográficos es la siguiente:
Etapa1:
generar un primer número pseudoaleatorio que llamaremos semilla(
para generar la semilla de un dispositivo pseudoaleatorio basado en
software se deben de usar eventos que estén muy alejados de la
intervención humana; por ejemplo, el sistema de reloj, el teclado, el
ratón, el contenido de buffers de entrada y salida, o una combinación
de los anteriores.)
Etapa2:
generar una cadena de números pseudoaleatorios que provienen de
una función de un sólo sentido, en la práctica se usan MD5, SHA-1, la
función RSA, la función logaritmo en curvas elípticas, etc.
junio de 2008
Página 21 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
Prueba: Para probar que un dispositivo genera números peudoaleatorios, éste
debe de pasar una prueba que detecte las propiedades más conocidas
de no aleatoriedad, por ejemplo la prueba de Maurer.
Fundamentalmente existen dos formas de generar números aleatorios, la
más elemental es acudir a procedimientos de azar en los que se generan
variables aleatorias, es decir, no predecibles. La otra forma consiste en la
utilización de algoritmos matemáticos, los cuales generan secuencias de
números con aspecto aleatorio, pero cuya secuencia se conoce, estos números
pseudoaleatorios no cumplen con la condición de ser impredecibles. Para un
observador la serie parece aleatoria, pero para quien ha formulado el algoritmo la
serie está perfectamente definida. Es más, cada vez que se ejecuta el algoritmo
se obtiene la misma serie de valores. Sin embargo, esto último tiene una clara
ventaja desde el punto de vista de la investigación pues facilita la comparación.
Otra de las características más comunes de los generadores de números
aleatorios es que suelen generar valores cuya distribución es una uniforme 0,1 U
[0, 1]. Son los números pseudoaleatorios más fáciles de generar, presentando,
además, la ventaja de poder convertirlos en valores de cualquier otra distribución,
esto es lo que se denomina transformación inversa x = F-1(y), donde y 0
pertenece a R [0, 1].
Las principales características de un generador de aleatorios son la
longitud de la serie que es capaz de generar, (se obtienen un número finito de
números antes de volver a repetirse por completo), y la aleatoriedad de la misma.
La bondad de la aleatoriedad se estudia mediante la aplicación de test
estadísticos como los de ajuste, rachas, etc. (Caridad, 1987). Tradicionalmente
se consideraban una serie de propiedades deseables en un generador (Ríos y
Ríos, 1997): rapidez de ejecución, poco consumo de memoria, portabilidad,
sencillez de implementación, reproducibilidad y mutabilidad, periodo largo.
El método más utilizado en la actualidad consiste en la generación de un valor
Ri+1 como resto (función Mod) de una operación de división, que luego se
junio de 2008
Página 22 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
convierte a un valor uniforme U [0, 1] mediante una simple división. Los pasos
son los siguientes:
xn+1 = (axn + c) mod m
Las constantes X0, a, c, y m, se eligen para que el periodo sea máximo con:
i. c y m son primos entre sí
ii. a–1 es múltiplo de todos los primos que dividen a m
iii. si m es múltiplo de 4, a–1 también lo es
El parámetro m determina el número de cifras, se suelen tomar potencias de dos.
Cuando c = 0 el generador se denomina multiplicativo. Este tipo de métodos es
más rápido y, aunque se reduce un poco la longitud del ciclo, la aparición de
estos no es problema si m se elige suficientemente grande.
x0=2 a=3 c=2 m =16
12
10
8
6
4
2
0
x0=2 a=5 c=9 m =16
16
14
12
10
8
6
4
2
0
En la primera figura no se cumplen las condiciones mientras que en la
segunda sí.
El principal problema de este método es la aparición de auto correlación ya que
los valores de Xj, Xj+1 están relacionados por una expresión lineal. Para evitar
esto, algunos programas generan series de datos que luego son extraídos de
forma aleatoria.
El generador de números aleatorios de Turbo Pascal también lo sigue. En este
caso los parámetros son: m = 232 c = 1 a = 134775813.
Existen otros mucho métodos de generación de números pseudo aleatorios:
registro de desplazamiento, basados en los números de Fibonacci, método de
Fibonacci retardado, etc. Algunos de estos métodos pueden verse en la siguiente
dirección Web:
junio de 2008
Página 23 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
http://www.lawebdefisica.com/apuntsmat/num_aleatorios/
Una vez elegido un generador de acuerdo con las característica que posee el
paso siguiente consiste en contrastar dos hipótesis básicas en las aplicaciones
de la simulación, la primera de ellas es que los números generados sea
realmente aleatorios y la segunda, que se distribuyan según una función de
distribución preestablecida, la Normal, en la mayoría de los casos. Esto será
necesario siempre que no se disponga de información de valor sobre dichos
generadores.
La generación de valores uniformes es simple, sin embargo, en Cartografía
existen otras distribuciones de interés, entre ellas la Normal. La transformación
inversa es el proceso de generación de una muestra de valores x1, x2,...,xn según
una función de distribución dada F(X), a partir de una serie de números
pseudoaleatorios r1, r2,...,rn.
Un problema básico que nos encontramos habitualmente es el de obtener
secuencias de números uniformemente distribuidos en un intervalo [0,1].
Las diferentes posibilidades para resolver dicho problema son:
1.- Buscar en tablas de números aleatorios publicadas (libros, Internet...)
2.- Observar un proceso físico tal como la desintegración radiactiva, el ruido
eléctrico
3.- Los lenguajes de programación y las hojas electrónicas incluyen una función
para generarlos.
4.- Mediante algoritmos de generación de números aleatorios
junio de 2008
Página 24 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
Las principales ventajas de los generadores de números aleatorios son:
-
Rapidez
-
Comodidad
-
Reproducibilidad
-
Portabilidad
Y la desventaja fundamental:
-
Las secuencias obtenidas no son realmente aleatorias, ya que se obtienen
con operaciones deterministas. Solo podemos obtener secuencias pseudoaleatorias, que a su vez satisfacen algunos criterios de aleatoriedad
adecuados.
Los números generados deben cumplir ciertas características para que sean
válidos. Dichas características son:
1. Uniformemente distribuidos.
2. Estadísticamente independientes.
3. Su media debe ser estadísticamente igual a 1/2.
4. Su varianza debe ser estadísticamente igual a 1/12.
5. Su periodo o ciclo de vida debe ser largo.
6. Deben ser generados a través de un método rápido.
7. Generados a través de un método que no requiera mucha capacidad de
almacenamiento de la computadora.
Algunos de estos métodos de obtención de número aleatorios son:
junio de 2008
Página 25 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
GENERADOR ALEATORIO POR ENTRADA DE TECLADO
En más de una aplicación, para general claves se utiliza el teclado. Dichos
generadores toman sus valores a partir de las distintas entradas del teclado
realizadas por el usuario y de los tiempos empleados entre las sucesivas
pulsaciones de las teclas. En dicho generador, el valor aleatorio i–ésimo
generado depende de:
1. El valor del carácter i–ésimo introducido por teclado.
2. La diferencia de tiempo transcurrido entre la introducción del carácter ( i -1)–
ésimo y la introducción de carácter i–ésimo. Para el cálculo de esos tiempos
hemos utilizado la función times() de la biblioteca sys/times.h. Esta función
devuelve un valor proporcional al número de pulsos de reloj transcurridos
desde un instante arbitrario del pasado. En Linux, si el parámetro de la función
es el puntero NULL, este instante es el momento del último arranque del
sistema. El número de pulsos por segundo que recoge la función viene
señalado con el parámetro _SC_CLK_TCK.
3. El valor aleatorio previo generado.
GENERADORES DE FIBONACCI
Las grandes ventajas de estos generadores son que son generadores muy
rápidos que tienen un periodo muy largo. Los generadores de Fibonacci se basan
en una recurrencia del tipo
Ni=(Ni-r ⊗ Ni-s) mod m
donde r<s son enteros dados y ⊗ denota alguna de las operaciones +,-,x,^. Este
tipo de generador precisa iniciar (con otro generador) y mantener una lista de los
últimos s números generados.
Otros tipos de generadores los podemos encontrar en:
junio de 2008
Página 26 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
-
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
W.H. Press, S.A Teukolski, W.T. Vetterling i B.P. Flannery, Numerical Recipes
in C, Cambridge University Press
-
D.E. Knuth, The Art of computing programming, 2: Seminumerical Algorithms,
Addison-Wesley
junio de 2008
Página 27 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
CONTRASTES DE ALEATORIEDAD
La aproximación a los generadores de números aleatorios exige contrastar
ciertas propiedades estadísticas de sus salidas. Algunos de los contrastes son
genéricos y pueden utilizarse en la evaluación de generadores de variables
aleatorias. Muchos de estos contrastes se encuentran implementados en los
paquetes
estadísticos
comerciales
más
importantes.
Además
algunos
generadores disponen de una teoría analítica que conduce a contrastes teóricos
específicos.
Para aumentar su potencia, los contrastes siguientes pueden repetirse N veces.
La distribución empírica de los valores del estadístico pueden compararse con su
distribución teórica mediante, por ejemplo, el contraste de Kolmogorov-Smirnov.
CONTRASTE DE RACHAS
Dada la sucesión de observaciones X1, X2, ... , Xn, construimos la sucesión de
símbolos binarios definida mediante 1 si Xi < Xi+1, 0 si Xi> Xi+1. Definimos racha
creciente (decreciente) de longitud 1 a un grupo seguido de 1 números 1 o 0.
Intuitivamente, rechazamos la aleatoriedad con un número muy pequeño o muy
grande de rachas. De ahí se obtiene inmediatamente el contraste.
Otro procedimiento para definir rachas es el recuento de observaciones que se
sitúan a un mismo lado de la mediana. La distribución asintótica del número de
rachas, bajo la hipótesis de aleatoriedad, es
De donde se sigue, inmediatamente, un contraste.
El contraste de rachas da una idea del comportamiento aleatorio de los datos.
Rachas excesivamente largas o cortas significan dependencia y no aleatoriedad.
Aplicable a variables susceptibles de ser ordenadas. (para usar la tabla hace falta
que no haya repeticiones)
junio de 2008
Página 28 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Definición de racha: sucesión de valores situados por encima (racha positiva) o
por debajo de la mediana (racha negativa).
El máximo número de rachas en n/2 (z†z†z†...z†) y el mínimo número de
rachas en 2 (zzzz...††††)
k = número de signos positivos=número de signos negativos
longitud de una racha: Número de observaciones de esa sucesión.
Ejemplo: Para n=13
7
3
6
7
11 23 5
23 15 4
31 22 20
1. Obtención de la mediana:
Se ordena la muestra ordenada y se elije el valor central.
3
4
5
6
7
7
11 15 20 22 23 23 31
2. Obtención de las rachas:
• Los valores iguales a la mediana no intervienen (salvo casos)
• Se observa, en la muestra original, los valores que están por encima (+) y por
debajo de la mediana (-) :
7
-
3
-
6
-
7
-
11
23
+
5
-
23
+
15
+
4
-
31
+
22
+
20
+
k=6. Si observamos las tablas veremos que para que pueda considerarse con un
95% la independencia haría falta 6 rachas.
Si el tamaño de cualquiera de las dos muestras es mayor que 30, si
consideramos una muestra de tamaño n que ha sido dividida en dos categorías
(+) y (-) con n1 y n2 observaciones cada una. Se denomina racha a una sucesión
de valores de la misma categoría la distribución de R se aproxima a una normal
de media y varianza las siguientes:
junio de 2008
Página 29 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
y se considera el estadístico
donde R es el número de rachas. Se rechaza la hipótesis nula (aleatoriedad) si:
En este ejemplo:
Si nos encontrásemos con:
1000111010011010011100101010110101100011011000110100111010101011
tendríamos: n1=34 y n2=30 con 21 rachas de unos y 20 rachas de ceros, es decir
R=41. Donde μR=32,875 y σ2R=15,6212798. ZR=0,52012384 no podemos afirmar
con una fiabilidad adecuada (95%) que se trata de números al azar, ya que Z1α/2=1,96,
y no se cumple que ZR sea mayor que Z1-α/2
si agrupamos de dos en dos tendremos:
1000111010011010011100101010110101100011011000110100111010101011
(2 0 3 2 2 1 2 2 1 3 0 2 2 2 3 1 1 2 0 3 1 2 0 3 1 0 3 2 2 2 2 3 en base cuatro)
tendríamos: k=7 y el número de rachas=12 donde n=32, podemos afirmar con
una fiabilidad adecuada(99´5%) que se trata de números al azar. Mediana 2
si lo agrupamos de cuatro en cuatro tendremos:
1000111010011010011100101010110101100011011000110100111010101011
(8 E 9 A 7 2 A D 6 3 6 3 4 E A B en hexadecimal)
tendríamos: k=8 y el número de rachas=6 no podemos afirmar con una fiabilidad
adecuada(apróx. 10%) que no se trata de números al azar. Mediana 8,5
y si lo agrupamos de ocho en ocho tendremos:
1000111010011010011100101010110101100011011000110100111010101011
(8E 9A 72 AD 63 63 4E AB en base 256)
tendríamos: k=4 y el número de rachas=5 no podemos afirmar con una fiabilidad
adecuada(inferior al 95%) que se trata de números al azar Mediana 80h.
junio de 2008
Página 30 de 55
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Se ha aplicado el test de rachas según: Daniel Peña
Sea k el número de signos + presentes en la secuencia –que será por hipótesis
igual al de signos menos- e igual a (n-1)/2 si n es impar y no hay observaciones
repetidas. Puede demostrarse que el número total de rachas es una muestra de n
observaciones independientes y sigue una distribución aproximadamente normal
(si n>40) con parámetros μ = k+1 y σ2=k(k-1)/(2k-1). Para valores menores a 40
utilizar tabla.
Se contabiliza el número de rachas y se estudia su aleatoriedad mediante el
establecimiento de una hipótesis nula en la que se supone un comportamiento
normal asintótico según una Normal.
TEST DE WALD-WOLFOWITZ
Permite contrastar la hipótesis nula de que dos muestras independientes
proceden de poblaciones con distribuciones continuas idénticas contra la
hipótesis alternativa de que las poblaciones difieren en algún aspecto, que puede
ser tanto la tendencia central como de dispersión y de asimetría.
Para realizar el contraste se combinan las observaciones de ambas muestras,
ordenándolas de menor a mayor, y se halla el número de rachas o valores
sucesivos de una misma muestra en la secuencia ordenada. El test es una
prueba que compara la distribución de dos muestras que no deben tener
necesariamente el mismo tamaño, partiendo de la hipótesis nula de que la
distribución de rangos es aleatoria, es decir, las muestras son homogéneas.
Valores muestra 1:
1
5
6
2
8
Valores muestra 2:
2
8
6
4
2
9
3
Los datos de las dos muestras se ordenan conjuntamente de forma ascendente y
a cada grupo de valores se les asigna un valor de racha. Las rachas son
secuencias de valores del mismo grupo, cuando las muestras han sido
ordenadas.
junio de 2008
Página 31 de 55
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Valores ordenados
Número de racha
1
2
2
2
3
4
5
6
6
8
8
9
1
1
2
2
2
2
3
3
4
5
6
6
Si dos muestras presentan una misma distribución cabe esperar que, en el
ordenamiento de datos de menor a mayor, ambas muestras estén muy
mezcladas (aleatoriazadas), es decir, que el número de rachas sea alto. Con una
tabla de rachas se determina si el número de rachas encontradas es
significativamente grande y se puede suponer la aleatoriedad, tal y como ocurre
en el test de rachas
El estadístico de prueba es el número de rachas, R. Si los tamaños de las
muestras son, el valor de R está comprendido entre 2 y n1 + n2. Si la hipótesis
nula es cierta, las observaciones de ambas muestras aparecerán muy
mezcladas, y en la secuencia ordenada habrá un gran número de rachas; por el
contrario, si ambas poblaciones de origen difieren las observaciones de cada
muestra tenderán a aparecer juntas y el número de rachas será pequeño.
Cuando ambos tamaños muestrales son superiores a 10 la distribución de R es
aproximadamente normal de parámetros:
La decisión se basa en el valor tipificado de R, que tiene distribución
aproximadamente normal tipificada. Aunque para realizar este contraste es
suficiente que las variables se midan en una escala ordinal, la presencia de
empates, que este tipo de escala favorece, afecta negativamente a la fiabilidad
del contraste y en tal caso es preferible utilizar la prueba de Kolmogorov-Smirnov.
TEST DE ADHERENCIA
Contraste de la Chi2 es un contraste que permite determinar la bondad del ajuste
entre dos funciones. Es un contraste débil, por lo que permite asegurar el rechazo
pero no la aceptación. La hipótesis nula consiste en suponer que la muestra de
junio de 2008
Página 32 de 55
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
valores {X1,... Xn} distribuidos según una función FX(x) desconocida es semejante
a otra función F(x) conocida:
El estadístico se construye mediante la comparación de las frecuencias
observadas con las esperadas. Para ello se deberán considerar distintas clases o
intervalos. El estadístico se distribuye asintóticamente como una CHI2 con k-r-1
grados de libertad (r = número de parámetros que se estiman).
Otra alternativa es el contraste de Kolmogorov-Smirnov. Este contraste también
permite comparar el ajuste entre la función de distribución observada y la función
de distribución esperada. La función de distribución observada se calculará a
partir de las frecuencias acumuladas de las observaciones. Este test consiste en
medir la diferencia entre los valores observados y esperados, la cual deberá ser
menor que una cierta tolerancia que depende del número de datos y del nivel de
significación con que se realice el Test.
CONTRASTE DE KOLMOGOROV – SMIRNOV
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
Tiene como ventaja que mide las diferencias existentes entre las frecuencias
relativas acumuladas de las dos muestras, por lo que se detectan diferencias no
solo en la tendencia central, sino también en la dispersión y simetría de las
muestras.
La eficacia de este test es alta con número de datos reducidos, pero ésta tiene a
decrecer cuando se aumenta el tamaño de muestra.
Esta prueba estadística es usada para contrastar H0 de que las dos muestras
proceden de una misma población, por tanto exige comparar dos funciones de
distribución muestral, observando la diferencia máxima entre ellas. Para el
calculo del estadístico hay que seguir los siguiente pasos:
1.- Ordenas las observaciones de cada muestra y distribuirlas en clases.
2.- Determinar las frecuencias acumuladas de las clases en cada muestra.
junio de 2008
Página 33 de 55
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
3.- Buscar la máxima diferencia entre la frecuencia acumulada de ambas
muestras.
4.- Determinar los valores críticos de Dmax en una tabla.
5.- Si Dmax es mayor que el valor crítico, se rechaza la hipótesis nula de que las
muestras son iguales
Consideramos el caso en que F0 es continua. La función de distribución empírica
de una muestra X1, X2, ..., Xn se define como:
Fn(x) =
#{Xi<=x}
n
Bajo la hipótesis nula Ho: FX(x) = F0(x) esperamos que Fn se aproxime a F0.
Definimos el estadístico bilateral de Kolmogorov-Smirnov
Dn = sup |Fn(x) – F0(x)|
La distribución exacta de Dn está tabulada para valores seleccionados de n
40
y del nivel de significación . Para muestras grandes, se utiliza la distribución
asintótica de Dn.
junio de 2008
Página 34 de 55
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
PRUEBA DE FRECUENCIA.
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
También llamada prueba de monobit, determina si el número de ceros y el número
de unos en la secuencia que llamaremos s son aproximadamente los mismos. Si
llamamos n0 y n1 al número de ceros y de unos en una secuencia binaria. El valor
estadístico a contrastar es:
X1=
(n0-n1)2
n
que sigue una distribución Chi cuadrado con un grado de libertad.
Esta prueba se basa en el primer postulado de Golomb que veremos un poco
más adelante.
PRUEBA DE SERIES (PRUEBA DE LOS DOS BITS).
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
Busca y cuenta el número de ocurrencias de las cuatro subsecuencias: 00, 01, 10,
11 y estudia si su distribución es tal y como se esperaría de una secuencia obtenida
por un generador verdaderamente aleatorio. Para este caso, se definen los
parámetros n00, n01, n10, n11 como el número de ocurrencias de cada una de las
cuatro subsecuencias anteriores. Se verifica que: n00+ n01+ n10+ n11 = N-1. Siendo el
valor estadístico de contraste:
X2 =
4
2
2
2
2
2
( n 00
+ n 01
+ n 10
+ n 11
) – (n 02 +n 12 ) + 1
N −1
n
que sigue una distribución Chi cuadrado con dos grados de libertad.
junio de 2008
Página 35 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
PRUEBA DE PÓQUER.
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
Estudia todas las subsecuencias diferentes de un tamaño m que se determina
previamente. El valor m es el mayor entero positivo que verifica que [m/n] ≥ 5⋅(2m).
Se toma entonces el valor k = [m/n] y se divide la secuencia s en k partes no
solapadas, cada una de ellas de longitud m. Se definen 2m parámetros ni (1≤ i ≤ 2m)
para almacenar el número de ocurrencias de cada una de las secuencias de la
longitud indicada. Esta prueba determina si cada una de las posibles secuencias de
longitud m aparecen un número semejante de veces. El valor estadístico estudiado
es:
X3 =
2m
k
⎛ 2 2⎞
⎜ ∑ ni ⎟ − k
⎜ i =1 ⎟
⎝
⎠
m
que sigue una distribución Chi cuadrado con 2m – 1 grados de libertad.
PRUEBA DE RACHAS.
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
En esta prueba se toma una secuencia binaria s y calcula el número de
subsecuencias de s formadas por una determinada cantidad consecutiva de ceros o
de unos, y que no viene ni seguida ni precedida por el mismo dígito. Si la racha está
formada por ceros se conoce como hueco, mientras que si está formada por unos
se conoce como bloque.
Para determinar la longitud de las diferentes rachas, se calculan los sucesivos
parámetros ei definidos según la siguiente expresión:
junio de 2008
Página 36 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
donde k es el mayor valor de i que verifica ei ≥ 5. Se definen además los parámetros
Hi y Bi que almacenan, respectivamente, el número de huecos y el número de
bloques de longitud i. El valor estadístico a contrastar es:
PRUEBA DE AUTOCORRELACIÓN.
(Es una de las pruebas que debe pasar una secuencia de bits para que esta se considere aleatoria)
El propósito de este test es analizar la correlación entre la secuencia s y la
secuencia s' obtenida de desplazar sin rotación la secuencia s un número
determinado de posiciones (d) a derecha o a izquierda. El número de bits de s
que no coinciden con la correspondiente secuencia desplazada d posiciones se
denota por A(d) y se calcula por la siguiente expresión
donde
es la operación "or exclusiva". El valor estadístico a contratar es:
que sigue una distribución normal N (0,1). Para valores pequeños de A(d) se
recomienda repetir la prueba para diferentes desplazamientos.
junio de 2008
Página 37 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
TESTS ESTADÍSTICO UNIVERSAL DE MAURER.
Otro de los tests ampliamente recomendado para analizar la aleatoriedad de una
secuencia de bits, es el conocido como test universal de Maurer, que permite
detectar algunas deficiencias en la supuesta aleatoriedad de un generador. Para
realizar el test de Maurer hay que calcular el valor estadístico para la secuencia
de salida s. Se escoge un valor para un parámetro L dentro del intervalo [6,16].
La secuencia se divide en bloques no superpuestos de L bits. El número total de
bloques necesario es igual a Q + K, donde el mínimo valor para Q recomendado
es 2L · 10 y el mínimo valor de K recomendado es 2L ·1000. En total, para el caso
L = 16, hay que descomponer la serie en 2L · 1010 (es decir, 66.191.360) bloques
de 16 bits cada uno, lo que supone un total de 1.059.061.760 bits. La principal
desventaja del test de Maurer es, por tanto, la enorme cantidad de bits (más de
mil millones) que se requieren para poder someter el generador a estudio. Por
eso, este test queda habitualmente reservado para los generadores de
secuencias de bits pseudoaleatorios (PRBG, PseudoRandom Bit Generator).
El test obtiene un valor estadístico Xn que sigue una distribución Normal. A partir
de la media esperada, de la desviación estándar calculada y del nivel de
significación se obtienen los valores umbrales de aceptación o de rechazo k1 y k2.
El valor estadístico debe quedar entre estos dos valores calculados. El proceso
se realiza para diferentes valores del parámetro L (entre 6 y 16). El valor del nivel
de significación α que se recomienda está entre 0,001 y 0,01. Para valores
recomendados de L, al tomar el último extremo L = 16, se tiene que (tomando un
valor de α=0,005) k2 – k1 = 2.xασ =0,000853. El valor estadístico calculado
después de 65.536.000 sumas y logaritmos, debe caer en un intervalo de valores
verdaderamente estrecho.
junio de 2008
Página 38 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
CONTRASTE
El contraste es de bondad de ajuste. Es poco potente, por lo que permite justificar
el rechazo de una hipótesis, pero proporciona escaso soporte a su aceptación. El
estadístico del contraste es:
cuya distribución asintótica es una
donde r son los parámetros estimados y
la aproximación se acepta si min ei > 5
CONTRASTE DE PERMUTACIONES
Separamos las observaciones en k-uplas
La k-upla general se escribe
Las ordenamos crecientemente y consideramos la ordenación correspondiente
de los subíndices j. Bajo la hipótesis de la probabilidad de que dos números sean
iguales es nula, hay k! ordenaciones posibles. Bajo la hipótesis de
independencia, todas las permutaciones son equiprobables, con probabilidad
1/k!. Entonces es inmediato aplicar un contraste
asintótica
con k! clases, distribución
frecuencias esperadas r / k!, donde r es el número de k-uplas y
frecuencias observadas el número de veces que aparece cada ordenación.
junio de 2008
Página 39 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
CONTRASTE DE HUECOS
Fijamos dos valores y con 0 < < < 1. La sucesión presenta un hueco de
longitud
m
si
Bajo
la
hipótesis
de
aleatoriedad de la serie, la longitud m de los huecos sigue una distribución
geométrica de parámetro
, es decir,
La hipótesis de aleatoriedad implica independencia de las longitudes de los
huecos y podemos aplicar un contraste
basado en las comparaciones de los
números observados y esperados de huecos de longitud m.
junio de 2008
Página 40 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
ANALISIS DE ALEATORIEDAD
Como es sabido, no se dispone de ninguna prueba matemática que asegure de
forma categórica la aleatoriedad de una secuencia de bits. No obstante, si las
secuencias obtenidas mediante un determinado generador superan todas las
pruebas diseñadas para tal fin, entonces es aceptado como generador de
secuencias aleatorias. A continuación se presentan las pruebas fundamentales de
aleatoriedad para dicho análisis.
Postulados de Golomb
Los postulados de Golomb, tienen un importante interés histórico puesto
que fueron los primeros definidos y usados para establecer las principales
condiciones necesarias para que una secuencia de bits pudiera ser considerada
como aleatoria. No obstante, en la actualidad estas condiciones no se consideran
suficientes, aunque si necesarias para poder aceptar como aleatoria una
secuencia dada. Los postulados de aleatoriedad de Golomb son los siguientes:
1. En la secuencia binaria s de longitud n (sn), el número de unos debe diferir
del número de ceros, como máximo, en una unidad.
Sn=1000111010011010011100101010110101100011011000110100111010101011
En este caso el número de unos es 34 y el número de ceros 30, no
cumpliéndose por tanto este primer postulado. Si lo transformamos un poco,
cambiando dos unos por dos ceros ya se cumpliría:
Sn=1000111010011010001100101010110101100011011000110100111010001011
Puede comprobarse que se cumple este postulado mediante el test de
frecuencia o monobit.
Veamos ahora el segundo postulado
2. En la secuencia sn, al menos la mitad de las cadenas de dígitos iguales tiene
longitud uno, al menos una cuarta parte de esas cadenas tiene longitud dos,
al menos una octava parte tiene longitud tres, etc. Además para cada una de
las longitudes se dispone de tantas cadenas de unos como de ceros.
junio de 2008
Página 41 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
En
nuestro
caso
con
Sn=1000111010011010001100101010110101100011011000110100111010001011
Tenemos 39 cadenas
De ceros: 19
De unos: 20
Cadenas de longitud 1:
De ceros: 11 de 19 (>= 50%)
De unos: 10 de 20 (>= 50%)
Cadenas de longitud 2:
De ceros: 3 de 19 (menos del 25%, ya no se cumple)
De unos: 7 de 19 (mas del 25%)
Bastaría trastocar un poco el array para que se cumpliese
Sn=1000111010011010001100101100110101100011011000110100111010001011
Sn=1000111010011010001100101100110101100011011000110100111001001011
Sn=1000111010011010001100101010110101100011011000110100111001001011
Simplemente al transponer estos dos valores:
Tendríamos:
Cadenas de longitud 1:
De ceros: 10 de 19 (>=50%)
De unos: 10 de 20 (>= 50%)
Cadenas de longitud 2:
De ceros: 5 de 19 (>= 25%)
De unos: 7 de 20 (>= 25%)
Cadenas de longitud 3:
De ceros: 4 de 19 (>= 12,5%)
De unos: 2 de 20 (algo menos del 12,5%)
Al final podríamos modificar un poco la ristra para que siguiese cumpliéndose la
hipótesis.
Importante si observamos los dos bits marcados en verde, solo existen cuatro
posibilidades y en tres de ellas se rechazaría el postulado. Es decir en el 75% de
los casos se rechaza.
Puede comprobarse que se cumple este postulado mediante el test de series(
de los dos bits), test de rachas y el test del póquer.
junio de 2008
Página 42 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
Veamos el tercer postulado
3. La función de correlación C(t) tiene dos valores. Esto es, para algún valor K
Puede comprobarse que se cumple este postulado mediante el test de
autocorrelación.
junio de 2008
Página 43 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
EL CAOS
El caos aparece en situaciones muy dispares, en la frecuencia del goteo de un
grifo, en el movimiento de los planetas, o inclusive, en el comportamiento de los
consumidores.
Un ejemplo clásico es el goteo de un grifo: si el caudal es muy pequeño las gotas
caen de forma periódica. La frecuencia a la a que caen las gotas se dobla si
abrimos un poco el grifo. Cuando lo abrimos más vuelve a doblarse hasta que
llega un momento en el que las gotas caen de modo completamente caótico.
Científicos de la UC Santa Cruz encontraron caos en el goteo del agua de un
grifo. Tomando datos de un grifo que gotea y tomando datos de los periodos de
tiempo, descubrieron que a cierta velocidad de flujo, el goteo no tenía lugar en
tiempos iguales. Cuando realizaron los gráficos de los datos, descubrieron que el
goteo en efecto seguía un patrón.
http://www.sc.ehu.es/sbweb/fisica/oscilaciones/gota/gota.htm#Representación%20gráfica
Dualidades básicas en las Matemáticas del Caos.
junio de 2008
Determinismo
Indeterminismo
Certidumbre
Incertidumbre
Certeza
Probabilidad
Predecibilidad
Impredecibilidad
Orden
Caos
Continuidad
Discontinuidad (catástrofe)
Regularidad
Irregularidad
Periodicidad
Aperiodicidad
Linealidad
No-linealidad
Estabilidad
Inestabilidad
Equilibrio
Desequilibrio
Página 44 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Estática
Dinámica
Insensibilidad a condiciones
Sensibilidad a condiciones
iniciales
iniciales
Cuantitativo
Cualitativo
Atractor simple
Atractor extraño
Geometría euclidiana
Geometría fractal
Uniformidad
Turbulencia
Permanente
Disipativo
Simplicidad
Complejidad
Información
Entropía
Reversibilidad
Irreversibilidad
Abstracción-formalismo
Intuición geométrica
Lineal simple
Bifurcación
Dinámica tradicional
Sinergética
junio de 2008
Página 45 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
CONCLUSIONES
Existen diferentes tipos de generadores de secuencias de números aleatorios, los
cuales pueden ser implementados por hardware o por software, con mejores o
peores propiedades estadística, con mayor o menor dificultad a la hora de su
implementación, con correlaciones más o menos altas entre los números generados
en la secuencia. Además del hecho de que la secuencia de números generados es
totalmente predecible, esto los hace ineficientes para la generación segura de bits
aleatorios para propósitos de seguridad, no así para otro tipo de aplicaciones, por
ejemplo en simulación.
Que lo que en un momento dado puede ser seguro poco después puede dejar de
serlo, así pasa por ejemplo con la longitud de las llaves que se usan en el sistema
RSA, que han ido aumentado paulatinamente. Ya que tal y como podemos observar
en la siguiente tabla según va aumentando la velocidad de proceso disminuye el
tiempo necesario para probar todas esas llaves.
Tamaño de
Número de llaves
la llave (bits) alternativas
Tiempo necesario Tiempo necesarioTiempo necesario
106 μs
107 μs
109 μs
32
232
4,3 ms
0,43 ms
4,3 μs
56
256
20 horas
2 horas
72 segundos
128
2128
1019 años
1018 años
1016 años
En definitiva a medida que van aumentado la velocidad de proceso y se usan
técnicas de afinado que no usan todas las llaves es posible que lo que antes era
casi imposible, se convierta en posible en poco segundos. Ya que hoy en días
podemos poner a trabajar probando claves a miles de ordenadores con una
potencia que no parecía imaginable hace 20 ó 30 años.
Para generar la semilla de un dispositivo pseudoaleatorio basado en software se
deben de usar eventos que estén muy alejados de la intervención humana, por
ejemplo, el sistema de reloj, el teclado, el ratón, el contenido de buffers de entrada y
salida, o una combinación de los anteriores.
junio de 2008
Página 46 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
Para generar la cadena pseudoaleatoria se debe de hacer uso de funciones de un
solo sentido como las funciones Hash: MD5, SHA-1,..., la función RSA, la función
logaritmo en curvas elípticas, etc.
Para probar que un dispositivo genera números pseudoaleatorios, éste debe de
pasar una prueba que detecte las propiedades más conocidas de no aleatoriedad,
por ejemplo la prueba de Maurer.
Cualquier generador de números aleatorios tendrá que superar los test
estadísticos básicos. Considerando, por tanto, que dicho algoritmo es válido para
generar secuencias que se pueden tomar como realmente aleatorias. O al menos
que supera un porcentaje fijo de test, aunque haya alguno que no pase.
Si analizamos un generador con un comportamiento determinista, en el que no ha
intervenido ningún factor externo (pulsación aleatoria de teclado y cadencia
aleatoria de pulsación) de modo que toda la secuencia generada ha dependido
únicamente de un valor inicial. Podría darse el caso de que utilizásemos el test
universal de Maurer, y que los resultados obtenidos mediante ese test fuesen
aparentemente buenos. Pero sólo aparentemente, puesto que la semilla inicial
aporta muy poca entropía a la serie total.
junio de 2008
Página 47 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
TABLA PERCENTILES TEST DE RACHAS
Percentiles de la distribución del número de rachas (r) en la hipótesis de
independencia. El número de signos más –igual al de signos menos- es k. Para k>50
utilizar la aproximación siguiente: el número de rachas es normal con parámetros:
μ=k+1 y σ2=k(k-1)/(2k-1)
k
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
junio de 2008
r0,005
r0,01
r0,025
r0,05
2
3
3
4
5
5
6
7
7
8
9
10
10
11
12
13
14
14
15
16
17
18
18
19
20
21
22
23
23
24
25
26
27
28
2
2
3
4
4
5
6
7
7
8
9
10
10
11
12
13
14
14
15
16
17
18
19
19
20
21
22
23
24
24
25
26
27
28
29
2
3
3
4
5
6
7
7
8
9
10
11
11
12
13
14
15
16
16
17
18
19
20
21
22
22
23
24
25
26
27
28
29
30
30
2
3
3
4
5
6
6
7
8
9
10
11
11
12
13
14
15
16
17
17
18
19
20
21
22
23
24
25
25
26
27
28
29
30
31
32
r0,95
4
6
7
8
10
11
12
13
15
16
17
18
19
20
22
23
24
25
26
27
28
30
31
32
33
34
35
36
37
38
40
41
42
43
44
45
46
47
r0,975
4
6
8
9
10
12
13
14
15
16
18
19
20
21
22
24
25
26
27
28
29
31
32
33
34
35
36
37
39
40
41
42
43
44
45
46
47
49
r0,990
4
6
8
9
11
12
13
15
16
17
18
20
21
22
23
25
26
27
28
29
31
32
33
34
35
36
38
39
40
41
42
43
45
46
47
49
49
50
r0,995
4
6
8
10
11
12
14
15
16
18
19
20
22
23
24
25
26
28
29
30
31
33
34
35
36
37
39
40
41
42
43
44
46
47
48
50
50
51
Página 48 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
40
41
42
43
44
45
46
47
48
49
29
29
30
31
32
33
34
35
35
36
30
31
31
32
33
34
35
36
37
38
31
32
33
34
35
36
37
38
38
39
33
34
35
35
36
37
38
39
40
41
48
49
50
52
53
54
55
56
57
58
50
51
52
53
54
55
56
57
59
60
51
52
54
55
56
57
58
59
60
61
52
54
55
56
57
58
59
60
62
63
50
37
38
40
42
59
61
63
64
junio de 2008
Página 49 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
TABLA DE LA NORMAL
Tabla de la distribución normal tipificada N(0,1)
Proporciona el área a la izquierda para valores positivos de z
z
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.0
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4.0
4.1
4.2
4.3
4.4
0'00
0.50000
0.53983
0.57926
0.61791
0.65542
0.69146
0.72575
0.75804
0.78814
0.81594
0.84134
0.86433
0.88493
0.90320
0.91924
0.93319
0.94520
0.95543
0.96407
0.97128
0.97725
0.98214
0.98610
0.98928
0.99180
0.99379
0.99534
0.99653
0.99744
0.99813
0.99865
0.99903
0.99931
0.99952
0.99966
0.99977
0.99984
0.99989
0.99993
0.99995
0.99997
0.99998
0.99999
0.99999
0.99999
0'01
0.50399
0.54380
0.58317
0.62172
0.65910
0.69497
0.72907
0.76115
0.79103
0.81859
0.84375
0.86650
0.88686
0.90490
0.92073
0.93448
0.94630
0.95637
0.96485
0.97193
0.97778
0.98257
0.98645
0.98956
0.99202
0.99396
0.99547
0.99664
0.99752
0.99819
0.99869
0.99906
0.99934
0.99953
0.99968
0.99978
0.99985
0.99990
0.99993
0.99995
0.99997
0.99998
0.99999
0.99999
0.99999
0'02
0.50798
0.54776
0.58706
0.62552
0.66276
0.69847
0.73237
0.76424
0.79389
0.82121
0.84614
0.86864
0.88877
0.90658
0.92220
0.93574
0.94738
0.95728
0.96562
0.97257
0.97831
0.98300
0.98679
0.98983
0.99224
0.99413
0.99560
0.99674
0.99760
0.99825
0.99874
0.99910
0.99936
0.99955
0.99969
0.99978
0.99985
0.99990
0.99993
0.99996
0.99997
0.99998
0.99999
0.99999
1.00000
0'03
0.51197
0.55172
0.59095
0.62930
0.66640
0.70194
0.73565
0.76730
0.79673
0.82381
0.84849
0.87076
0.89065
0.90824
0.92364
0.93699
0.94845
0.95818
0.96637
0.97320
0.97882
0.98341
0.98713
0.99010
0.99245
0.99430
0.99573
0.99683
0.99767
0.99831
0.99878
0.99913
0.99938
0.99957
0.99970
0.99979
0.99986
0.99990
0.99994
0.99996
0.99997
0.99998
0.99999
0.99999
1.00000
0'04
0.51595
0.55567
0.59483
0.63307
0.67003
0.70540
0.73891
0.77035
0.79955
0.82639
0.85083
0.87286
0.89251
0.90988
0.92507
0.93822
0.94950
0.95907
0.96712
0.97381
0.97932
0.98382
0.98745
0.99036
0.99266
0.99446
0.99585
0.99693
0.99774
0.99836
0.99882
0.99916
0.99940
0.99958
0.99971
0.99980
0.99986
0.99991
0.99994
0.99996
0.99997
0.99998
0.99999
0.99999
1.00000
0'05
0.51994
0.55962
0.59871
0.63683
0.67364
0.70884
0.74215
0.77337
0.80234
0.82894
0.85314
0.87493
0.89435
0.91149
0.92647
0.93943
0.95053
0.95994
0.96784
0.97441
0.97982
0.98422
0.98778
0.99061
0.99286
0.99461
0.99598
0.99702
0.99781
0.99841
0.99886
0.99918
0.99942
0.99960
0.99972
0.99981
0.99987
0.99991
0.99994
0.99996
0.99997
0.99998
0.99999
0.99999
1.00000
0'06
0.52392
0.56356
0.60257
0.64058
0.67724
0.71226
0.74537
0.77637
0.80511
0.83147
0.85543
0.87698
0.89617
0.91309
0.92786
0.94062
0.95154
0.96080
0.96856
0.97500
0.98030
0.98461
0.98809
0.99086
0.99305
0.99477
0.99609
0.99711
0.99788
0.99846
0.99889
0.99921
0.99944
0.99961
0.99973
0.99981
0.99987
0.99991
0.99994
0.99996
0.99998
0.99998
0.99999
0.99999
1.00000
0'07
0.52790
0.56749
0.60642
0.64431
0.68082
0.71566
0.74857
0.77935
0.80785
0.83398
0.85769
0.87900
0.89796
0.91466
0.92922
0.94179
0.95254
0.96164
0.96926
0.97558
0.98077
0.98500
0.98840
0.99111
0.99324
0.99492
0.99621
0.99720
0.99795
0.99851
0.99893
0.99924
0.99946
0.99962
0.99974
0.99982
0.99988
0.99992
0.99995
0.99996
0.99998
0.99998
0.99999
0.99999
1.00000
0'08
0.53188
0.57142
0.61026
0.64803
0.68439
0.71904
0.75175
0.78230
0.81057
0.83646
0.85993
0.88100
0.89973
0.91621
0.93056
0.94295
0.95352
0.96246
0.96995
0.97615
0.98124
0.98537
0.98870
0.99134
0.99343
0.99506
0.99632
0.99728
0.99801
0.99856
0.99897
0.99926
0.99948
0.99964
0.99975
0.99983
0.99988
0.99992
0.99995
0.99997
0.99998
0.99999
0.99999
0.99999
1.00000
0'09
0.53586
0.57535
0.61409
0.65173
0.68793
0.72240
0.75490
0.78524
0.81327
0.83891
0.86214
0.88298
0.90147
0.91774
0.93189
0.94408
0.95449
0.96327
0.97062
0.97670
0.98169
0.98574
0.98899
0.99158
0.99361
0.99520
0.99643
0.99736
0.99807
0.99861
0.99900
0.99929
0.99950
0.99965
0.99976
0.99983
0.99989
0.99992
0.99995
0.99997
0.99998
0.99999
0.99999
0.99999
1.00000
Tabla Generada Por D. Francisco Álvarez González ((Universidad de Cádiz 1996)
junio de 2008
Página 50 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
ALGORITMO DE UN GENERADOR ALEATORIO POR ENTRADA
DE TECLADO
VARIABLES: unsigned long t_1,t_2,rot
unsigned short aleat
unsigned char letra
VALORES INICIALES:
t_1 = times(NULL);
REPETIR MIENTRAS NO SE PULSE LA TECLA ESCAPE:
1.
Esperar pulsación de una tecla por parte del usuario. Cuando se produzca:
1.1. letra igual al carácter introducido por teclado.
SI letra = 27 IR A FIN (Tecla ESCAPE)
1.2. T_2 = times(NULL);
2.
Ajustar intervalos de tiempo...
2.1. dift = t_2 – t_1;
2.2. T_1 = t_2;
3.
Primera rotación (a izquierda): sobre el valor t_2.
La rotación depende del intervalo de tiempo transcurrido (dift) y del valor previo de la
variable aleat.
3.1. dift *= dift;
3.2. SI aleat DISTINTO DE 0, ENTONCES dift *= aleat;
3.3. rot = dift % 31;
3.4. t_2 *= t_2;
3.5. t_2 = (t_2 >> rot | t_2 << (32 - rot)); (t_2 variable de 32 bits).
4.
Primera operación XOR sobre el valor aleatorio a generar.
4.1. aleat ^= t_2; Se emplean los 16 bits menos significativos de la variable
t_2. La variable aleat tendrá el valor final del proceso en
la iteración anterior o un valor inicial cualquiera si estamos
en la primera iteración.
5.
Segunda rotación (a derecha): sobre el valor aleat.
La rotación depende del valor ASCII de la tecla pulsada y del actual valor aleat.
5.1. SI aleat DISTINTO DE 0, ENTONCES letra *= aleat;
5.2. rot = (unsigned long)letra % 13;
5.3. aleat = (aleat << rot | aleat >> (16 – rot))
6.
Guardar el valor introducido en un vector de valores aleatorios.
FIN
Algoritmo de un generador aleatorio por entrada de teclado. Diseño de un nuevo generador
de secuencias de bits aleatorios por entrada de teclado de Pedro María Alcover Garau, José M.
García Carrasco, y Luís Hernández Encinas.
junio de 2008
Página 51 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Autor: Eugenio Soler Galán
BIBLIOGRAFÍA
Daniel Peña Sánchez de Rivera. Estadística Modelos y métodos. Tomo 1:
Fundamentos. Alianza Universidad Textos. Páginas 521 y 522.
Paper: Pruebas de Aleatoriedad para Secuencias Pseudo-Aleatorias. María
Aurora Molina Vilchis, Ramón Silva Ortigoza y Eduardo Vega Alvarado.
CIDETEC-IPN. Departamento de Postgrado. Unidad Adolfo López Mateos. Del.
Gustavo A. Madero.
El Sistema RSA. José de Jesús Ángel ([email protected])
Ensayos volumen XXIII, núm. 1, mayo 2004, pp.31-60 “Caos en el mercado
cambiario mexicano. Aplicación de la teoría del caos en los tipos de
cambio”. Julián Ibarra Onofre.
Criptografía y Seguridad en Computadores. Segunda Edición. Septiembre de
1999. Manuel José Lucena López. Departamento de Informática. Escuela
Politécnica Superior Universidad de Jaén.
Paper: Diseño de un nuevo generador de secuencias de bits aleatorios por
entrada de teclado. Pedro María Alcover Garau(Dpto. de Tecnología de la
Información y las Comunicaciones, Universidad Politécnica de Cartagena), José
M. García Carrasco(Dpto. de Ingeniería y Tecnología de Computadores,
Universidad de Murcia), Luís Hernández Encinas(Dpto. de Tratamiento de la
Información y Codificación, Consejo Superior de Investigaciones Científicas)
Paper: USO DE LA SIMULACIÓN EN CARTOGRAFÍA: CONCEPTOS
BÁSICOS Y APLICACIONES. Ariza, F.J., Pinilla, C.; López, R., Caridad, J.M.
Grupo de Investigación en Ingeniería Cartográfica Universidad de Jaén - España
LUGARES WEB
http://es.wikipedia.org/wiki/Azar
http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060015/Lecciones/Capitulo%20VI/metodos.htm
http://www.lawebdefisica.com/apuntsmat/num_aleatorios/
http://jungla.dit.upm.es/~trdt/apuntes/t1.html
TABLAS
Percentiles test de rachas. Daniel Peña Sánchez de Rivera. Universidad Carlos III
de Madrid.
junio de 2008
Página 52 de 54
Trabajo de investigación Trabajo de investigación I
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
N(0,1) Tabla Generada Por D. Francisco Álvarez González ((Universidad de
Cádiz 1996)
junio de 2008
Página 53 de 54
Aleatoriedad y pseudoaleatoriedad
Trabajo de investigación Trabajo de investigación I
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
LA ENTROPÍA DE UNA VARIABLE ALEATORIA
ϑ
La entropía es una medida de información. Veámoslo mediante el siguiente
ejemplo:
Dada una fuente de información, F, que nos va diciendo quien ha ganado un
partido de fútbol, si el equipo A, con una probabilidad de 3/4, o el B, con
probabilidad 1/4, de tal manera que la situación que tenemos es la siguiente:
A la hora de transmitir esta información a través del canal podemos hacerlo de
muchas maneras. Supongamos que mandamos los resultados de tres partidos a
la vez dando lugar a una codificación como la que sigue:
DATO PROB. CÓDIGO LONGITUD
AAA
27/64
0
1
ABA
9/64
100
3
BAA
9/64
101
3
AAB
9/64
110
3
BBA
3/64
11100
5
BAB
3/64
11101
5
ABB
3/64
11110
5
BBB
1/64
11111
5
Observando nuestro código vemos que mandamos una mayor cantidad de bits en
aquellas cadenas que tienen menor probabilidad de ocurrir. La longitud media del
código es:
junio de 2008
Página 54 de 54
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
L = 27/64·1 + 9/64·3 + 9/64·3 +9/64·3 + 3/64·5 + 3/64·5 + 3/64·5 +1/64 = 3.469bits
De acuerdo con este nuevo código ahora lo que tenemos es p(0) = 0.36 y p(1) =
0.63.
Vemos que tras la codificación binaria las probabilidades de 0 y 1 están más
balanceadas que las A y B; lo perfecto sería que lo estuviesen totalmente.
Ya comprendido este ejemplo pasemos a definir entropía:
Definición: Dada una variable aleatoria discreta X que tiene una determinada
distribución de probabilidades, p(x), entropía de X es:
Así, la entropía es una medida de la información que recibimos cuando nos
mandan un dato. La unidad en que se mide depende de la base del logaritmo
utilizada. Si es dicha base es 2, entonces medimos en BITS o si es el número "e",
en NATS, etc.
De acuerdo con el ejemplo anterior, la medida de la entropía de la fuente sería:
Nota: El resultado esperado más probable es el que, obviamente, menos
contribuye al valor de la entropía; luego esta puede entenderse como una
ponderación de las contribuciones de cada suceso.
Unidades de la Entropía H(X)
junio de 2008
BASE DEL LOGARITMO
UNIDAD
Decimal (10)
Dits
Página 55 de 55
Trabajo de investigación Trabajo de investigación I
Aleatoriedad y pseudoaleatoriedad
Autor: Eugenio Soler Galán
(Especialización Sistemas Distribuidos, Multimedia y Seguros)
Binario (2)
Bits
Número e
Nats
Propiedades de la Entropía H(x)
1. H(X) 0
Demostración: 0 p(x) 1 implica que
2.
Si F es una fuente binaria tal que p(0)=p y p(1)=1-p=q:
A esta H(X) podemos llamarla H(p) o también H(p,q). Su representación gráfica
será:
Observando la gráfica nos damos cuenta de algunas propiedades de la entropía.
Vemos que H(X) es cero cuando p=0 ó p=1 porque entonces la variable deja de
ser aleatoria, ya que no hay incertidumbre sobre el valor que tomará X. Por otra
parte la incertidumbre es máxima cuando p=1/2, lo que consecuentemente
coincide con el máximo de H(X).
junio de 2008
Página 56 de 56
Descargar