El desarrollo de simulaciones para diversos sistemas, o

Documentos relacionados
CAPÍTULO 2 NÚMEROS PSEUDOALEATORIOS

EXPOSICIÓN UNIDAD II

Simulación. pseudoalealeatorios

Universidad Católica de Valparaíso Facultad de Ingeniería Escuela de Ingeniería de Transporte

Introducción a la Simulación

4. NÚMEROS PSEUDOALEATORIOS.

Sistema de Desarrollo de Redes Neuronales Celulares

Aritmética Computacional Factorización de enteros con Curvas Elípticas Avance de Proyecto

MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO 1. SISTEMAS NUMÉRICOS

Ecuaciones diferenciales y cálculo numérico

UNIVERSIDAD DE MANAGUA

GENERACION DE NUMEROS ALEATORIOS Y VARIABLES ALEATORIAS

Evolución de los sistemas de cifrado basados en caos. Gonzalo Álvarez Marañón

Técnicas de Muestreo I

Análisis de Decisiones II. Tema 17 Generación de números al azar. Objetivo de aprendizaje del tema

+- S x B +-E. Este estándar presupone una representación normalizada. Es decir, los números a representar obedecen a la siguiente forma:

Elementos de Cálculo Numérico

METODOS DE RUNGE KUTTA

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 6

En este capítulo se habla sobre las distintas arquitecturas y algoritmos de multiplicación rápida que se encontraron en la bibliografía.

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

Generación de variables aleatorias discretas Método de la Transformada Inversa

1.4.3 Errores de redondeo y la aritmética finita de las computadoras

Introducción al análisis numérico

Práctica 5. Códigos Huffman y Run-Length

Inteligencia Artificial

Tema 7: Recursividad

ERRORES. , siempre que p 0.

I. INTRODUCCIÓN. A cada valor de una señal digital se le llama bit y es la unidad mínima de información.

Introducción al cálculo numérico. Método de Euler

Irma Martínez Carrillo. Universidad Autónoma del Estado de México UAPT, Toluca, Estado de México, Teléfono:

matemáticos, como por ejemplo las cinco operaciones básicas, factorial de un número.

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

DESARROLLO DE SISTEMAS BASADOS EN MICRONTROLADORES Y DSPs

Generadores pseudoaleatorios

Técnicas de aprendizaje sobre series temporales

MÉTODO DE DIFERENCIAS FINITAS (FDM)

Modelos Estocásticos. Simulación de fenómenos estocásticos. Simulación de fenómenos estocásticos. Definición. Por qué fenómenos estocásticos?

APUNTES DOCENTES ASIGNATURA: ANALISIS NUMERICO ASIGNATURA: ANALISIS NUMERICO UNIDADES TECNOLÓGICAS DE SANTANDER

Métodos de muestreo de variables con distribuciones continuas Dr. Ing. JORGE E. NÚÑEZ MC LEOD

El comportamiento de un controlador PID corresponde a la superposición de estas tres acciones, expresado en el dominio del tiempo es:

FUNCIONES DE GENERACIÓN DE NÚMEROS ALEATORIOS NÚMEROS ALEATORIOS UNIFORMES

MATERIA DE SIMULACION

5. PLANIFICACIÓN DE LAS ENSEÑANZAS

Se puede repetir la misma secuencia de números.

NÚMEROS ALEATORIOS Y PSEUDOALEATORIOS

Tema IV. Manejo Interno de Datos

Resumen. Este trabajo se divide principalmente en 2 partes:

Reduciendo el Ancho de Banda de Matrices Dispersas Simétricas con Algoritmos Genéticos

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J.

USOS DEL PROGRAMA MINIMAT

Lógica de programación

Análisis de Datos y Probabilidad Grado 9

Preliminares Problemas de Valor Inicial Problemas de Contorno ECUACIONES DIFERENCIALES ORDINARIAS

GENERACIÓN DE EXÁMENES TIPO TEST

Computadora MA2008. Análisis Numérico: Artimética de una. Computadora. Computación / Matemáticas. Intro. Idea. IEEE estándar. Errores.

Regulación de nivel en un sistema de dos tanques

Seguridad en los sistemas de información: e-voting, e-cash y notaria digital

Solución de ecuaciones algebraicas y trascendentes: Conceptos generales

