INSTITUTO POLITÉCNICO NACIONAL

Tamaño: px
Comenzar la demostración a partir de la página:

Download "INSTITUTO POLITÉCNICO NACIONAL"

Transcripción

1 INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y DESARROLLO TECNOLÓGICO EN CÓMPUTO ALGORITMO DE ENCRIPTACIÓN SIMÉTRICO QUE PROCESA BLOQUES DE 192 BITS, CON LLAVES DE CIFRADO DE 192 BITS, EMPLEANDO LOS TEOREMAS FACTORIAL Y JV TESIS QUE PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO PRESENTA: ING. JOSÉ JESÚS SOTO SÁNCHEZ DIRECTORES: Dr. VICTOR MANUEL SILVA GARCÍA M. en C. ROLANDO FLORES CARAPIA México, Distrito Federal Junio de 2010

2

3 INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA DE INVESTIGACIÓN Y POSGRADO CARTA CESION DE DERECHOS En la Ciudad de México el día 21 de junio del año 2010, el que suscribe José Jesús Soto Sánchez, alumno del Programa de Maestría en Tecnología de Cómputo con número de registro B081750, adscrito al Centro de Innovación y Desarrollo Tecnológico en Cómputo, manifiesta que es autor intelectual del presente trabajo de Tesis bajo la dirección del Dr. Víctor Manuel Silva García y del M. en C. Rolando Flores Carapia; cede los derechos del trabajo intitulado Algoritmo de encriptación simétrico que procesa bloques de 192 bits, con llaves de cifrado de al Instituto Politécnico Nacional para su difusión, con fines académicos y de investigación. Los usuarios de la información no deben reproducir el contenido textual, gráficas o datos del trabajo sin el permiso expreso del autor y/o director del trabajo. Este puede ser obtenido escribiendo a la siguiente dirección: jsotos0801@ipn.mx. Si el permiso se otorga, el usuario deberá dar el agradecimiento correspondiente y citar la fuente del mismo. JOSÉ JESÚS SOTO SÁNCHEZ

4 RESUMEN El presente trabajo documenta el diseño de un algoritmo de encriptación simétrico que procesa bloques de 192 bits, con llaves de cifrado de 192 bits, empleando los teoremas Factorial y JV. 4

5 ABSTRACT The present work documents the design of a symmetric encryption algorithm that processes blocks of 192 bits, with cipher keys of 192 bits, using the Factorial and JV theorems. 5

6 AGRADECIMIENTOS Le agradezco Dr. Victor Manuel Silva García por sacarle brillo a esta piedra; por creer que este fuereño tenía el potencial adecuado para estudiar un posgrado. Gracias por dejarme ser parte de sus desarrollos matemáticos y por explicarme los conceptos cuando no los entendía; por hacerme un espacio en su agenda y por dejarme ser su pupilo. El tiempo invertido y sus enseñanzas valen oro, no tengo como pagarle. Maestro Rolando Flores Carapia, gracias por despertar al programador que todos llevamos dentro, hacía tiempo que no me sentía tan contento programando, es difícil volver a comenzar después de atravesar por desilusiones, pero Usted logró que volviese a enamorarme de las interminables líneas de código y que pasara horas de desvelo viendo cómo iba quedando el ansiado algoritmo simétrico. Agradezco a los docentes integrantes del jurado sus observaciones a este trabajo escrito, han logrado que sea una mejor persona y un mejor profesionista. Dra. Magdalena Marciano Melchor, M. en C. Eduardo Rodríguez Escobar, M. en C. Mauricio Olguín Carbajal, Dr. Edgar Alfredo Portilla Flores. Mi amada Esmeralda, gracias por sacrificar tu tiempo para dejar que terminara mi tesis. Gracias por las incontables tazas de café que me diste cuando me veías absorto frente a la compu y las llamadas a comer cuando ya todos estaban a la mesa. Gracias por el apoyo que me has dado desde que iniciamos esta aventura profesional y por el cuidado que le has dado a nuestros hijos cuando papá estaba desconectado de la realidad. Espero restituírtelo todo pronto. Sarita, mi nena, gracias por el tiempo que has pasado a mi lado, viendo como papá programaba, leía o tecleaba palabras (interminables) en su laptop. Gracias por quedarte dormida en mis brazos y hacerme levantar de la mesa para llevarte a la cama, para después, regresar al escritorio y pensar lo afortunado que soy por tenerte a mi lado. Caleb, gracias por dejarme trabajar cuando estuviste en cama, aunque ya sabes que no nos gusta verte así. Gracias por jugar con tus hermanos cuando me veías concentrado en el escritorio y por acompañarme a las revisiones de tesis en aquellas maratónicas travesías en metro al CIDETEC. Te agradezco Ángel por tu cariño, me encanta cargarte y darte vueltas, aunque casi me quedo sin espalda; que aburrida sería la vida sin tus interrupciones para jugar en medio de las lecturas interminables o las líneas de código indescifrables. 6

7 Te sigo sorprendiendo José Jesús, a que no sabías que se podía conectar un monitor externo a la laptop para redactar, programar (en tu caso jugar) más rápido, ya ves que papá sigue estando a la vanguardia (o al menos eso creo); claro que no será por mucho tiempo, pues ya me das la vuelta en Age of Empires. Gracias por hacer que siga pensando que estoy un paso delante de ti. Mamá, Papá, gracias por dejarme soñar y estar allí para compartir esos sueños. Elizabeth y David, gracias por cuidar mi corazón y el de mi familia, los quiero. Dios les bendiga. Lic. Mónica I. Bernal, gracias por brindarme la oportunidad de faltar los viernes al trabajo para emprender ese sueño que parecía inalcanzable, ahora vemos los resultados de aquella locura. Ing. Georgina Acevedo, gracias por dejar que el hijo del cónsul cambiara mi vida, y me diera otra perspectiva de las cosas. Échale ganas, sí se puede! José David, gracias por dejar que Sheryl Crow estuviese conmigo en esas duras horas de redacción y lectura. Gabriel, gracias por toda la información electrónica que me brindaste, fue aprovechada al máximo. Dios, que sería de mí si no me hubieras alcanzado Agradezco a todas las personas que de forma directa o indirecta han contribuido para el logro de esta meta profesional. Agradezco al Consejo Mexiquense de Ciencia y Tecnología (COMECyT) su apoyo económico para realizar estos estudios de posgrado; espero no haber defraudado su expectativa para conmigo. 7

8 CONTENIDO ÍNDICE DE FIGURAS INTRODUCCIÓN OBJETIVO GENERAL OBJETIVOS PARTICULARES METAS PLANTEADAS JUSTIFICACIÓN CAPÍTULO I ESQUEMAS DE ENCRIPTACIÓN SIMÉTRICA (LLAVE PRIVADA) CONSTRUCCIÓN DE PERMUTACIONES PSEUDOALEATORIAS (ALGORITMOS SIMÉTRICOS DE BLOQUES) REDES DE SUSTITUCIÓN PERMUTACIÓN XOR EL PARADIGMA DE CONFUSIÓN-DIFUSIÓN ESTÁNDAR DE ENCRIPTACIÓN DE DATOS (DATA ENCRYPTION STANDARD - DES) ESTÁNDAR AVANZADO DE ENCRIPTACIÓN (AES) CAPÍTULO II DESCRIPCIÓN DE DES DESCRIPCIÓN DE TRIPLE-DES DESCRIPCIÓN DE AES CAPÍTULO III FUNDAMENTOS MATEMÁTICOS TEOREMA JV TEOREMA FACTORIAL DISEÑO DEL ALGORITMO SIMÉTRICO PROPUESTO CAPÍTULO IV

9 ANÁLISIS DE RESULTADOS DEL ALGORITMO PROPUESTO CONCLUSIONES TRABAJO A FUTURO REFERENCIAS GLOSARIO ANEXO

10 ÍNDICE DE FIGURAS 1. Red de Sustitución-Permutación (23) 2. Función f del algoritmo DES (32) 3. Esquema de llaves del algoritmo DES (33) 4. Llaves débiles para el algoritmo DES (16 bits), expresadas en hexadecimal (34) 5. Llaves semidébiles para el algoritmo DES (16 bits), expresadas en hexadecimal (34) 6. Representación de Triple-DES (35) 7. SubBytes( ) aplica las cajas-s a cada byte del arreglo State (41) 8. S-Box: valores de sustitución por cada byte xy (en formato hexadecimal) (42) 9. ShiftRows( ) corrimientos cíclicos en los últimos tres renglones del arreglo State (43) 10. MixColumns( ) opera en el arreglo State columna por columna (44) 11. AddRoundKey( ); opera cada columna del arreglo State con una llave a través de una operación XOR (45) 12. Algoritmo de mezclado de la información (57) 13. Ronda 16 del algoritmo simétrico propuesto (57) 14. Bits utilizados en cada ronda para obtener las 17 llaves requeridas (59) 15. Biblioteca en C++ para manejo de números grandes (61) 16. Permutaciones sobre 128 y 192 posiciones (65) 17. Cifrado de una cadena de 192 bits (67) 18. Descifrado del mensaje original (68) 19. Cifrado y creación del archivo de texto (69) 20. Lectura del archivo de texto y descifrado (70) 21. Cifrado y creación del archivo de texto, datos nuevos (71) 22. Lectura del archivo de texto y descifrado, datos nuevos (72) 1 0

