Trabajo de investigación I (Especialización Sistemas ... · primer momento se uso cifrado...

56
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

Transcript of Trabajo de investigación I (Especialización Sistemas ... · primer momento se uso cifrado...

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

junio de 2008 Página 2 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

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

Contraste ............................................................................. pág 39 k.

Contraste de permutaciones..................................................... pág 39 l.

Contraste de huecos ................................................................ pág 40 m.

7. ANALISIS DE ALEATORIEDAD............................................................. pág. 41

Postulados de Golomb ............................................................ pág. 41 a.

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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 escrito1. Los

determistas2 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 pseudoaleatoriedad3 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

¿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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

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 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 pseudo-

aleatorios.

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

- 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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óficos4

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

4 “Una sucesión de dígitos absolutamente aleatoria es un concepto lógicamente contradictorio” (Martin Gardner).

junio de 2008 Página 20 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

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

estos no es problema si m se elige suficientemente grande.

números aleatorios de Turbo Pascal también lo sigue. En este

caso los parámetros son: m = 232 c = 1 a = 134775813.

eros pseudo aleatorios:

registro de desplazamiento, basados en los números de Fibonacci, método de

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

El principal problema de este método es la aparición de au

x0=2 a=3 c=2 m=16

0

2

4

6

8

10

12

x0=2 a=5 c=9 m=16

02468

10121416

to correlación ya que

los valores de Xj, Xj+1 están relacionados por una expresión lineal. Para evitar

En la primera figura no se cumplen las condiciones mientras que en lasegunda sí.

esto, algunos programas generan series de datos que luego son extraídos de

forma aleatoria.

El generador de

Existen otros mucho métodos de generación de núm

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 siguie plicaciones

de la simulación, la primera de ellas es que los números generados sea

istribuciones 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

niformemente distribuidos en un intervalo [0,1].

.- Buscar en tablas de números aleatorios publicadas (libros, Internet...)

diactiva, el ruido

eléctrico

3.- Los lenguajes de programación y las hojas electrónicas incluyen una función

4.- Mediante algoritmos de generación de números aleatorios

nte consiste en contrastar dos hipótesis básicas en las a

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 d

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 u

Las diferentes posibilidades para resolver dicho problema son:

1

2.- Observar un proceso físico tal como la desintegración ra

para generarlos.

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 pseudo-

aleatorias, 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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 ( ... ) y el mínimo número de

rachas en 2 ( ... )

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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

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 ordenados 1 2 2 2 3 4 5 6 6 8 8 9 Número de racha 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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:

#{Xi<=x}Fn(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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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:

(n0-n1)2X1= 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 = 14−N

( n + n + n 210 + n ) –2

00201

211 n

2 (n +n ) + 1 20

21

que sigue una distribución Chi cuadrado con dos grados de libertad.

junio de 2008 Página 35 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

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 = knk

m

ii

m

−⎟⎟⎠

⎞⎜⎜⎝

⎛∑=

2

1

22

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 es la operación "or exclusiva". El valor estadístico a contratar es:

) se

recomienda repetir la prueba para diferentes desplazamientos.

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

que sigue una distribución normal N (0,1). Para valores pequeños de A(d

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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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 con k! clases, distribución

asintótica 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 (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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 (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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.

Determinismo Certidumbre

Certeza Predecibilidad

Indeterminismo Incertidumbre Probabilidad

Impredecibilidad

Orden Caos

Continuidad Regularidad Periodicidad

Discontinuidad (catástrofe) Irregularidad Aperiodicidad

Linealidad No-linealidad

Estabilidad Equilibrio

Inestabilidad Desequilibrio

junio de 2008 Página 44 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

Estática Dinámica

Insensibilidad a condiciones iniciales

Sensibilidad a condiciones iniciales

Cuantitativo Atractor simple

Geometría euclidiana Uniformidad Permanente Simplicidad Información

Reversibilidad Abstracción-formalismo

Lineal simple Dinámica tradicional

Cualitativo Atractor extraño

Geometría fractal Turbulencia Disipativo

Complejidad Entropía

Irreversibilidad Intuición geométrica

Bifurcación Sinergética

junio de 2008 Página 45 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

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 la llave (bits)

Número de llaves alternativas

Tiempo necesario

106 μs

Tiempo necesario

107 μs

Tiempo necesario

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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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 r0,005 r0,01 r0,025 r0,05 r0,95 r0,975 r0,990 r0,995

2 4 4 4 4 3 6 6 6 6 4 2 7 8 8 8 5 2 2 3 8 9 9 10 6 2 2 3 3 10 10 11 11 7 3 3 3 4 11 12 12 12 8 3 4 4 5 12 13 13 14 9 4 4 5 6 13 14 15 15

10 5 5 6 6 15 15 16 16 11 5 6 7 7 16 16 17 18 12 6 7 7 8 17 18 18 19 13 7 7 8 9 18 19 20 20 14 7 8 9 10 19 20 21 22 15 8 9 10 11 20 21 22 23 16 9 10 11 11 22 22 23 24 17 10 10 11 12 23 24 25 25 18 10 11 12 13 24 25 26 26 19 11 12 13 14 25 26 27 28 20 12 13 14 15 26 27 28 29 21 13 14 15 16 27 28 29 30 22 14 14 16 17 28 29 31 31 23 14 15 16 17 30 31 32 33 24 15 16 17 18 31 32 33 34 25 16 17 18 19 32 33 34 35 26 17 18 19 20 33 34 35 36 27 18 19 20 21 34 35 36 37 28 18 19 21 22 35 36 38 39 29 19 20 22 23 36 37 39 40 30 20 21 22 24 37 39 40 41 31 21 22 23 25 38 40 41 42 32 22 23 24 25 40 41 42 43 33 23 24 25 26 41 42 43 44 34 23 24 26 27 42 43 45 46 35 24 25 27 28 43 44 46 47 36 25 26 28 29 44 45 47 48 37 26 27 29 30 45 46 49 50 38 27 28 30 31 46 47 49 50 39 28 29 30 32 47 49 50 51

junio de 2008 Página 48 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

40 29 30 31 33 48 50 51 52 41 29 31 32 34 49 51 52 54 42 30 31 33 35 50 52 54 55 43 31 32 34 35 52 53 55 56 44 32 33 35 36 53 54 56 57 45 33 34 36 37 54 55 57 58 46 34 35 37 38 55 56 58 59 47 35 36 38 39 56 57 59 60 48 35 37 38 40 57 59 60 62 49 36 38 39 41 58 60 61 63 50 37 38 40 42 59 61 63 64

junio de 2008 Página 49 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

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'00 0'01 0'02 0'03 0'04 0'05 0'06 0'07 0'08 0'09 0.0 0.50000 0.50399 0.50798 0.51197 0.51595 0.51994 0.52392 0.52790 0.53188 0.535860.1 0.53983 0.54380 0.54776 0.55172 0.55567 0.55962 0.56356 0.56749 0.57142 0.575350.2 0.57926 0.58317 0.58706 0.59095 0.59483 0.59871 0.60257 0.60642 0.61026 0.614090.3 0.61791 0.62172 0.62552 0.62930 0.63307 0.63683 0.64058 0.64431 0.64803 0.651730.4 0.65542 0.65910 0.66276 0.66640 0.67003 0.67364 0.67724 0.68082 0.68439 0.687930.5 0.69146 0.69497 0.69847 0.70194 0.70540 0.70884 0.71226 0.71566 0.71904 0.722400.6 0.72575 0.72907 0.73237 0.73565 0.73891 0.74215 0.74537 0.74857 0.75175 0.754900.7 0.75804 0.76115 0.76424 0.76730 0.77035 0.77337 0.77637 0.77935 0.78230 0.785240.8 0.78814 0.79103 0.79389 0.79673 0.79955 0.80234 0.80511 0.80785 0.81057 0.813270.9 0.81594 0.81859 0.82121 0.82381 0.82639 0.82894 0.83147 0.83398 0.83646 0.838911.0 0.84134 0.84375 0.84614 0.84849 0.85083 0.85314 0.85543 0.85769 0.85993 0.862141.1 0.86433 0.86650 0.86864 0.87076 0.87286 0.87493 0.87698 0.87900 0.88100 0.882981.2 0.88493 0.88686 0.88877 0.89065 0.89251 0.89435 0.89617 0.89796 0.89973 0.901471.3 0.90320 0.90490 0.90658 0.90824 0.90988 0.91149 0.91309 0.91466 0.91621 0.917741.4 0.91924 0.92073 0.92220 0.92364 0.92507 0.92647 0.92786 0.92922 0.93056 0.931891.5 0.93319 0.93448 0.93574 0.93699 0.93822 0.93943 0.94062 0.94179 0.94295 0.944081.6 0.94520 0.94630 0.94738 0.94845 0.94950 0.95053 0.95154 0.95254 0.95352 0.954491.7 0.95543 0.95637 0.95728 0.95818 0.95907 0.95994 0.96080 0.96164 0.96246 0.963271.8 0.96407 0.96485 0.96562 0.96637 0.96712 0.96784 0.96856 0.96926 0.96995 0.970621.9 0.97128 0.97193 0.97257 0.97320 0.97381 0.97441 0.97500 0.97558 0.97615 0.976702.0 0.97725 0.97778 0.97831 0.97882 0.97932 0.97982 0.98030 0.98077 0.98124 0.981692.1 0.98214 0.98257 0.98300 0.98341 0.98382 0.98422 0.98461 0.98500 0.98537 0.985742.2 0.98610 0.98645 0.98679 0.98713 0.98745 0.98778 0.98809 0.98840 0.98870 0.988992.3 0.98928 0.98956 0.98983 0.99010 0.99036 0.99061 0.99086 0.99111 0.99134 0.991582.4 0.99180 0.99202 0.99224 0.99245 0.99266 0.99286 0.99305 0.99324 0.99343 0.993612.5 0.99379 0.99396 0.99413 0.99430 0.99446 0.99461 0.99477 0.99492 0.99506 0.995202.6 0.99534 0.99547 0.99560 0.99573 0.99585 0.99598 0.99609 0.99621 0.99632 0.996432.7 0.99653 0.99664 0.99674 0.99683 0.99693 0.99702 0.99711 0.99720 0.99728 0.997362.8 0.99744 0.99752 0.99760 0.99767 0.99774 0.99781 0.99788 0.99795 0.99801 0.998072.9 0.99813 0.99819 0.99825 0.99831 0.99836 0.99841 0.99846 0.99851 0.99856 0.998613.0 0.99865 0.99869 0.99874 0.99878 0.99882 0.99886 0.99889 0.99893 0.99897 0.999003.1 0.99903 0.99906 0.99910 0.99913 0.99916 0.99918 0.99921 0.99924 0.99926 0.999293.2 0.99931 0.99934 0.99936 0.99938 0.99940 0.99942 0.99944 0.99946 0.99948 0.999503.3 0.99952 0.99953 0.99955 0.99957 0.99958 0.99960 0.99961 0.99962 0.99964 0.999653.4 0.99966 0.99968 0.99969 0.99970 0.99971 0.99972 0.99973 0.99974 0.99975 0.999763.5 0.99977 0.99978 0.99978 0.99979 0.99980 0.99981 0.99981 0.99982 0.99983 0.999833.6 0.99984 0.99985 0.99985 0.99986 0.99986 0.99987 0.99987 0.99988 0.99988 0.999893.7 0.99989 0.99990 0.99990 0.99990 0.99991 0.99991 0.99991 0.99992 0.99992 0.999923.8 0.99993 0.99993 0.99993 0.99994 0.99994 0.99994 0.99994 0.99995 0.99995 0.999953.9 0.99995 0.99995 0.99996 0.99996 0.99996 0.99996 0.99996 0.99996 0.99997 0.999974.0 0.99997 0.99997 0.99997 0.99997 0.99997 0.99997 0.99998 0.99998 0.99998 0.999984.1 0.99998 0.99998 0.99998 0.99998 0.99998 0.99998 0.99998 0.99998 0.99999 0.999994.2 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.999994.3 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.99999 0.999994.4 0.99999 0.99999 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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 Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) 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

Trabajo de investigación Trabajo de investigación I Aleatoriedad y pseudoaleatoriedad (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

LA ENTROPÍA DE UNA VARIABLE ALEATORIA

ϑ La entropía es una medida de información. Veámoslo mediante el siguiente

e

Dada una fuente de información, F, que nos va diciendo quien ha ganado un

jemplo:

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

DATO PROB. CÓDIGO LONGITUD

0

0

Observando nuestro código vemos que mandamos una mayor cantidad de bits en

muchas maneras. Supongamos que mandamos los resultados de tres partidos a

la vez dando lugar a una codificación como la que sigue:

AAA 27/64 0 1 ABA 9/64 10 3 BAA 9/64 101 3 AAB 9/64 110 3 BBA 3/64 1110 5 BAB 3/64 11101 5 ABB 3/64 11110 5 BBB 1/64 11111 5

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 (Especialización Sistemas Distribuidos, Multimedia y Seguros) Autor: Eugenio Soler Galán

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)

BASE DEL LOGARITMO UNIDAD Decimal (10) Dits

junio de 2008 Página 55 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

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