RESUMEN DE ALGORITMOS PROBABILÍSTICOS

SIMULACIÓN (plan 2008)

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

EMULADOR DE SEÑALES PARA PRUEBAS EN CONTROLADORES DE SISTEMAS TRIFÁSICOS

Sistemas basados en la Teoría de Números

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Profesor(a): Ing. Miriam Cerón Brito

Sistemas de comunicación

Simulaciones y resultados

Cabrera Hernández Elizabeth Ramírez Bustos Fabián GENERACION DE NUMEROS ALEATORIOS

LABORATORIO No. 3 MODELAMIENTO Y ANALISIS DINAMICO DE SISTEMAS ELECTRICOS

Para las ecuaciones diferenciales ordinarias no lineales no existen métodos generales.

Cálculo de Incertidumbre por el Método de Monte Carlo en Calibración de Multímetros Digitales

Capítulo 6: Visualizador de Rotaciones Multidimensionales

Análisis y Diseño de Algoritmos

CAPITULO 5 GENERADOR DIGITAL DE TREN DE PULSOS PROGRAMABLE

Universidad Autónoma del Estado de México Facultad de Medicina

PROGRAMAS DE ASIGNATURA DE LA LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Lenguaje de Programación: C++

CONCLUSIONES 5. CONCLUSIONES.

Práctica II: Problemas de valor inicial en EDO s.

Simulación. Problema del jardinero. Modelo de stock aleatorio. Camino crítico.

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

8. Software para cálculo de los sistemas de alimentación y compensación

Nombre de la asignatura : Simulación. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9310

Tema 9. SISTEMAS COMBINACIONALES PROGRAMABLES SISTEMAS COMBINACIONALES PROGRAMABLES NO UNIVERSALES

Simulación en Computadora

Comparación de Métodos Numéricos para la Solución Ecuación Diferencial de 1 er Orden

Guía práctica de estudio 06: Lenguaje binario

VARIABLES LOCALES Y VARIABLES GLOBALES

SECUENCIA DIDÁCTICA. Módulo IV Competencia de Módulo:

Algoritmos genéticos

CAPITULO 5 DESARROLLO DEL PROYECTO

Asignaturas antecedentes y subsecuentes Análisis Numérico II

1. Introducción a la Arquitectura de Computadoras

Cómo crackear un generador de claves pseudoaleatorias

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO SUBPROGRAMA DE DISEÑO ACADÉMICO ÁREA MATEMATICA PLAN DE CURSO

Representación de Números Reales

PROCEDIMIENTO PARA GENERAR LOS REQUERIMIENTOS DE SELLOS DIGITALES

Transcripción:

CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL 1 Generador de Números Aleatorios Basado en un Oscilador Caótico en 3D Adrian Josué Ramírez Díaz, Cuauhtemoc Mancillas López, Esteban Tlelo Cuautle Departamento de Computación, CINVESTAV Abstract Se describe el diseño de un oscilador caótico de tiempo continuo en tres dimensiones (3D), su discretización para su implementación en hardware digital, y pruebas para generador números pseudoaleatorios. Se detalla la aplicación de métodos numéricos para resolver el sistema de ecuaciones diferenciales ordinarias y la aproximación de una función exponencial por series de potencia para su realización en hardware digital. Se describe un análisis para la búsqueda de los parámetros que generan la mejor distribución de valores binarios y finalmente se presentan los resultados obtenidos por el generador de números aleatorios al ser implementado en una tarjeta Raspberry Pi 3 analizando la distribución generada mediante una gráfica de datos binarios. Index Terms Números aleatorios, Oscilador caótico, Raspberry Pi 3, Métodos numéricos I. INTRODUCCIÓN El desarrollo de simulaciones para diversos sistemas, o la implementación de algunos algoritmos criptográficos requiere un componente de aleatoriedad, el cual se logra mediante el uso de generadores de números aleatorios, los cuales proporcionan números con una distribución aleatoria predeterminada. Sin embargo, es posible transformar esta distribución para que sea factible su adaptación al problema en cuestión, como incrementar la aleatoriedad [1]. En sistemas electrónicos, se tiene que determinar el tipo de hardware que implementará un modelo matemático, como el oscilador caótico de tres dimensiones (3D) introducido en [2]. A partir del diseño de este oscilador caótico, se mostrará la forma en que se construirán un generador de números aleatorios. En este trabajo, se detalla la implementación de una función exponencial que se aproxima por series de potencias, para su realización en hardware digital usando un Raspberry Pi 3. También se detalla como se selecciona un nivel de umbral para la construcción de un generador de números aleatorios haciendo uso de las series de tiempo que proveé el oscilador caótico. De esta manera, se analizan métodos que presentan mayor entropía al sistema, esto con el objetivo de tener un generador de series de tiempo con mayor aleatoriedad. De igual forma, se analiza la distribución de los datos que genera el oscilador caótico variando el valor del parámetro de bifurcación, que en el caso del sistema 3D descrito en[2], sólo se tiene el parámero a, siendo el objetivo tener distribuciones aleatorias con números más dispersos. II. ANTECEDENTES Un generador de números pseudoaleatorios es un algoritmo que produce una sucesión de números los cuales presentan una buena aproximación a un conjunto aleatorio de números, sin embargo la sucesión no es exactamente aleatoria, ya que se determina por un conjunto de valores iniciales, el cual incide directamente en la forma en que evolucionan las variables de estado del sistema dinámico. La mayoría de los algoritmos producen una sucesión con una distribución uniforme. II-A. Métodos para generar números pseudoaleatorios Existen diferentes formas de obtener números aleatorios, por lo que a continuación se presentan las tres principales. Provisión Externa: Tablas RAND. En las cuales se tiene la ventaja de que la serie de números obtenidos es reproducible. Sin embargo, este método requiere de una gran cantidad de memoria para el almacenamiento de los números así como la lentitud para su obtención. A partir de un proceso físico al azar. En estos métodos se utilizan instrumentos físicos, sin embargo los instrumentos no generan números aleatorios verdaderos a menos de que sean altamente elaborados. Generación interna de dígitos por medio de una relación de recurrencia. También llamada generación de números pseudoaleatorios, lo que sugiere que los números generados están inte-relacionados a través de relaciones numéricas y realmente no son independientes uno del otro. II-A.1. Propiedades de los generadores Pseudoaleatorios: A continuación de presenta una lista con las propiedades de los generadores pseudoaleatorios. 1. El número generado debe ser tan independientemente posible de otro número. 2. El generador debe ser rápido y no requerir una memoria excesiva. 3. Los números deben tener un ciclo largo antes de repetirse. 4. Se deberá regenerar el flujo de los números aleatorios. III. DESCRIPCIÓN DEL GENERADOR ALEATORIO Un generador de números aleatorios requiere de una fuente que produzca aleatoriedad. Sin embargo, los generadores de números realmente o verdaderamente aleatorios requieren de un alto coste de implementación y diseño en electrónica, por lo que se opta por la generación de números pseudoaleatorios, basados en relaciones numéricas, motivo por el cual el generador que se presenta esta basado en el modelo 3D en [2], cuya discretización aplicando el método numérico de Euler se describe por las siguientes ecuaciones:

CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL 2 x n+1 = x n + h( z) y n+1 = y n + h(xz 2 ) z n+1 = z n + h[x n ae y + z n (y 2 n z 2 n)] Como se puede observar en las ecuaciones anteriores, el sistema será iterado, modificando el valor de a con el fin de tener la mayor entropía en el sistema. Así también, la aproximación de la función exponencial se realizará por medio de series de potencia. Por ejemplo: la figura 1 presenta la comparación entre los valores de la función exponencial y los valores obtenidos a través de la aproximación númerica considerando sólo los primeros 5 términos, como se muestra en el Apéndice I, lo que permite corroborar que el uso de dicha función no alterará el comportamiento general del oscilador. Fig. 2. Respuesta del oscilador con a = 0.1 y paso = 0.05 Fig. 3. Respuesta del oscilador con a = 0.1 y paso = 0.1 Fig. 1. Aproximación de la función exponencial III-A. Determinación de los parámetros de ejecución Aproximada la función exponencial, el siguiente paso es la implementación de el oscilador caótico en 3D, cuya simulación se describe en el apéndice 2. La ejecución consiste en realizar diferentes pruebas con distintos valores del parámetro a y el tamaño de paso durante la iteración, a fin de obtener la mayor inestabilidad del sistema. Se comenzó por fijar el parámetro de a = 0.1 y establecer el tamaño de paso en 0.05 obteniendo la Figura 2. En la cual se puede apreciar la periodicidad de la función, motivo por el cual la configuración inicial propuesta no funciona para propósitos de un generador de números aleatorios. De esta manera, se necesita buscar los valores de los parámetros adecuados del tamaño de paso y a. Para la siguiente prueba se modificará el tamaño de paso, dejando el parámetro a sin modificar, esto para verificar el efecto que tiene cambiar dicho parámetro sobre el resultado final. La Figura 3 permite determinar que el aumento de paso no modifica el comportamiento de la función, luego entonces, Fig. 4. Respuesta del oscilador con a = 0.01 y paso = 0.05 se procederá a modificar el valor de a para encontrar la configuración necesaria. La Figura 4 muestra el comportamiento de la función con a = 0.01. La Figura 4 muestra que al modificar a es posible cambiar el comportamiento de la función, sin embargo, el parámetro seleccionado produjo una mayor estabilidad. Por el contrario, el oscilador presenta una menor estabilidad con el parámetro

CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL 3 a = 0.12, tal y como se presenta en la figura 5. III-B. Selección del componente de la función Seleccionados los parámetros bajo los cuales se realizará la simulación del oscilador, es importante elegir la variable de estado x, y o z, del oscilador, a partir del cual se generarán los bits aleatorios. Como se observa en la Figura 6, es posible ocupar cualquiera de los componentes para generar los bits aleatorios, sin embargo, al presentar la mayor dispersión se utilizó el componente de la variable de estado y. Fig. 5. Respuesta del oscilador con a = 0.12 y paso = 0.055 IV. GENERACIÓN DE BITS ALEATORIOS Implementado el oscilador y seleccionado el componente y, el siguiente paso es la selección de bits. Para ello se selecciona un valor y se cuenta el número de bits que se encuentran arriba del valor seleccionado, mismos que representarán el 1, así también se cuenta el número de bits que se encuentran por debajo del valor, los cuales representan 0. Al terminar el conteo, se verifica que la proporción sea del 50 % para cada uno de los elementos. Fig. 6. Comportamiento de las tres variables de estado (a) x, (b) y, (c) z.

CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL 4 Un punto importante para señalar en la selección de los bits aleatorios, con cierto intervalo el elemento a contabilizar, ya que, si se toman todos los valores que ofrece la función, estos formarán conjuntos de ceros y unos, conjuntos que no servirán para ser agrupados en enteros. Para la selección correcta del nivel bajo el cual se contabilizan los bits se realizaron diferentes pruebas, a modo de elegir la prueba con el valor más cerca de la proporción deseada. Nivel Elementos 0 Elementos 1 1 947703 52297 0.9 915678 84322 0.8 864300 135700 0.7 799736 200264 0.6 720893 279107 0.5 633580 366420 0.4 533966 466034 0.3 415140 584860 0.2 275576 724424 0.1 140629 859371 Fig. 7. Proporción bajo diferentes niveles La tabla presente en la Figura 7 contiene los resultados de las pruebas realizadas para determinar el nivel bajo el cual se realiza la captura de bits. Por lo que, en base a esos resultados se presenta la Figura 8 donde se observa que el parámetro adecuado para el nivel de conteo es 3.6. Fig. 9. Distribución producida por el generador VI. CONCLUSIÓN A partir del presente trabajo se puede determinar que el uso de métodos no aletarios para generar conjuntos de números pseudoaleatorios es factible, siempre y cuando se realice el análisis pertinente de la función en cuestión. Esto mediante la selección de los parámetros adecuados así como el método de simulación correcto. Por otra parte, si bien la elección del método y configuración de la función es crucial para la inestabilidad del sistema, el método de selección de los bits que conformarán los números aleatorios también resulta una parte importante del método, ya que de ello depende una buena distribución de datos. APPENDIX I APROXIMACIÓN DE LA FUNCIÓN EXPONENCIAL POR SERIES DE TAYLOR f l o a t e x p o n e n c i a l ( f l o a t x ) { return 1 + ( x / 1 ) + ( ( x x ) / 2 ) + ( ( x x x ) / 6 ) + ( ( x x x x ) / 2 4 ) + ( ( x x x x x ) / 1 2 0 ) ; Fig. 8. Selección del nivel de conteo V. PRUEBAS Generados un conjunto de bits, se agrupan en paquetes de 32 bits para formar enteros sin signo, lo que ocasiona que se tenga una distribución aleatoria, de números enteros, por lo que, la prueba consistió en generar una serie de números y verificar mediante una gráfica que la distribución sea la correcta. La gráfica presente en la Figura 9 muestra la distribución aleatoria obtenida al generar 10000 números, agrupados en parejas, con lo cual se puede comprobar que la distribución funciona para los parámetros seleccionados, generando valores entre 0 y 10. f l o a t x, y, z ; f l o a t a ; i n t i t e r ; f l o a t h ; i n t i ; APPENDIX II IMPLEMENTACIÓN DEL OSCILADOR i n t main ( i n t argc, char c o n s t a rgv [ ] ) { f l o a t xs, ys, zs ; i f ( a r g c > 2) { a = a t o f ( argv [ 1 ] ) ; h = a t o f ( argv [ 2 ] ) ; i t e r = a t o i ( a rgv [ 3 ] ) ; x = y = z = 0. 1 ;

CENTRO DE INVESTIGACIÓN Y DE ESTUDIOS AVANZADOS DEL INSTITUTO POLITÉCNICO NACIONAL 5 f o r ( i = 0 ; i < i t e r ; i ++ ) { xs = x + ( h ( z ) ) ; ys = y + ( h ( x z z ) ) ; zs = z + ( h ( x ( a e x p o n e n c i a l ( y ) ) + z ( y y z z ) ) ) ; p r i n t f ( %d %f %f %f \n, i, xs, ys, zs ) ; x = xs ; y = ys ; z = zs ; e l s e { p r i n t f ( E r r o r : a r g s [ f l o a t a ] [ f l o a t s t e p s i z e ] [ i n t n i t e r a t i o n s ] \n ) ; return 0 ; APPENDIX III GENERACIÓN DE BITS ALEATORIOS i n t main ( i n t argc, char c o n s t a rgv [ ] ) { f l o a t xs, ys, zs ; f l o a t d i v i d e ; i f ( a r g c == 3) { a = 0. 1 2 ; h = 0. 0 5 5 ; i t e r = a t o i ( a rgv [ 1 ] ) ; d i v i d e = a t o f ( argv [ 2 ] ) ; cn0 = cn1 = 0 ; x = y = z = 0. 1 ; f o r ( i = 0 ; i < i t e r ; i ++ ) { xs = x + ( h ( z ) ) ; ys = y + ( h ( x z z ) ) ; zs = z + ( h ( x ( a e x p o n e n c i a l ( y ) ) + z ( y y z z ) ) ) ; i f ( ys > d i v i d e ) { p r i n t f ( %d 1 \n, i ) ; cn1 ++; e l s e { p r i n t f ( %d 0 \n, i ) ; cn0 ++; x = xs ; y = ys ; z = zs ; p r i n t f ( 0= %d 1= %d\n, cn0, cn1 ) ; e l s e { p r i n t f ( E r r o r : a r g s [ i n t n i t e r a t i o n s ] [ f l o a t d i v i d e ] \n ) ; return 0 ; REFERENCES [1] Miklos Santha, Umesh V. Vazirani (1984). Generating quasi-random sequences from slightly-random sources. Proceedings of the 25th IEEE Symposium on Foundations of Computer Science. ISBN 0-8186-0591-X. [2] Tlelo-Cuautle, E., de la Fraga, L. G., Pham, V. T., Volos, C., Jafari, S., de Jesus Quintas-Valles, A. (2017). Dynamics, FPGA realization and application of a chaotic system with an infinite number of equilibrium points. Nonlinear Dynamics, 1-11. DOI: 10.1007/s11071-017-3505-2 [3] John von Neumann (1963). Various techniques for use in connection with random digits. The Collected Works of John von Neumann. Pergamon Press. pp. 768-770. ISBN 0-08-009566-6. [4] Carlos Marquez, Números pseudoaleatorios en https://carlosmarquez.files.wordpress.com/2012/02/unidad-4-generacionde-numeros-pseudoaleatorios1.pdf