11 INTRODUCCIÓN El secreto es el corazón de la criptografía. Encriptar (cifrar) es una práctica que permite mantener la información de manera secreta. Las técnicas de encriptación (cifrado) modernas son transformaciones matemáticas (algoritmos), las cuales tratan los mensajes como números o elementos algebraicos en un espacio y sufren una transformación de mensajes con significado a mensajes ininteligibles. Un mensaje en la región con significado y una entrada al algoritmo de cifrado es llamado texto claro, la salida ininteligible a menudo se conoce como texto cifrado o encriptado (1). Para restablecer la información, una transformación de cifrado debe ser reversible y la transformación que permite efectuar esto se conoce con el nombre de descifrado. Convencionalmente, los algoritmos de cifrado (encriptación) ción) y de descifrado (desencriptación) son parametrizados por llaves criptográficas. Un algoritmo de cifrado y un algoritmo de descifrado más la descripción en el formato de mensajes y llaves forman un sistema criptográfico, también denominado criptosistema (1). Los algoritmos de encriptación modernos incorporan una secuencia de permutaciones y sustituciones, uciones, así como operaciones o-exclusiva, XOR, denotada por el símbolo (operaciones binarias lógicas excluyentes). Se denominan simétricos porque utilizan llaves que sirven para llevar a cabo el encriptamiento y a su vez, el proceso inverso, denominado desencriptamiento. Estos algoritmos pueden encriptar una cantidad específica (longitud fija de bits) de un mensaje, al cual se le conoce como bloque de datos y suelen en ser cadenas de 64 ó 128 bits. Al momento de elaboración de este trabajo existen dos algoritmos modernos de cifrado por bloques: Data Encryption Standard (DES) y Advanced Encryption Standard (AES) que han sido considerados Estándares Internacionales y usados en un principio para encriptar 1 1

12 datos no confidenciales (que no representaban riesgos de seguridad nacional para el Gobierno de los Estados Unidos de Norteamérica). El primero de ellos, surge en 1977, gracias al algoritmo desarrollado por Horst Feistel (LUCIFER) para la empresa IBM (2) y fue ampliamente utilizado para llevar a cabo transacciones monetarias en los bancos de E.U.A. Hasta que en 1998 (3) se anuncio que DES había sido roto por un ataque de fuerza bruta en 4.5 días con una computadora que contenía 17 tarjetas madre con 64 procesadores y era capaz de procesar 90 billones de llaves cada segundo, quedando fuera de la norma. Por tanto, surge la necesidad de incrementar la seguridad en el algoritmo de cifrado, puesto que DES se encargaba de cifrar bloques de 64 bits con llaves de 56 bits. En este contexto, en el año 2000 surge AES, un algoritmo desarrollado por los criptógrafos de origen Belga Daemen y Rijmen, el cual encripta bloques de 128 bits, usando llaves de 128, 192 y 256 bits. El objetivo de este trabajo es diseñar e implementar en software un algoritmo simétrico que sea capaz de cifrar bloques de 192 bits con llaves de 192 bits, empleando los teoremas Factorial (4) y JV (5); ambos desarrollados por el Dr. Víctor Manuel Silva García en el Centro de Innovación y Desarrollo Tecnológico en Cómputo (CIDETEC) perteneciente al Instituto Politécnico Nacional (IPN) de la ciudad de México, los cuales brindarán un nivel de seguridad aceptable, al menos , debido a que propone usar permutaciones variables (y no fijas) en el mezclado de la información. En el capítulo I el lector encontrará información referente a los sistemas de encriptación que utilizan la misma llave para efectuar su trabajo, así como información referente con las Redes de Sustitución-Permutación (Substitution Permutation Network, SPN) que son utilizadas en el proceso de mezclado de la información. El capítulo II abarca lo referente a los criptosistemas Data Encryption Standard (DES), Triple-DES y Advanced Encryption Standard (AES), que son las normas internacionales, utilizados para procesar información bancaria y no confidencial, entre otras aplicaciones. 1 2

13 El capítulo III expone los teoremas JV y Factorial, que son las bases matemáticas para manipular números del orden (128!-1), frente a números del orden (192!-1), permitiendo ahorrar tiempo y recursos computacionales cuando se desarrolla software. Al mismo tiempo, describe el algoritmo que permite procesar bloques de datos de 192 bits utilizando llaves del mismo tamaño, así como el algoritmo para generar las llaves usando la función de expansión de llaves del estándar AES-192. El último de los capítulos que conforman este escrito, analiza los resultados del algoritmo propuesto y enuncia las conclusiones a las que llegó el que suscribe; además, se formulan propuestas, que servirán como base para continuar investigando en este campo de la seguridad informática. 1 3

14 OBJETIVO GENERAL Diseñar e implementar en software un algoritmo de encriptación simétrico que procese bloques de 192 bits, utilizando llaves de cifrado de 192 bits, empleando los teoremas Factorial y JV con objeto de operar números del orden en la construcción de permutaciones variables en lugar de números del orden de y así reducir el número de operaciones de cómputo, buscando aumentar la seguridad en el cifrado de datos. OBJETIVOS PARTICULARES - Diseñar un algoritmo de mezclado de la información, utilizando bloques de 192 bits utilizando el teorema Factorial y JV. - Diseñar un algoritmo de programa de llaves (key schedule) de 192 bits. METAS PLANTEADAS - Diseñar e implementar en lenguaje C++ un algoritmo de encriptación simétrico que procese bloques de 192 bits, con llaves de cifrado de 192 bits. - Generar las pruebas y resultados del algoritmo de encriptación cifrando información en una pc y descifrando en otra, así como llevar a cabo una descripción de un criptoanálisis por búsqueda exhaustiva de llaves. 1 4

15 JUSTIFICACIÓN Partiendo del hecho que los algoritmos actuales de cifrado que son simétricos, en particular el estándar internacional hasta finales del siglo XX, DES, utilizan permutaciones fijas para llevar a cabo el mezclado de la información. En este trabajo se propone el diseño de un algoritmo simétrico de cifrado para bloques de 192 bits, con permutaciones variables, para lo cual se utilizan los teoremas JV y Factorial. El que las permutaciones sean variables permite incrementar de manera importante la complejidad computacional de los algoritmos simétricos. Ahora bien, para construir permutaciones variables utilizando los teoremas mencionados anteriormente se procede de la siguiente manera: se proponen tres números enteros positivos no mayores a 128!-1, usando el teorema JV se asocia a cada uno de ellos una permutación de 128 posiciones; una vez que se obtienen 3 permutaciones de esta índole, se procede a la construcción de una permutación sobre 192 posiciones utilizando el teorema Factorial, dicha permutación se utiliza en el algoritmo para la generación de las llaves y para llevar a cabo el proceso de mezclado de la información, logrando con esto un ahorro de recursos computacionales, porque si se construye la permutación de forma directa sobre cadenas de 192 posiciones usando el teorema JV, se operarían con números del orden de , mientras que con el uso del teorema Factorial antes mencionado se trabajarían con números del orden de Por último, el ahora estándar internacional AES comúnmente utiliza llaves de 128 bits, brindando un nivel aceptable de seguridad, dado que es resistente a ataques conocidos a la fecha; con respecto a un ataque de fuerza bruta se requerirán al menos búsquedas para encontrar una llave que sea utilizada para descifrar un mensaje, lo cual por el momento no es factible. En este trabajo se propone el uso de llaves de 192 bits, incrementando la seguridad un nivel de al menos debido al empleo de permutaciones variables y no fijas. 1 5

16 CAPÍTULO I ESQUEMAS DE ENCRIPTACIÓN SIMÉTRICA (LLAVE PRIVADA) De acuerdo con los autores Menezes, Oorschot y Vanstone, un esquema de cifrado simétrico puede utilizar llaves privadas o llaves públicas (6). El enfoque en este trabajo será en los algoritmos de cifrado por bloque (block cipher) que utilizan llaves privadas. Un algoritmo de cifrado simétrico por bloque es una función donde se mapean n-bits de un texto plano (plaintext block) en n-bits de un texto encriptado (ciphertext block); n es llamada la longitud del bloque (blocklength). Esto puede verse como un simple cifrador de sustitución con un tamaño de carácter grande (largo). La función es parametrizada por una k-bit llave K, tomando valores de un subconjunto k (el espacio de llaves o esquema de llaves, Key Schedule) de un conjunto de todos los k-bits vectores V k. Se asume y es deseable en la medida de lo posible, que todas las llaves sean generadas aleatoriamente. Una vez más, conforme a lo escrito por Menezes, Oorschot y Vanstone (6), para lograr un desencriptado único, la función para encriptar debe ser uno a uno (esto es, invertible). Para un n-bit texto claro, un n-bit texto cifrado y una llave fija, la función es una biyección. Cada llave potencialmente define una biyección diferente. Como se ha mencionado en la parte introductoria del trabajo, se llama esquema de encriptación simétrico porque la llave que se utiliza para llevar a cabo la encriptación es la misma que se utiliza para la desencriptación. Diferentes autores utilizan letras distintas para representar los elementos que intervienen en los algoritmos de cifrado, sin embargo, en esencia y sintácticamente, un criptosistema consiste en: (1) 1 6

