Vous êtes sur la page 1sur 5

INSTITUTO TECNOLGICO DE VILLAHERMOSA

Simulacin (15:00 16:00 Hrs. ~ Aulas CC1/K_53) Catedrtico: Q.F.B. Andrs Guerrero Aldana Prctica1: Mtodo Congruencial Mixto Ingeniera en Sistemas Computacionales

Alumno:

Villahermosa, Tabasco; a Lunes 27 de Mayo de 2013.

CDIGO FUENTE EN JAVA:


package Practicas_U1; import java.awt.BorderLayout; import javax.swing.*; public class P1_MetodoCongruencialMixto { public static void main (String args []) { JFrame Ventana= new JFrame("Resultados: METODO CONGRUENCIAL MIXTO EN JAVA"); JScrollPane scroll; JTable Tabla; Object[] Columnas= {"n","Xn","aXn+c","Xn+1"}; Object[][] Datos= new Object[11][4]; int a=9,c=1,m=25, Xn, r1,r2; Xn=Integer.parseInt(JOptionPane.showInputDialog("Teclee el valor de la semilla: ")); for(int n=0; n<=10; n++) { r1=((a*Xn)+c); r2=(r1)%m; r1=((a*Xn)+c)%m; if(n>=1) { Xn=r1; r1=(a*Xn)+c; } Datos[n][0]=String.valueOf(n); Datos[n][1]=String.valueOf(Xn); Datos[n][2]=String.valueOf(r1); Datos[n][3]=String.valueOf(r2); Tabla = new JTable(Datos,Columnas); scroll = new JScrollPane(Tabla); Ventana.getContentPane().add(scroll,BorderLayout.CENTER); Ventana.setSize(450,250); Ventana.setVisible(true); } } }

INTRODUCCIN
Se llama nmeros pseudoaleatorios a una sucesin determinstica de nmeros en el intervalo [0,1] que tiene las mismas propiedades estadsticas que una sucesin de nmeros aleatorios. Una serie de nmeros es aleatoria cuando no se descubre en ella ninguna propiedad: de crecimiento, repeticin, siguiente, etc. Propiedades que deben cumplir las series de nmeros aleatorios: Han de estar uniformemente distribuidos Han de ser estadsticamente independientes Han de ser reproducibles Que requieran poco espacio en memoria Que se obtengan rpidamente Supondremos un generador de nmeros aleatorios de coste unitario. Sean a, b R tales que a < b, uniforme (a, b): devuelve un real x seleccionado aleatoriamente tal que a x <b. La distribucin de x es uniforme en el intervalo y las sucesivas llamadas al generador devuelven valores independientes de x. Sean i, j Z tales que i j, uniforme (i..,j): devuelve un entero k seleccionado aleatoriamente, uniformemente e independientemente tal que i k j. En la prctica los generadores verdaderamente aleatorios no estn disponibles. En la prctica se utilizan generadores pseudoaleatorios: procedimientos deterministas capaces de generar grandes sucesiones de valores que parecen tener las propiedades de una sucesin aleatoria. Definicin de Lehmer de serie de nmeros pseudoaleatoria: una sucesin de nmeros en la que cada trmino es impredecible para la persona ajena al problema y cuyos dgitos se someten a un cierto nmero de pruebas estadsticas. En la prctica la sucesin parte de un valor inicial semilla Una misma semilla produce siempre la misma sucesin Casi todos los lenguajes de programacin tienen un generador que toma como semilla la fecha y la hora La eficiencia y fiabilidad de los algoritmos probabilistas dependen de disponer de un buen generador pseudoaleatorio. Habr que observar el comportamiento de algunas implementaciones de generadores de nmeros pseudoaleatorios

Los mtodos ms comunes son los llamados mtodos congruenciales. El ms famoso es el de Lehmer que depende de tres datos: Xn+1 = (a * Xn + c) mod m. Tipos: Generador congruencial mixto: aquel en el que c 0 Generador congruencial multiplicativo: aquel en el que c = 0 Los multiplicativos son ms rpidos, aunque tienen una menor longitud de ciclo Propiedades: Fcilmente reproducible (comenzando por la misma semilla) Se obtiene rpidamente Ocupa poco espacio de memoria Teorema: La sucesin congruencial definida por X0, a, c y m es de perodo mximo si y slo si: C es primo relativo a m (su mximo comn divisor es 1) a -1 es mltiplo de p, p primo que divida a m a-1 es mltiplo de 4 si m es mltiplo de 4 Ejemplo: a = 21, c = 27 y m = 20 Generador que cumple las 5 reglas: el propuesto por Lehmer: a = 48.271; c = 0; m = 231 1 = 2.147.483.647 Problema del generador de Lehmer: produce overflow con algunos Valores Solucin: cambiar la expresin anterior por: Xn+1 = a (Xn mod Q) R (Xn div Q) + f (m) Donde: Q = m div a, R = m mod a f(m) = 0 si la suma de los dos primeros sumandos de la frmula es mayor o igual que 0 y f(m) = m en caso contrario.

Constantes a=48271; m=2147483647; { 231-1 } Q=44488; { m Div a } R=3399; { m Mod a } Funcion Random(Var Serie:Real): Real; Serie a*(Serie Mod Q)-R*(Serie Div Q); If Serie < 0 Then Serie Serie+m; Devolver(Serie); FFuncion

CONCLUSIN
Se ha presentado algunas caractersticas de un sencillo generador de nmeros pseudoaleatorios de congruencia lineal (GCL), enfatizando aquellas propiedades que lo hacen inapropiado para aplicaciones criptogrficas. Se present una tcnica de cifrado simtrico computacionalmente segura basada en el colapso del espacio de fases de un conjunto de N GCLs idnticos acoplados, la cual permite cifrar grupos de N bits en la representacin binaria del texto plano original; en estas condiciones la clave de cifrado estar constituida por los valores de los parmetros (A, B, M) del GCL, las semillas (x0 1, ..., x0 N), y los coeficientes de acople. La determinacin de esta clave por medios de bsqueda exhaustiva es computacionalmente inaccesible. El esquema criptogrfico propuesto es rpido y de fcil implementacin, teniendo como principal desventaja el hecho de que el tamao del texto cifrado es mayor que el del texto plano original. Algunas veces es necesario contar con circuitos que nos ayuden a sincronizar los sistemas de transmisin y recepcin de seales, tal es el caso de algunos sistemas de transmisin por satlite que no estn transmitiendo todo el tiempo, o tambin la telefona celular. Para estos propsitos son usadas las secuencias pseudoaleatorias.

BIBLIOGRAFA

Simulacin: un enfoque prctico, Ral Coss B

www.escet.urjc.es/~rmartine/EDAA-AlgProbabilistas-1.pdf www.um.es/or/ampliacion/node16.html http://webdelprofesor.ula.ve/ingenieria/albornoz/cripto.pdf http://webdiee.cem.itesm.mx/web/servicios/archivo/trabajos/comunicaciones/sincpalabr a/conclusiones.html

Vous aimerez peut-être aussi