17 Un espacio de mensajes planos M: un conjunto de cadenas de caracteres sobre algún alfabeto, Un espacio de mensajes cifrados C: un conjunto de posibles mensajes cifrados, Un espacio de llaves de encriptación K: un conjunto de posibles llaves de encriptación, y un espacio de llaves de desencriptación K : un conjunto de posibles llaves de desencriptación, Un algoritmo eficiente de generación de llaves G: N K x K Un algoritmo eficiente de encriptación E: M x K C Un algoritmo eficiente de desencriptación D: C x K M. La mayoría de los algoritmos de cifrado simétricos se apoyan en los conceptos de confusión y difusión (que serán explicados posteriormente), los cuales se combinan para dar lugar a los denominados algoritmos de cifrado de producto (7). Estas técnicas consisten básicamente en partir el mensaje en cadenas de tamaño fijo (bloques) y aplicar la función de cifrado a cada uno de ellos. Lo que se hace en la mayoría de los algoritmos de cifrado simétricos es intercalar la confusión (sustituciones simples) y la difusión (permutaciones). Esta combinación se conoce como cifrado de producto. La mayoría de los algoritmos se basan en diferentes capas de sustituciones y permutaciones, estructura que se llama Red de Sustitución- Permutación. Además, también se pueden intercalar operaciones binarias XOR para mezclar la información y brindar un nivel de seguridad mayor que efectuar alguna de estas operaciones por sí solas. 1 7

18 CONSTRUCCIÓN DE PERMUTACIONES PSEUDOALEATORIAS (ALGORITMOS SIMÉTRICOS DE BLOQUES) Como se ha mencionado anteriormente, los algoritmos de cifrado actuales incorporan una secuencia de permutaciones, sustituciones y operaciones XOR (8). El diseño común en este tipo de algoritmos es hacerlo a través de iteraciones (repeticiones). Un ejemplo clásico de un algoritmo de cifrado iterativo es aquel que requiere la especificación de una función ronda (vuelta) y un esquema de llaves (Key Schedule), donde la encriptación de un texto en claro será llevada a través de N r rondas similares. Se define una llave, K, como la secuencia aleatoria de bits de una longitud específica. K es utilizada para construir las Nr rondas de llaves (también denominadas sub-llaves), las cuales se denotan como K 1, K 2,, K Nr. El conjunto de sub-llaves (K 1, K 2,, K Nr ), es el denominado esquema de llaves. La función que define las rondas, denominada f, tiene dos argumentos de entrada: una llave de inicio (K r ) y un bloque de entrada (el cual se denota por w r-1 ). El próximo estado está definido como w r = f (w r-1,k r ). El estado inicial, w 0, esta dado por el texto en claro, x. El texto encriptado, y, está definido cuando todas las N r rondas se han completado. Por tanto, las operaciones de cifrado están dadas como sigue: 1 8 w 0 x w 1 f (w 0, K 1 ) w 2 f (w 1, K 2 )......

19 ... w Nr-1 f (w Nr-2, K Nr-1 ) w Nr f (w Nr-1, K Nr ) y w Nr. Para que el descifrado sea posible, la función f debe ser inyectiva (esto es, uno a uno), definida de dominio a contradominio. Cuando el contradominio se vuelve el dominio y el dominio original se vuelve contradominio, se puede decir que existe una función f -1 con la propiedad de sobreyectividad: f -1 (f(w,y),y)=w para todas las w e y. El proceso de descifrado se ve de manera inversa, como sigue: w Nr y w Nr-1 f -1 (w Nr, K Nr ) w 1 f -1 (w 2, K 2 ) w 0 f -1 (w 1, K 1 ) x w 0. Por otro lado, la definición de una Red de Sustitución-Permutación (Substitution Permutation Network, SPN), es un tipo especial de algoritmo de encriptación iterativo con un par de pequeños cambios. Supongamos que l y m son enteros positivos. Se tiene un texto en claro y un texto encriptado, ambos deberán ser cadenas de longitud (l)(m) (esto es, (l)(m) se denomina la longitud del bloque del algoritmo de cifrado). Una SPN está construida por dos componentes, los cuales se denotan por π s y π p. π s : {0; 1} l {0; 1} l es una permutación; π p : {1,,(l)(m)} {1,,(l)(m)} 1 9

20 también es una permutación. La permutación π s es llamada S-box (la letra "S" denota sustitución"). Ésta es utilizada para reemplazar r bits con un conjunto diferente de r bits. π p, por otro lado, es usada para permutar (l)(m) bits. Las Redes de Sustituciones-Permutaciones tienen características muy atractivas. Primero, su diseño es simple y muy eficiente, se puede implementar en hardware y software. En software, una S-box es usualmente implementada como una matriz cuadrada de n-renglones por n-columnas. En implementaciones de hardware, se requiere usar S-box relativamente pequeñas (8). Los estándares de cifrado de bloques, DES y AES cifran bloques de datos de 64 y 128 bits respectivamente, utilizando llaves de 56 (DES) y 128, 192, 256 (AES) bits. Para que un algoritmo de cifrado por bloques sea considerado bueno, debe ser capaz de soportar los ataques denominados búsquedas de llaves por fuerza bruta o búsqueda exhaustiva (9). Se debe observar que la finalidad de un algoritmo de cifrado por bloques es que permanezca irrompible en una cantidad de tiempo razonable (digamos por ejemplo, 20 años utilizando la tecnología disponible al momento). 2 0

21 REDES DE SUSTITUCIÓN PERMUTACIÓN XOR Una Red de Sustitución-Permutación consiste de Nr rondas. En cada ronda (salvo la última de ellas, la cual es ligeramente diferente), se realizan m sustituciones usando π s, seguida por una permutación usando π p. Antes de cada operación de sustitución, se aplica una llave a través de una operación binaria XOR (8). De acuerdo con el autor Stinson (8), se describirá una SPN, basada en sustituciones (π s ) y permutaciones (π p ). Sean l, m y Nr enteros positivos, sea π s : {0; 1} l {0; 1} l una permutación, y π p : {1,,(l)(m)} {1,,(l)(m)} una permutación también. Sean P=C= {0; 1} lm, y sea K un subconjunto de ({0; 1} lm ) Nr+1 todas las posibles llaves que son obtenidas de una llave K inicial. Desde el esquema de llaves (K 1, K 2,, K Nr+1 ), se llevará a cabo la encriptación de un texto plano x utilizando el siguiente algoritmo: Algoritmo SPN (x, π s, π p, (K 1, K 2,, K Nr+1 )) w 0 x for r 1 to Nr 1 u r w r-1 K r for i 1 to m do v r <i> π s (u r <i>) w r (v r πp(1),., v r π πp(lm)) u Nr w Nr-1 K Nr for i 1 to m 2 1

22 do v Nr <i> π s (u Nr <i> <i>) y v Nr K Nr+1 output (y) En el algoritmo anterior, u r representa la entrada a las cajas-s (S-boxes) en la ronda r, y v r es la salida de las cajas-permutación π p, y entonces u r+1 es construida desde w r con una operación XOR en la ronda k r+1 (a esto se le conoce como ronda de mezclado de llaves). En la última ronda, la permutación π p no se aplica. El algoritmo para encriptación también se utiliza para desencriptar, claro está, sufriendo algunas modificaciones en el esquema de llaves y en las cajas-s, debido a que para llevar a cabo la desencriptación se utilizan sus funciones en la ronda r. w r es obtenida a partir de v r aplicando la inversas. La figura 1, representa una red de sustitución-permutación que procesa 16 bits (texto plano, x) ) en 3 rondas, contiene 4 cajas de sustitución y utiliza 4 llaves de 16 bits, para dar como resultado un texto cifrado, y, de longitud 16 (bits). 2 2

23 Figura 1. Red de Sustitución-Permutación 2 3

24 EL PARADIGMA DE CONFUSIÓN-DIFUSIÓN Un concepto importante cuando se habla de criptografía es el llamado índice de coincidencia (index of coincidence) definido por W.F. Friedman (14) (15) (16), el cual indica la probabilidad de que dos letras (caracteres) seleccionadas al azar del texto cifrado sean idénticas. Este concepto es importante porque ayuda a determinar el tipo de algoritmo de cifrado que se utiliza al encriptar un texto: mono-alfabético o poli-alfabético. Cabe aclarar al lector que, un algoritmo de cifrado mono-alfabético es aquel en el que sólo hay un alfabeto de cifrado, lo cual a su vez significa que se encripta siguiendo la misma transformación. Por ejemplo, el algoritmo César cambia siempre una letra A por una D, así el descifrado se da sustituyendo la letra D por la A. Por otro lado, en un algoritmo polialfabético, hay más de un alfabeto de cifrado, lo que a su vez significa que, la relación entre el texto cifrado y el texto plano es una sustitución variable, lo que dificulta encontrar dicha relación para descifrar un texto cifrado. Ahora bien, de acuerdo con el autor Richard A. Mollin (14), se sabe que el índice de coincidencia para un algoritmo de cifrado mono-alfabético es de y el índice de coincidencia para un algoritmo poli-alfabético esta en el rango de a 0.065, tomando en cuenta el alfabeto de letras del idioma inglés. Además, para llaves de longitud grande el índice de coincidencia para algoritmos de cifrado poli-alfabéticos deberá ser cercano a Siguiendo el orden de ideas anteriores, para cualquier lenguaje como el inglés o español, los cuales contienen un alfabeto de 26 letras (27 en español, tomando en cuenta la ñ), en el cual cada letra tiene la misma frecuencia de aparición, tenemos que el índice de coincidencia es aproximadamente: 26(1/26) 2 = Por otro lado, de acuerdo con el autor Schneier (16) la Teoría de la Información define la cantidad de información contenida en un mensaje como el mínimo número de bits 2 4

25 necesarios para codificar todos los posibles significados del mensaje, asumiendo que todos los mensajes tienen la misma probabilidad. Formalmente, la cantidad de información en un mensaje, M, es medido a través de la entropía del mensaje, denotado por H(M). Por ejemplo, la entropía de un mensaje indicando el día de una semana es ligeramente menor a 3 bits. En general, la entropía de un mensaje medido en bits es log 2 n, donde n es el número de posibles significados (codificaciones). Se asume que cada codificación tiene la misma probabilidad. La entropía de un mensaje también mide la incertidumbre, esto es, el número de bits pertenecientes al mensaje claro necesarios para ser recobrado cuando el mensaje es convertido en mensaje cifrado. En el mismo orden de ideas, la frecuencia de un lenguaje esta dado por r=h(m)/n, donde N es la longitud del mensaje. La frecuencia del lenguaje Inglés toma varios valores entre 1.0 bits/carácter y 1.5 bits/carácter, para valores grandes de N. Shannon decía que la entropía depende de la longitud del texto. Específicamente él indicó una frecuencia de 2.3bits/carácter para 8 trozos de caracteres. Por otro lado, Thomas Cover utilizando técnicas de estimación encontró que la entropía era de 1.3 bits/carácter. Ahora bien, la frecuencia absoluta de un lenguaje es el máximo número de bits que pueden ser codificados en cada carácter, asumiendo que cada carácter tiene la misma probabilidad de aparición. Si hay L caracteres en un lenguaje, la frecuencia absoluta está dada por R=log 2 L. Esto último representa la máxima entropía de los caracteres de forma individual. Para el lenguaje Inglés (español), con 26 letras, la frecuencia absoluta es log 2 26, aproximadamente 4.7bits/carácter. A partir de las ideas expuestas anteriormente, se puede deducir que los lenguajes naturales son altamente redundantes. Ahora bien, la redundancia de un lenguaje, denotado por D, se define como: D=R-r. Por tanto, la redundancia para el lenguaje inglés es 4.7bits/carácter menos 1.3 bits/carácter, lo que representa 3.4 bits/carácter. Dicho en otras palabras, cada carácter del lenguaje Inglés acarrea 3.4 bits de información redundante. Lo cual es muy cercano al lenguaje Español. 2 5

26 En un mensaje en código ASCII, se tiene que hay 1.3 bits de información por byte perteneciente al mensaje. Esto significa que 6.7 bits representan información redundante, por consecuencia se tiene una redundancia de 0.84 bits de información por bit de texto ASCII, y una entropía de 0.16 bits de información por bit de texto ASCII. Ahora bien, Shannon también concluyó que la entropía de un criptosistema es una medida del tamaño del número de llaves posibles, K, y que esto se podía representar con la fórmula H(K)=log 2 K. Así, para un criptosistema con longitud de 64 bits en sus llaves, se tiene que la entropía del criptosistema es de 64 bits; para un criptosistema de 128 bits en sus llaves, la entropía del criptosistema es de 128 bits. En general, mientras más grande sea la entropía del criptosistema, más difícil será vulnerarlo por búsqueda exhaustiva de llaves. Para el algoritmo propuesto, que utiliza llaves de 192 bits, la entropía del criptosistema sería de 192 bits. Bien, la definición que dio Shannon a la distancia de unicidad, U, es una aproximación de la cantidad de texto cifrado, tal que la suma de la información real (entropía) en el correspondiente texto plano más la entropía de las llaves de cifrado sea igual al número de bits utilizados en el texto cifrado. Dicho de otra forma, para los criptosistemas simétricos, la distancia de unicidad está definida como la entropía del criptosistema divida por la redundancia del lenguaje. U=H(K) / D. La distancia de unicidad entre más grande mejor. Esto es, entre mayor sea la distancia de unicidad, más robusto será el criptosistema y más difícil de vulnerar. Por otra parte, si una persona lee un mensaje en el que faltan algunas letras, normalmente puede reconstruirlo. Esto sucede porque casi todos los símbolos de un lenguaje natural contiene información que se puede extraer de los símbolos alrededor (información que, en la práctica, se está enviando dos o más veces), o en otras palabras, porque el lenguaje natural es redundante. Puesto que tenemos mecanismos para definir la cantidad de información que presenta un suceso, se puede intentar medir el exceso de información (redundancia) de un lenguaje (7). 2 6

27 Ahora bien, existen dos técnicas básicas para ocultar la redundancia en un texto claro, a saber, la confusión y la difusión. Estos conceptos a pesar de su antigüedad resultan de un gran valor en criptografía moderna. La confusión trata de ocultar la relación entre el texto claro y el texto cifrado, dicha relación se da a partir de la llave, K, empleada, puesto que si no existiera jamás podríamos descifrar los mensajes. El mecanismo más simple de confusión es la sustitución, que consiste en cambiar cada ocurrencia de un símbolo en el texto claro por otro. La sustitución puede ser tan simple o tan compleja como uno desee (7). La difusión diluye la redundancia del texto claro repartiéndola a lo largo de todo el texto cifrado. El mecanismo más elemental para llevar a cabo una difusión es la transposición, que consiste en cambiar de sitio elementos individuales del texto claro (7), dicho con otras palabras, una difusión se logra usando permutaciones. 2 7

28 ESTÁNDAR DE ENCRIPTACIÓN DE DATOS (DATA ENCRYPTION STANDARD - DES) La Federal Information Processing Standards Publication Series (FIPS PUB) perteneciente al Instituto Nacional de Estándares y Tecnología (National Institute of Standards and Technology NIST) es la serie oficial de publicaciones relacionados con estándares y normas adoptadas y promulgadas bajo la provisión de la sección 5131 de la Acta de Reforma de la Dirección de Tecnologías de la Información de 1996 (Publicación de Ley ) y de la Acta de Seguridad en Cómputo de 1987 (Publicación de Ley ) de los Estados Unidos. Estos mandatos de ley han proporcionado a la Secretaría de Comercio y al NIST importantes responsabilidades para mejorar la utilización y dirección de los sistemas de cómputo y los sistemas relacionados con las telecomunicaciones en el Gobierno Federal. El NIST, a través de su Laboratorio de Tecnologías de la Información, provee liderazgo, asistencia técnica y coordinación de Gobierno que permite desarrollar estándares y normas en estas áreas (10). Cuando DES se utiliza en conjunto con el estándar X9.52 del American National Standards Institute (ANSI), provee una descripción completa de los algoritmos para la encriptación y desencriptación de información en código binario. La Encriptación de datos significa convertirlos a una forma initeligible llamada cifrado. Desencriptar datos significa convertir los datos cifrados a su forma original, llamado texto plano. DES describe ambas operaciones, las cuales están basadas en un número binario llamado llave (key) (10). Una llave DES consiste de 64 dígitos binarios, bits ( 0 s, 1 s), de los cuales 56 bits son generados aleatoriamente y usados directamente por el algoritmo. Los restantes 8 bits, no son utilizados por el algoritmo y pueden ser usados para la detección de errores. Los usuarios autorizados para accesar a un sistema de cómputo que cifre datos con DES, deben poseer la llave que fue usada para encriptar, para utilizarla en reversa y poder llevar a cabo el proceso de desencriptación (10). 2 8

29 La seguridad criptográfica de los datos depende de la seguridad provista por las llaves utilizadas al encriptar y desencriptar los datos. Los datos pueden ser recuperados desde el algoritmo solamente utilizando la misma llave utilizada para el proceso de encriptación. Puede ser posible determinar la llave de cifrado llevando a cabo un ataque exhaustivo de fuerza bruta, el cual consiste en adivinar la llave que fue utilizada para llevar a cabo el proceso de encriptación, probando llaves a través de un diccionario de llaves. ESTÁNDAR AVANZADO DE ENCRIPTACIÓN (AES) En Enero de 1997, el Instituto Nacional de Estándares y Tecnología de los Estados Unidos (United States National Institutte of Standards and Technology, NIST) formulaba el anuncio para desarrollar un nuevo algoritmo de cifrado simétrico como el nuevo estándar para reemplazar al algoritmo DES. El nuevo algoritmo debería llamarse Estándar Avanzado de Encriptación (Advanced Encription Standard, AES). A diferencia del proceso cerrado que se llevó a cabo para el diseño de DES, un comunicado público fue formalmente hecho en Septiembre de 1997 para el diseño del algoritmo AES. Este anuncio estipulaba que AES debería ser un algoritmo de encriptación simétrico sin clasificar, de carácter público; debería soportar (como mínimo) tamaños de bloque de 128 bits, llaves de 128, 192 y 256 bits, y debería tener una fortaleza de cifrado al nivel de triple DES pero debería ser más eficiente. Además, el algoritmo, de ser seleccionado, debería estar disponible para todo el mundo de forma libre (1). El 20 de agosto de 1998, NIST anunció un grupo de 15 algoritmos candidatos para convertirse en el estándar AES. Estos algoritmos habían sido analizados por miembros de la comunidad criptográfica alrededor del mundo. Se solicitaron comentarios públicos como revisión inicial para los 15 algoritmos candidatos (el periodo para emitir los comentarios 2 9

30 públicos iniciales fue denominado primer ronda). La primer ronda finalizó el 15 de abril de Usando los análisis y comentarios recibidos, NIST seleccionó cinco algoritmos finalistas. Los algoritmos seleccionados fueron: MARS, RC6, Rijndael, Serpent y Twofish. Estos algoritmos finalistas fueron sometidos a una segunda ronda de análisis con mayor profundidad. Ésta segunda ronda de análisis se cerró el 15 de mayo del año El 2 de octubre de ese mismo año, NIST anunció que se había seleccionado el algoritmo Rijndael para ser el próximo Estándar Avanzado de Encriptación (1). Rijndael fue diseñado por dos criptógrafos de origen Belga: Joan Daemen y Vincent Rijmen (3). 3 0

31 CAPÍTULO II DESCRIPCIÓN DE DES El algoritmo simétrico DES es el más conocido y tiempo atrás, utilizado mundialmente. Se basa en el algoritmo LUCIFER, desarrollado por IBM a principios de los setenta, y fue adoptado como estándar por el Gobierno de los Estados Unidos en 1976, para efectuar comunicaciones no clasificadas (7). El algoritmo DES codifica bloques de 64 bits empleando llaves de 56 bits. Es una Red de Feistel de 16 rondas, más dos permutaciones, una que se aplica al principio, IP, y otra que se aplica al final, denominada permutación inversa, IP -1. La función f, se compone de una permutación de expansión, E, que convierte el bloque de 32 bits correspondiente, en uno de 48 bits. Después realiza una operación XOR con el valor K i, también de 48 bits, aplica ocho sustituciones de 6 bits de entrada por 4 bits de salida, y efectúa una nueva permutación, P, para dar una salida parcial de 32 bits. La figura 2 representa la función f del algoritmo DES. 3 1

32 Figura 2. Función f del algoritmo DES Se calculan un total de 16 llaves, K i, una para cada ronda, efectuando primero una permutación inicial, PC1,, sobre la llave de 64 bits, y resultando una nueva cadena de 56 bits, la cual se parte en dos cadenas de 28 bits, llevando a cabo desplazamientos a la izquierda de cada una de las dos mitades resultantes, y realizando finalmente una segunda permutación, PC2,, de 48 bits en cada ronda, para dar como resultado una iésima llave, K i. Los desplazamientos a la izquierda son de dos bits, salvo para las rondas 1, 2, 9 y 16, en las que se desplaza sólo un bit. El lector debe observar que la llave inicial 3 2

33 tiene en principio 64 bits, pero una vez procesada por el algoritmo se ignoran ocho de ellos, quedando llaves de 56 bits. La figura 3, muestra al lector la forma en que se calcula el esquema de llaves. Figura 3. Esquema de llaves del algoritmo DES Para desencriptar basta con usar el mismo algoritmo empleando las llaves, K i, en orden inverso. 3 3

34 El algoritmo DES presenta algunas llaves débiles. En general, todos aquellos valores de la llave que conducen a una secuencia inadecuada de K i serán poco recomendables. Distinguiremos entre llaves débiles, que son aquellas que generan un conjunto de dieciséis valores iguales de K i, y llaves semidébiles que generan dos valores diferentes de K i, cada uno de los cuales aparece ocho veces (7). La figura 4, muestra llaves débiles y la figura 5, llaves semidébiles. Llave F1F1F1F0E0E0E0E E0E0E0E0F1F1F1F1 FEFEFEFEFEFEFEFE Llave tras aplicar PC FFFFFFF FFFFFFF FFFFFFF FFFFFFF Figura 4. Llaves débiles para el algoritmo DES (16 bits), expresadas en hexadecimal Llave 01FE01FE01FE01FE FE01FE01FE01FE01 1FE01FE00EF10EF1 E01FE01FF10EF10E 01E001E001F101F1 E001E001F101F101 1FFE1FFE0EFE0EFE FE1FFE1FFE0EFE0E 011F011F010E010E 1F011F010E010E01 E0FEE0FEF1FEF1FE FEE0FEE0FEF1FEF1 Llave tras aplicar PC1 AAAAAAA AAAAAAA AAAAAAA AAAAAAA AAAAAAA AAAAAAA FFFFFFF FFFFFFF AAAAAAA FFFFFFF AAAAAAA FFFFFFF Figura 5. Llaves semidébiles para el algoritmo DES (16 bits), expresadas en hexadecimal 3 4

35 DESCRIPCIÓN DE TRIPLE-DES El algoritmo Triple-DES se llama así porque consiste en aplicar varias veces el algoritmo DES con diferentes llaves al mensaje original. Se puede hacer ya que el algoritmo DES no presenta estructura de grupo (7). El algoritmo Triple-DES responde a la siguiente estructura: C = E 1 k (E -1 K 2 (E 1 k (M) ) ). Es decir, se codifica con la sub-llave K 1, se decodifica con K 2 y volvemos a codificar con K 1. La llave resultante es la concatenación de K 1 y K 2, con una longitud de 112 bits. La figura 6, muestra gráficamente el proceso que sigue Triple-DES. Figura 6. Representación de Triple-DES 3 5

36 DESCRIPCIÓN DE AES De acuerdo con el Instituto Nacional de Estándares y Tecnología (NIST) en su Publicación (FIPS PUB 197) (11), se describirá el algoritmo AES. El Estándar Avanzado de Encriptación (AES) es un algoritmo que se utiliza para proteger datos electrónicos. Es un algoritmo simétrico que procesa bloques de datos permitiendo encriptar y desencriptar información. Este algoritmo es capaz de usar llaves de 128, 192 y 256 bits para encriptar y desencriptar bloques de 128 bits. AES puede ser implementado en software o hardware. La implementación puede depender de factores como la tecnología utilizada o el ambiente de programación. El estándar se considera efectivo para su aplicación desde el 26 de mayo de El lector debe referirse al glosario, al final del trabajo para comprender los términos y acrónimos que se utilizan en la definición del algoritmo. Como ya se ha mencionado, las entradas y salidas del algoritmo AES consisten de secuencias de 128 bits, a los cuales se les conoce como bloques de datos. El algoritmo que permite calcular las llaves (Cipher Key) utiliza bloques de datos de 128, 192 o 256 bits. La unidad básica de procesamiento del algoritmo AES son los bytes (conjunto de 8 bits). En este caso, un mensaje de 128 bits (texto plano o texto cifrado) es un segmento de 16 bytes. Representado por: x = x 0, x 1, x 2,, x 15. Y una llave quedaría representada como: 3 6 K = k 0, k 1, k 2,, k 15.

37 Las estructuras de datos que representan estas entradas quedan definidas por matrices cuadradas de 4 renglones por 4 columnas, de la siguiente manera: x 0 x 4 x 8 x 12 x = x 1 x 5 x 9 x 13 x 2 x 6 x 10 x 14 x 3 x 7 x 11 x 15 k 0 k 4 k 8 k 12 K = k 1 k 5 k 9 k 13 k 2 k 6 k 10 k 14 k 3 k 7 k 11 k 15 De forma similar al algoritmo DES (incluso de forma similar a la mayoría de algoritmos simétricos modernos), el algoritmo Rijndael (AES) comprende un número de iteraciones de transformaciones denominadas rondas. En el caso de mensajes de entrada de 128 bits y llaves del mismo tamaño se iteran 10 rondas. Para el caso de ocupar llaves de 192 bits se iteran 12 rondas, para el caso de llaves de 256 bits se iteran 14 rondas. La tabla siguiente resume la información descrita. Key Length (Nk words) Block Size (Nb words) Number of Rounds (Nr) AES AES AES

38 Una ronda en el algoritmo queda denotada por: Round (State, RoundKey). Aquí State es un arreglo bidimensional, que define palabras de 32 bits y representa entradas y salidas al mismo tiempo. Gráficamente se representa como: s 0,0 s 0,1 s 0,2 s 0,3 State = s 1,0 s 1,1 s 1,2 s 1,3 s 2,0 s 2,1 s 2,2 s 2,3 s 3,0 s 3,1 s 3,2 s 3,3 RoundKey es una operación XOR que se realiza con las columnas del arreglo State y las llaves (palabras de 32 bits) definidas en el esquema de llaves (Key Expansion). La ejecución de una ronda causa que los elementos del arreglo State cambien su valor. Para el proceso de encriptación, la primera ronda toma los datos de entrada del texto plano (Plaintext) y los coloca en el State acomodados por columnas. Las operaciones que se efectúan en una ronda (a diferencia de la última) quedan definidas en el siguiente orden: Round(State, RoundKey) { SubBytes(State); ShiftRows(State); MixColumns(State); AddRoundKey(State, RounKey); } 3 8

39 La ronda final es diferente con respecto a las anteriores en que se omite la función MixColumns( ); quedando de la siguiente manera. FinalRound(State, RoundKey) { SubBytes(State); ShiftRows(State); AddRoundKey(State, RoundKey); } Para llevar a cabo el proceso de descifrado se procede de manera inversa: Round -1 (State, RoundKey) { InvShiftRows(State); InvSubBytes(State); AddRoundKey(State, RoundKey); InvMixColumns(State); } Y la ronda final, FinalRound -1 (State, RounKey) { InvShiftRows(State); InvSubBytes(State); AddRoundKey(State, RoundKey); } En este punto, se describirán las funciones internas que se procesan en el algoritmo de cifrado Rijndael. 3 9

40 Función SubBytes( ) La función SubBytes( ) es una transformación no lineal de bytes, llamada sustitución, que opera independientemente cada byte en el arreglo State usando una caja (tabla) de sustitución (S-Box). Esta S-Box es invertible y se muestra de forma gráfica posteriormente. Cualquier byte diferente de 0 s, que pertenecen al campo finito GF(2 8 ) inverso, descrito en el FIPS-197 es sustituido por la siguiente transformación: [b ] = [A] x [b] + [c], La matriz A, queda definida como: A = Y el vector c, queda definido como: c =

41 Por tanto, se tiene que la representación matricial de [b ] = [A] x [b] + [c], como sigue: b 0 b 1 b b 0 b 1 b b 3 = x b b 4 b 5 b 6 b b 4 b 5 b 6 b La figura 7 ilustra el efecto de la función SubBytes( ) sobre el arreglo State. Figura 7. SubBytes( ) aplica las cajas-s a cada byte del arreglo State 4 1

42 La S-Box usada en la función SubBytes( ) es presentada en formato hexadecimal en la figura 8. Por ejemplo, si s 1,1 = {85}, entonces el valor de sustitución que se debe calcular, debe determinarse por, el renglón 8, columna 5 en la caja-s. Esta operación dará como resultado s 1,1 ={97}. x y a b c d e f c 77 7b f2 6b 6f c b fe d7 ab 76 1 ca 82 c9 7d fa f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd f f7 cc 34 a5 e5 f1 71 d c7 23 c a e2 eb 27 b c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d f9 02 7f 50 3c 9f a a3 40 8f 92 9d 38 f5 bc b6 da ff f3 d2 8 cd 0c 13 ec 5f c4 a7 7e 3d 64 5d f dc 22 2a ee b8 14 de 5e 0b db a e0 32 3a 0a c c2 d3 ac e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 fa ea 65 7a ae 08 c ba e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b f6 0e b9 86 c1 1d 9e e e1 f d9 8e 94 9b 1e 87 e9 ce df f 8c a1 89 0d bf e d 0f b0 54 bb 16 Figura 8. S-Box: valores de sustitución por cada byte xy (en formato hexadecimal) 4 2

43 Función ShiftRows( ) En la función ShiftRows( ), los bytes de las tres últimas filas (renglones) en el arreglo State son rotadas cíclicamente sobre diferentes corrimientos. El renglón 0 no se altera en esta función. Específicamente la función ShiftRows( ) procede de la siguiente manera: s r,c = s r,(c+shift(r,nb))modnb; para 0 < r < 4 y 0 < c < Nb,, Donde el valor de corrimiento, shift(r,nb) depende del número de renglón, r, como sigue: shift(1,4)=1; shift(2,4)=2; shift(3,4)=3. (Recordar que Nb=4). Esquemáticamente (figura 9), se representan los corrimientos de la siguiente manera: Figura 9. ShiftRows( ) corrimientos cíclicos en los últimos tres renglones del arreglo State 4 3

44 Función MixColumns( ) Esta función opera sobre cada columna del arreglo State. Así que, como el arreglo State es una matriz de 4x4, la función MixColumns( ) se repite 4 veces. Cada columna es considerada como un polinomio sobre el campo GF(2 8 ), y multiplicada módulo x 4 +1 con un polinomio fijo a(x),, dado por: a(x) = {03} x 3 + {01} x 2 + {01} x + {02} Matricialmente se representa de la siguiente manera: s 0,c s 0,c s 1,c = x s 1,c s 2,c s 2,c s 3,c s 3,c La figura 10, ilustra la función MixColumns( ). Figura 10. MixColumns( ) opera en el arreglo State columna por columna 4 4

45 Función AddRoundKey( ) En la función AddRoundKey( ), una llave w l+c del esquema de llaves (Key Expansion) es operada con cada columna del arreglo State con una operación XOR bit a bit hasta completar el tamaño del bloque de datos (128 bits). Gráficamente la función AddRoundKey( ), queda representada en la figura 11. Figura 11. AddRoundKey( ); opera cada columna del arreglo State con una llave a través de una operación XOR 4 5

46 Key Expansion El algoritmo AES toma una llave K, y realiza una rutina denominada Key Expansion para generar un esquema de llaves (key schedule). La rutina Key Expansion genera un total de Nb(Nr+1) palabras: el algoritmo requiere un conjunto inicial de Nb palabras, y cada una de las Nr rondas requieren Nb palabras de un bloque de llave (key data). El esquema de llaves (key Schedule) consiste de un arreglo lineal de palabras de 4-bytes, denotadas [w i ], con i en el rango 0 i < Nb(Nr+1). El algoritmo en pseudo-código se presenta a continuación: KeyExpansion(byte key[4*nk], word w[nb*(nr+1)], Nk) begin word temp i = 0 while (i < Nk) w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]) i = i+1 end while i = Nk end while (i < Nb * (Nr+1)] temp = w[i-1] if (i mod Nk = 0) temp = SubWord(RotWord(temp)) xor Rcon[i/Nk] else if (Nk > 6 and i mod Nk = 4) temp = SubWord(temp) end if w[i] = w[i-nk] xor temp i = i + 1 end while 4 6

47 SubWord( ) es una función que toma una palabra de entrada (4-byte) y le aplica la sustitución S-Box a cada uno de los 4-bytes, produciendo una palabra de salida. La función RotWord( ) toma una palabra [a 0,a 1,a 2,a 3 ] como entrada, realiza una permutación cíclica y regresa la palabra [a 1,a 2,a 3,a 0 ]. La ronda constante Rcon[i], contiene los valores dados por [x i-1,{00},{00},{00}], con x i-1 potencias de x (x es denotada como {02}) en el campo GF(2 8 ) (11). Como el lector puede apreciar en el pseudo-código, las primeras Nk palabras de la llave a expandir son tomadas de la llave inicial (Cipher Key). Cada palabra siguiente, w[i], es operada a través de un XOR con la palabra anterior, w[i-1]; continua así para las todas las posiciones de la palabra. Para las palabras que corresponden con las posiciones que son múltiplos de Nk, una transformación es aplicada a w[i-1] antes de la operación XOR, seguida de una operación XOR con el arreglo constante Rcon[i]. Dicha transformación consiste de un corrimiento cíclico de los bytes en una palabra (RotWord( )), seguida de una sustitución de todos los bytes en la palabra (SubWord( )). Cabe resaltar que la rutina para expandir una llave de 256 bits (Nk=8) es ligeramente diferente de las rutinas para expandir llaves de 128 y 192 bits. Si Nk=8 e i-4 es múltiplo de Nk, entonces SubWord( ) se aplica a la palabra w[i-1] antes de la operación XOR. 4 7

Descripción del algoritmo DES (Data Encryption Standard)

Descripción del algoritmo DES (Data Encryption Standard) Descripción del algoritmo DES (Data Encryption Standard) Jorge Sánchez Arriazu diciembre de 1999 DES Introducción DES (Data Encryption Standard, estándar de cifrado de datos) es un algoritmo desarrollado

Más detalles

3. Algoritmo DES (Data Encription Standard)

3. Algoritmo DES (Data Encription Standard) 3. Algoritmo DES (Data Encription Standard) 3.1. Fundamentos Cifrado por bloques (block cipher) Opera sobre un bloque de texto plano de n bits para producir un texto cifrado de n bits. Tipicamente, la

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA Para generar una transmisión segura de datos, debemos contar con un canal que sea seguro, esto es debemos emplear técnicas de forma que los datos que se envían de una

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Semana 13: Encriptación. Cifrado simétrico

Semana 13: Encriptación. Cifrado simétrico Semana 13: Encriptación Cifrado simétrico Aprendizajes esperados Contenidos: Características y principios del cifrado simétrico Algoritmos de cifrado simétrico Encriptación Simétrica En la encriptación

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...

Más detalles

Dra. Elsa Estévez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Dra. Elsa Estévez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Controles de Entorno Dra. Elsa Estévez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2do. Cuatrimestre 2010 Contenido Controles Criptográficos Definiciones Técnicas

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos

Más detalles

Unidad Didáctica. Códigos Binarios

Unidad Didáctica. Códigos Binarios Unidad Didáctica Códigos Binarios Programa de Formación Abierta y Flexible Obra colectiva de FONDO FORMACION Coordinación Diseño y maquetación Servicio de Producción Didáctica de FONDO FORMACION (Dirección

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Profesor: M. en C. Luis Rodolfo Coello Galindo

Profesor: M. en C. Luis Rodolfo Coello Galindo Área Académica: Computación Tema: Seguridad en Redes Profesor: M. en C. Luis Rodolfo Coello Galindo Periodo: Julio Diciembre de 2013 Tema: Network Security Abstract The network security comprises an area

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION CHIQUINQUIRA (BOYACA) 2015 1 CONTENIDO Pág. QUE ES UN SISTEMA BINARIO. 3 CORTA HISTORIA DE LOS

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Puedo estar tranquilo acerca de la información de mi empresa? Donde puedo poner mis archivos cuando viajo?

Puedo estar tranquilo acerca de la información de mi empresa? Donde puedo poner mis archivos cuando viajo? Puedo estar tranquilo acerca de la información de mi empresa? Donde puedo poner mis archivos cuando viajo? Cómo hago llegar esta información confidencial a mis gerentes o clientes? Necesito un lugar donde

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo SISTEMAS NUMERICOS SISTEMAS NUMERICOS Si bien el sistema de numeración binario es el más importante de los sistemas digitales, hay otros que también lo son. El sistema decimal es importante porque se usa

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

Informática Bioingeniería

Informática Bioingeniería Informática Bioingeniería Representación Números Negativos En matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo. Sin embargo, en una computadora,

Más detalles

SISTEMAS DE TRANSMISIÓN Y REDES INALÁMBRICAS INTRODUCCIÓN

SISTEMAS DE TRANSMISIÓN Y REDES INALÁMBRICAS INTRODUCCIÓN INTRODUCCIÓN Criptografía proviene del griego y significa Escritura secreta. Se debe hacer una distinción entre cifrados y códigos: Un cifrado es una transformación carácter a carácter o bit a bit, sin

Más detalles

Cifras significativas e incertidumbre en las mediciones

Cifras significativas e incertidumbre en las mediciones Unidades de medición Cifras significativas e incertidumbre en las mediciones Todas las mediciones constan de una unidad que nos indica lo que fue medido y un número que indica cuántas de esas unidades

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN)

SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN) SISTEMAS NUMÉRICOS (SISTEMAS DE NUMERACIÓN) INTRODUCCIÓN Desde hace mucho tiempo, el hombre en su vida diaria se expresa, comunica, almacena información, la manipula, etc. mediante letras y números. Para

Más detalles

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Los sistemas de numeración se clasifican en: posicionales y no posicionales. SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar

Más detalles

Métodos Encriptación. Tópicos en Sistemas de Computación Módulo de Seguridad

Métodos Encriptación. Tópicos en Sistemas de Computación Módulo de Seguridad Métodos Encriptación Tópicos en Sistemas de Computación Módulo de Seguridad Temario Introducción Breve historia Algoritmos simétricos Algoritmos asimétricos Protocolos seguros Ejemplos Introducción Porqué

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema decimal

SISTEMAS DE NUMERACIÓN. Sistema decimal SISTEMAS DE NUMERACIÓN Sistema decimal Desde antiguo el Hombre ha ideado sistemas para numerar objetos, algunos sistemas primitivos han llegado hasta nuestros días, tal es el caso de los "números romanos",

Más detalles

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se

Más detalles

Julio César Mendoza T. Ingeniería de Sistemas Quito

Julio César Mendoza T. Ingeniería de Sistemas Quito 46 Julio César Mendoza T. Ingeniería de Sistemas Quito 47 RESUMEN En el presente artículo se presenta una breve introducción a la criptografía sin profundizar en las matemáticas que soportan los algoritmos

Más detalles

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

Más detalles

Subespacios vectoriales en R n

Subespacios vectoriales en R n Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo

Más detalles

INSTITUTO VALLADOLID PREPARATORIA página 9

INSTITUTO VALLADOLID PREPARATORIA página 9 INSTITUTO VALLADOLID PREPARATORIA página 9 página 10 FACTORIZACIÓN CONCEPTO Para entender el concepto teórico de este tema, es necesario recordar lo que se mencionó en la página referente al nombre que

Más detalles

UD 1. Representación de la información

UD 1. Representación de la información UD 1. Representación de la información 1.1 INTRODUCCION... 1 1.2 SISTEMAS DE REPRESENTACIÓN... 2 1.2.1 El Sistema Decimal.... 2 1.2.2 Teorema Fundamental de la Numeración. (TFN)... 2 1.2.3 El Sistema Binario....

Más detalles

1. SISTEMAS DIGITALES

1. SISTEMAS DIGITALES 1. SISTEMAS DIGITALES DOCENTE: ING. LUIS FELIPE CASTELLANOS CASTELLANOS CORREO ELECTRÓNICO: FELIPECASTELLANOS2@HOTMAIL.COM FELIPECASTELLANOS2@GMAIL.COM PAGINA WEB MAESTROFELIPE.JIMDO.COM 1.1. INTRODUCCIÓN

Más detalles

VII. Estructuras Algebraicas

VII. Estructuras Algebraicas VII. Estructuras Algebraicas Objetivo Se analizarán las operaciones binarias y sus propiedades dentro de una estructura algebraica. Definición de operación binaria Operaciones como la suma, resta, multiplicación

Más detalles

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales Definición(1) Sistemas numéricos MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Un sistema de representación numérica es un sistema de lenguaje que consiste en: un conjunto ordenado de símbolos

Más detalles

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009 Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios Dra. Noemí L. Ruiz Limardo 2009 Objetivos de la Lección Al finalizar esta lección los estudiantes: Identificarán, de una lista de expresiones

Más detalles

Introducción. Algoritmos

Introducción. Algoritmos Introducción La firma digital es una herramienta que permite garantizar la autoría e integridad de los documentos digitales, posibilitando que éstos gocen de una característica que únicamente era propia

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya LOS SISTEMAS DE REPRESENTACIÓN NUMÉRICA Es común escuchar que las computadoras utilizan el sistema binario para representar cantidades e instrucciones. En esta sección se describen las ideas principales

Más detalles

Sistema binario. Representación

Sistema binario. Representación Sistema binario El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno ( y ). Es el que se utiliza

Más detalles

EJERCICIOS DEL TEMA 1

EJERCICIOS DEL TEMA 1 EJERCICIOS DEL TEMA 1 Introducción a los ordenadores 1) Averigua y escribe el código ASCII correspondiente, tanto en decimal como en binario, a las letras de tu nombre y apellidos. Distinguir entre mayúsculas/minúsculas,

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING. INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING. JUAN DE LA ROSA T. TEMA 1 Desde tiempos remotos el hombre comenzó a

Más detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

Matemática de redes Representación binaria de datos Bits y bytes

Matemática de redes Representación binaria de datos Bits y bytes Matemática de redes Representación binaria de datos Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo pueden entender

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

Tema 1. Representación de la información MME 2012-20131

Tema 1. Representación de la información MME 2012-20131 Tema 1 Representación de la información 1 Índice Unidad 1.- Representación de la información 1. Informática e información 2. Sistema de numeración 3. Representación interna de la información 2 Informática

Más detalles

Matrices Invertibles y Elementos de Álgebra Matricial

Matrices Invertibles y Elementos de Álgebra Matricial Matrices Invertibles y Elementos de Álgebra Matricial Departamento de Matemáticas, CCIR/ITESM 12 de enero de 2011 Índice 91 Introducción 1 92 Transpuesta 1 93 Propiedades de la transpuesta 2 94 Matrices

Más detalles

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información TEMA 1: SISTEMAS INFORMÁTICOS Parte 2: representación de la información Qué vamos a ver? Cómo se representa y almacena la información en un ordenador Cómo podemos relacionar la información que entendemos

Más detalles

Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el

Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el Método simétrico con cifrado por bloques desarrollado por Counterpane Labs y presentado al concurso del NIST que buscaba un sustituto para DES (el concurso AES). Twofish llegó a la ronda final del concurso

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Espacios generados, dependencia lineal y bases

Espacios generados, dependencia lineal y bases Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................

Más detalles

GENERALIDADES DE BASES DE DATOS

GENERALIDADES DE BASES DE DATOS GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea

Más detalles

Tema 2. La Información y su representación

Tema 2. La Información y su representación Tema 2. La Información y su representación 2.1 Introducción. Un ordenador es una máquina que procesa información. La ejecución de un programa implica la realización de unos tratamientos, según especifica

Más detalles

El modelo de ciclo de vida cascada, captura algunos principios básicos:

El modelo de ciclo de vida cascada, captura algunos principios básicos: Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto de desarrollo de software. El primer ciclo de vida del software, "Cascada",

Más detalles

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información Guía de Cifrado Preguntas y respuestas sobre el cifrado de la información personal La guía para aprender a cifrar tu información 2 Qué es lo que estamos cuidando? A través del cifrado cuidamos de fotos,

Más detalles

Apuntes Recuperación ante Fallas - Logging

Apuntes Recuperación ante Fallas - Logging Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

VULNERABILIDADES CRIPTOGRÁFICAS. Por Alexandre Ramilo Conde y Pablo Prol Sobrado

VULNERABILIDADES CRIPTOGRÁFICAS. Por Alexandre Ramilo Conde y Pablo Prol Sobrado VULNERABILIDADES CRIPTOGRÁFICAS Por Alexandre Ramilo Conde y Pablo Prol Sobrado 1. Cifrado Simétrico a. DES b. AES Índice 2. Cifrado Asimétrico a. RSA b. DSA 3. Funciones Hash a. MD5 b. SHA-0 y SHA-1 c.

Más detalles

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

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Generación de Números Aleatorios Números elegidos al azar son útiles en diversas aplicaciones, entre las cuáles podemos mencionar: Simulación o métodos de Monte Carlo: se simula un proceso natural en forma

Más detalles

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos: UNIDAD Nº 1: TECNICATURA EN INFORMATICA UNLAR - CHEPES 1.1. INTRODUCCION 1. SISTEMAS DE NUMERACION El mundo del computador es un mundo binario. Por el contrario, el mundo de la información, manejada por

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1 La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas (redes más pequeñas) para que cada una de estas

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

Transformación de gráfica de funciones

Transformación de gráfica de funciones Transformación de gráfica de funciones La graficación de las funciones es como un retrato de la función. Nos auda a tener una idea de cómo transforma la función los valores que le vamos dando. A partir

Más detalles

Naturaleza binaria. Conversión decimal a binario

Naturaleza binaria. Conversión decimal a binario Naturaleza binaria En los circuitos digitales sólo hay 2 voltajes. Esto significa que al utilizar 2 estados lógicos se puede asociar cada uno con un nivel de tensión, así se puede codificar cualquier número,

Más detalles

(decimal) 128.10.2.30 (hexadecimal) 80.0A.02.1E (binario) 10000000.00001010.00000010.00011110

(decimal) 128.10.2.30 (hexadecimal) 80.0A.02.1E (binario) 10000000.00001010.00000010.00011110 REDES Internet no es un nuevo tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes muy distintas entre sí. Internet no es dependiente de la máquina ni del sistema operativo

Más detalles

Tema 1. SISTEMAS DE NUMERACION

Tema 1. SISTEMAS DE NUMERACION Tema 1. SISTEMAS DE NUMERACION SISTEMAS DE NUMERACION Sistemas de numeración Sistema decimal Sistema binario Sistema hexadecimal Sistema octal. Conversión entre sistemas Códigos binarios SISTEMAS DE NUMERACION

Más detalles

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Artículo adaptado del artículo de Wikipedia Sistema Binario en su versión del 20 de marzo de 2014, por varios autores bajo la Licencia de Documentación

Más detalles

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad

Más detalles

4 APLICACIONES LINEALES. DIAGONALIZACIÓN

4 APLICACIONES LINEALES. DIAGONALIZACIÓN 4 APLICACIONES LINEALES DIAGONALIZACIÓN DE MATRICES En ocasiones, y con objeto de simplificar ciertos cálculos, es conveniente poder transformar una matriz en otra matriz lo más sencilla posible Esto nos

Más detalles

Tema 11: Sistemas combinacionales

Tema 11: Sistemas combinacionales Tema 11: Sistemas combinacionales Objetivo: Introducción Generador Comprobador de paridad Comparadores Semisumador (HA) Sumador Completo (FA) Expansión de sumadores Sumador paralelo con arrastre serie

Más detalles

SISTEMAS DE NUMERACIÓN

SISTEMAS DE NUMERACIÓN SISTEMAS DE NUMERACIÓN EL SISTEMA DECIMAL Es el sistema usado habitualmente en todo el mundo. Según los antropólogos, el origen del sistema decimal está en los diez dedos que tenemos los humanos en las

Más detalles

ESTRUCTURAS ALGEBRAICAS 1

ESTRUCTURAS ALGEBRAICAS 1 ESTRUCTURAS ALGEBRAICAS Se da la relación entre dos conjuntos mediante el siguiente diagrama: (, ) (2, 3) (, 4) (, 2) (7, 8) (, ) (3, 3) (5, ) (6, ) (, 6)........ 5 6......... 2 5 i) Observa la correspondencia

Más detalles

Matrices equivalentes. El método de Gauss

Matrices equivalentes. El método de Gauss Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar

Más detalles

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES: DIRECCIONES IP Y CLASES DE REDES: La dirección IP de un dispositivo, es una dirección de 32 bits escritos en forma de cuatro octetos. Cada posición dentro del octeto representa una potencia de dos diferente.

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

❷ Aritmética Binaria Entera

❷ Aritmética Binaria Entera ❷ Una de las principales aplicaciones de la electrónica digital es el diseño de dispositivos capaces de efectuar cálculos aritméticos, ya sea como principal objetivo (calculadoras, computadoras, máquinas

Más detalles

Características de funciones que son inversas de otras

Características de funciones que son inversas de otras Características de funciones que son inversas de otras Si f es una función inyectiva, llamamos función inversa de f y se representa por f 1 al conjunto. f 1 = a, b b, a f} Es decir, f 1 (x, y) = { x =

Más detalles

D.E.S. (Data Encryption Standard) Cifrado Convencional

D.E.S. (Data Encryption Standard) Cifrado Convencional D.E.S. (Data Encryption Standard) Cifrado Convencional ANTECEDENTES Horst Feistel (IBM) Cómo usar sustitución monoalfabética y obtener un criptosistema aceptable? Incorporación de transposición Cambio

Más detalles

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS Unidad 6: Polinomios con coeficientes enteros. Al final deberás haber aprendido... Expresar algebraicamente enunciados sencillos. Extraer enunciados razonables

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. Qué significa esto? Decir que una empresa es eficiente es decir que no

Más detalles

SistemA Regional de Información y Evaluación del SIDA (ARIES)

SistemA Regional de Información y Evaluación del SIDA (ARIES) SistemA Regional de Información y Evaluación del SIDA (ARIES) Que es ARIES? El Sistema Regional de Información y Evaluación del SIDA (ARIES) es un sistema informático del VIH/SIDA basado en el internet

Más detalles

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos

8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos COLEGIO HISPANO INGLÉS Rambla Santa Cruz, 94-38004 Santa Cruz de Tenerife +34 922 276 056 - Fax: +34 922 278 477 buzon@colegio-hispano-ingles.es TECNOLOGÍA 4º ESO Sistemas de numeración Un sistema de numeración

Más detalles

28 = 16 + 8 + 4 + 0 + 0 = 11100 1

28 = 16 + 8 + 4 + 0 + 0 = 11100 1 ELECTRÓNICA DIGITAL 4º ESO Tecnología Introducción Imaginemos que deseamos instalar un sistema electrónico para la apertura de una caja fuerte. Para ello debemos pensar en el número de sensores que nos

Más detalles

Semana 14: Encriptación. Cifrado asimétrico

Semana 14: Encriptación. Cifrado asimétrico Semana 14: Encriptación Cifrado asimétrico Aprendizajes esperados Contenidos: Características y principios del cifrado asimétrico Algoritmos de cifrado asimétrico Funciones de hash Encriptación Asimétrica

Más detalles