Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 GUÍA DE APRENDIZAJE CODIFICACIÓN DE LA INFORMACIÓN GRADUADO EN INGENIERÍA DE COMPUTADORES DATOS DESCRIPTIVOS 1 CENTRO RESPONSABLE E.U. de Informática OTROS CENTROS IMPLICADOS CICLO Grado sin atribuciones MÓDULO MATERIA: Optativa ASIGNATURA: CODIFICACIÓN DE LA INFORMACIÓN CURSO: 4º DEPARTAMENTO RESPONSABLE MATEMÁTICA APLICADA (ESCUELA UNIVERSITARIA DE INFORMÁTICA) CRÉDITOS EUROPEOS: 6 CARÁCTER: Optativa ITINERARIO: CURSO ACADÉMICO: 2012/2013 PERIODO DE IMPARTICIÓN: Primer Semestre (Septiembre-Enero) IDIOMAS IMPARTICIÓN: Español OTROS IDIOMAS DE IMPARTICIÓN: HORAS/CRÉDITO 26 1 Paso 0 en la aplicación EUROPA 2 PROFESORADO 2 NOMBRE Y APELLIDOS DESPACHO Correo electrónico EN INGLÉS ANA ISABEL LIAS QUINTERO (COORDINADORA) 2005/6108 anaisabel.lias@upm.es No ALFONSA GARCIA LOPEZ 2105 alfonsa.garcia@upm.es No TUTORÍAS NOMBRE Y APELLIDOS TUTORÍAS LUGAR DÍA DE A ANA ISABEL LIAS QUINTERO 2005/6108 6h. a determinar en septiembre ALFONSA GARCIA LOPEZ 2105 6h. a determinar en septiembre GRUPOS Nº de Grupos 3 GRUPOS ASIGNADOS EN: Teoría 1 Prácticas 0 Laboratorio 1 REQUISITOS PREVIOS NECESARIOS 4 ASIGNATURAS SUPERADAS: OTROS REQUISITOS CONOCIMIENTOS PREVIOS RECOMENDADOS ASIGNATURAS PREVIAS RECOMENDADAS: Haber superado las asignaturas Matemática Discreta Álgebra 2 Paso 2 en la aplicación EUROPA. Si no se sabe el horario de tutorías, poner sólo el despacho. 3 Los grupos son de teoría y/o de laboratorio (no de prácticas). 4 Paso 3 en la aplicación EUROPA 3 CONOCIMIENTOS PREVIOS OTROS CONOCIMIENTOS o Manejar con soltura la aritmética modular y el cálculo matricial. o Entender y hacer demostraciones matemáticas sencillas. 4 COMPETENCIAS 5 CÓDIGO COMPETENCIA NIVEL RA E6 Capacidad para comprender, aplicar y gestionar la garantía y seguridad de los sistemas informáticos. N1 RA_01 G1 Comunicación oral y escrita. N2 RA_02 G10 Capacidad de análisis y síntesis. N2 RA_03 RA_04 G14 Resolución de problemas. N2 RA_05 RA_06 RA_07 RA_10 RA_12 G7 Uso de Tecnologías de la Información y de las Comunicaciones. N2 RA_09 RA_13 G8 Trabajo en equipo. N2 RA_08 I1 Capacidad para la resolución de los problemas matemáticos que puedan plantarse en la ingeniería. Aptitud para aplicar los conocimientos sobre: algebra, cálculo diferencial e integral y métodos numéricos; estadística y optimización. N2 RA_04 RA_05 RA_11 I12 Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos. N1 RA_04 I13 Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema. N1 RA_09 RA_13 I3 Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para el tratamiento automático de la información por medio de sistemas computacionales y su aplicación para la resolución de problemas propios de la ingeniería. N3 RA_05 RA_06 RA_07 RA_11 I7 Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente N1 RA_09 RESULTADOS DE APRENDIZAJE CÓDIGO DESCRIPCIÓN RA_01 Utiliza los distintos tipos de codificación de la información según el objetivo perseguido (corregir errores, encriptar información o comprimirla) RA_02 Distingue y conoce criptosistemas de clave pública y clave privada. RA_03 Cifra y descifra utilizando los criptosistemas de traslación, afín y matricial afín. RA_04 Cifra y descifra utilizando los criptosistemas RSA y ElGamal. RA_05 Conoce y aplica protocolos de autenticación (firma digital) e intercambio de claves basados en criptosistemas de clave pública RA_06 Codifica, detecta y corrige errores utilizando los códigos lineales. RA_07 Conoce y aplica test de primalidad deterministas y probabilísticos. RA_08 Comprime ficheros, usando códigos compresores adecuados. RA_09 Utiliza adecuadamente software para la resolución de problemas de codificación de la información. RA_10 Conoce la complejidad computacional de las operaciones aritméticas elementales y es capaz de determinar la de ciertos algoritmos sencillos. RA_11 Describe con precisión protocolos de codificación de la información RA_12 Distribuye adecuadamente las tareas para trabajo en equipo, realiza las tareas encomendadas y asume el principio de corresponsabilidad. RA_13 Desarrolla aplicaciones criptográficas utilizando los recursos disponibles conforme a la legislación vigente y siguiendo principios éticos. 5 Paso 4 y 5 en la aplicación EUROPA. Hay que poner un RA por cada competencia que tenga la asignatura en el Plan de Estudios. Imprescindible poner todas las competencias. 5 INDICADORES DE LOGRO6 CÓDIGO INDICADOR RA IN_01 Distingue distintos tipos de códigos según el objetivo perseguido RA_03 IN_02 Define con precisión criptosistema, criptograma, texto en claro y longitud de un mensaje. RA_10 IN_03 Obtiene el equivalente numérico de un mensaje. RA_05 RA_06 RA_13 IN_04 Cifra y descifra mensajes utilizando los criptosistemas de traslación, afín y matricial afín. RA_05 RA_13 IN_05 Realiza ataques a criptogramas mediante análisis de frecuencias para cifradores monoalfabéticos y ataques a texto en claro conocido para los criptosistemas de traslación, afín y matricial afín. RA_05 RA_13 IN_06 Define complejidad en tiempo y en espacio de un algoritmo. RA_04 IN_07 Calcula la complejidad, en número de operaciones bit, de cálculos y bucles sencillos. RA_04 IN_08 Distingue la complejidad de un problema y la de un algoritmo RA_04 IN_09 Conoce y aplica el algoritmo de exponenciación (modular) rápida. RA_04 IN_10 Conoce la función Phi de Euler y la evalúa de modo eficiente, usando sus propiedades. RA_06 IN_11 Conoce y aplica correctamente los teoremas de Euler y Fermat. RA_06 IN_12 Obtiene raíces primitivas módulo n en casos sencillos. RA_06 IN_13 Conoce y aplica el protocolo de intercambio de claves de Diffie-Hellman. Aplica las propiedades de los códigos de Huffman para la comprensión de archivos. RA_01 RA_13 IN _14 Cifra y descifra mensajes numéricos mediante los criptosistemas de ElGamal y RSA. RA_06 RA_13 IN_15 Aplica correctamente el criptosistema RSA en protocolos de firma digital. RA_01 RA_13 IN_16 Comprueba la primalidad de un número aplicando de modo eficiente test deterministas. RA_11 RA_13 IN_17 Conoce la diferencia entre test de primalidad deterministas y probabilísticos. RA_11 IN_18 Conoce y aplica los test de primalidad de Fermat, de Miller y de Miller- Rabin. RA_11 RA_13 IN_19 Reconoce las propiedades de un código lineal binario como espacio vectorial RA_07 IN_20 Conoce la relación entre matriz generadora y matriz de control de un código lineal binario. RA_07 RA_13 IN_21 Detecta y corrige errores aplicando códigos lineales adecuados. RA_07 RA_13 IN_22 Implementa algoritmos para la corrección de errores mediante códigos de Hamming. RA_07 RA_13 IN_23 Aplica las propiedades de los códigos de Huffman para la comprensión de archivos. RA_12 IN_24 Cumple las tareas de trabajo en grupo en tiempo y forma RA_08 IN_25 Redacta con claridad, sin faltas de orttografía y respetando las especificaciones los protocoloscripotográficos que utiliza RA_02 IN_26 Respeta la legislación vigente en el desarrollo de aplicaciones RA_09 6 Paso 6 en la aplicación EUROPA 6 CONTENIDOS ESPECÍFICOS (TEMARIO)7 TEMA APARTADOS LOGRO Tema 1 Introducción a la Codificación de la información y Criptología 1.1 Trasmisión de la Información. 1.2 Tipos de Códigos. 1.3 Introducción a la Criptología: Criptografía y Criptosistemas. 1.4 Criptosistemas de clave secreta: traslación, afín y matricial. 1.5 Criptoanálisis. Tema 2 Complejidad computacional 2.1 Problemas, algoritmos. 2.2 Complejidad de las operaciones aritméticas elementales. 2.3 Clasificación de problemas según su complejidad. Tema 3 Teoría de números 3.1 El grupo multiplicativo de las unidades módulo n. 3.2 Función φ de Euler. 3.3 Teoremas de Euler y Fermat. 3.4 Orden de un elemento. Raíz primitiva módulo n. 3.5 Logaritmo discreto. Tema 4 Criptosistemas de clave pública 4.1 Protocolo de intercambio de claves de Diffie- Hellman 4.2 Criptosistema RSA. 4.3 Criptosistema El Gamal. 4.3 Firma digital. 4.4. Otras aplicaciones de la criptografía de clave pública. Tema 5 Test de primalidad 5.1 Test deterministas: Criba de Eratóstenes y Divisiones sucesivas. 5.2 Test probabilísticos: Test de Fermat, de Miller y de Miller- Rabin. Tema 6 Códigos correctores de errores y códigos compresores 6.1 Códigos lineales. Códigos de Hamming. 6.2 Códigos de redundancia cíclica. 6.3 Códigos de Huffman. 7 Paso 7 en la aplicación EUROPA 7 BREVE DESCRIPCIÓN DE LAS MODALIDADES ORGANIZATIVAS UTILIZADAS Y MÉTODOS DE ENSEÑANZAS EMPLEADOS 8 MODALIDAD DESCRIPCIÓN MÉTODO MÉTODOS DE ENSEÑANZA CLASES DE TEORÍA Se trata de clases magistrales participativas en las que se presentan conceptos, resultados y ejemplos. CLASES DE TEORÍA CLASES PROBLEMAS En ellas los estudiantes, siguiendo las indicaciones del profesor, resolverán individualmente o en grupo un conjunto de problemas de cuyos enunciados disponen con antelación. CLASES PROBLEMAS PRÁCTICAS Están previstas seis sesiones de 2 horas de trabajo en laboratorio. Se usará el sistema de cálculo matemático Maple para programar algoritmos y resolver problemas relacionados con los objetivos del curso. PRÁCTICAS TRABAJOS AUTÓNOMOS Los estudiantes realizarán de modo autónomo las siguientes tareas: a) Estudiar conceptos y propiedades. b) Resolver ejercicios y problemas. c) Responder cuestionarios on-line. TRABAJOS AUTÓNOMOS TRABAJOS EN GRUPOS Los alumnos deberán realizar cuatro trabajos en grupos de dos personas sobre distintos temas del curso, en los que deberán programar en Maple diversos algoritmos y usarlos para resolver los problemas que se les señalen en las especificaciones de cada trabajo. TRABAJOS EN GRUPOS TUTORÍAS Salvo que surja una necesidad concreta, sólo se contemplan tutorías individuales en el horario establecido por cada profesora. 8 Paso 10 de la aplicación EUROPA 8 CRONOGRAMA DE TRABAJO DE LA ASIGNATURA9 SEMANA Actividades Aula Laboratorio Trabajo Individual Trabajo en Grupo Actividades Evaluación 4 y 7 de septiembre 7-IX Presentación (programa y normas, 1h) Tema 1: Teoría (1h) Estudiar T1 Ejercicios (prerrequisitos) 11 y 14 de septiembre Tema 1: Teoría y problemas (2h) P1: Introducción al sistema Maple. (2h.) Estudiar T1 Hacer ejercicios Completar Práctica 1 18 y 21 de septiembre Tema 1: Teoría y problemas (2h) P2: Programación en Maple (2h.) Preparar P2 Completar Práctica 2 Hacer cuestionarios T1 TG1 Cuestionario on-line T1 25 y 28 de septiembre Tema 2: Teoría y problemas (4h) Estudiar T2 Hacer ejercicios Hacer cuestionarios T2 TG1 EntregaTG1 (30-sept) 2 y 5 de octubre Tema 2: Teoría y problemas (4h) Estudiar T1 T2 Hacer ejercicios Cuestionario on-line T2 9 de octubre Prueba T1y T2 (1h.) Tema 3: Teoría y problemas (3h) Estudiar T3 Hacer ejercicios PE1(T1 y T2) 16 y 19 de octubre Tema3: Teoría y problemas (2h) P3: Construcción de librerías Maple (2h.) Estudiar T3 Hacer ejercicios Completar Práctica 3 23 y 26 de octubre Tema 3: Teoría y problemas (4h) Estudiar T3 Hacer cuestionarios T3 Cuestionario on-line T3 9 Paso 8 en la aplicación EUROPA 9 SEMANA Actividades Aula Laboratorio Trabajo Individual Trabajo en Grupo Actividades Evaluación 30 de oct y 2 nov. Tema 4: Teoría y problemas (4h) Estudiar T4 Hacer ejercicios Hacer cuestionarios T4 TG2 6 de noviembre P4: Criptosistemas de clave pública (2h.) TG2 Cuestionario on-line T4 EntregaTG2 (11-nov) 13 y 16 de noviembre Prueba T3 y T4 (1h) Tema 5: Teoría (2h) P5: Firma digital (1h) Estudiar T5 PE2 (T3 y T4) Entrega P5 (18-nov) 20 y 23 de noviembre Tema5: Teoría y problemas (3h) Problemas del T5 con Maple (1h) Estudiar T5 Hacer cuestionarios T5 TG3 27 y 30 de noviembre Tema 5 (1 h): Problemas Tema 6(1h) P6: Práctica de Códigos (2h.) Hacer ejercicios repaso Hacer cuestionarios T5 TG3 Cuestionario on-line T5 EntregaTG3 (2-dic) 4 de diciembre Tema 6: Teoría y Problemas (2h) Estudiar T6 Completar P6 EntregaP6 (9-dic) 10 y 14 de diciembre Tema 6: Teoría y Problemas (4h) Estudiar T6 Hacer ejercicios Hacer cuestionarios T5 Cuestionario on-line T6 17 y 21 de diciembre Seminarios (3h) Prueba T5 yT6 (1h) PE3(T5 y T6) 10 11 CRITERIOS DE CALIFICACIÓN DE LA ASIGNATURA CRITERIOS DE CALIFICACIÓN PRUEBA DÍA LUGAR PESO Cuestionarios on-line A lo largo del curso Moodle 10% Prueba escrita sobre los temas 1 y 2 9-10-12 Aula 10% Prueba escrita sobre los temas 3 y 4 13-11-12 Aula 15% Prueba escrita sobre los temas 5 y 6 21-12-12 Aula 15% Trabajo práctico: Criptosistemas de clave privada 8-10-12 Moodle 12% Trabajo práctico: Criptosistemas de clave pública 19-11-12 Moodle 12% Trabajo práctico: Test de primalidad 3-12-12 Moodle 12% Práctica de Firma digital 18-11-12 Moodle 4% Práctica de Códigos 9-12-12 Moodle 10% DESCRIPCIÓN GENERAL DE LAS ACTIVIDADES QUE SE EVALÚAN Y DE LOS CRITERIOS DE CALIFICACIÓN Cuestionarios on line: Los estudiantes podrán realizar un cuestionario on-line, con diez preguntas sobre cada tema del curso. Cuando la calificación de dicho cuestionario sea superior a 7 se sumará 0.2 a la nota final acumulada, hasta un máximo de un punto. Pruebas escritas: Se realizan en horario presencial y en ellas los estudiantes deben responder a cuestiones teóricas y resolver ejercicios y problemas. En la calificación, al menos el 70% corresponderá a logros de objetivos básicos y se exigirá precisión en el lenguaje y rigor en la presentación de resultados. Trabajo práctico: Criptosistemas de clave privada Se realizará parejas y consistirá en programar en Maple el cifrador Matricial Afín e identificar casos particulares. Los estudiantes deberán cifrar y descifrar algunos mensajes y criptoanalizar varios textos, definiendo previamente una función Maple para hacer el análisis de frecuencias. Valoración: Procedimientos definidos 50% (valorando eficiencia, claridad y documentación del código), resolución de los ejercicios 40%, rigor matemático, elegancia en la presentación de resultados y precisión en el lenguaje 10%. Trabajo práctico: Criptosistemas de clave pública Se realizará parejas y consistirá en hacer una librería Maple que incluya funciones para generar claves cifrar y descifrar con el criptosistema ElGamal. Como material de apoyo, los estudiantes dispondránde una librería análoga para el criptosistema RSA. Valoración: Procedimientos definidos 60%, construcción de la librería y páginas de ayuda 12 20%, realización de pruebas adecuadas 10%, rigor matemático, elegancia en la presentación de resultados y precisión en el lenguaje 10%. Trabajo práctico: Test de primalidad Se realizará por parejas y consistirá en hacer una librería Maple con tres funciones que implementen test de primalidad, hacer pruebas con números grandes y comparar tiempos de ejecución. Valoración: Procedimientos definidos 60%, construcción de la librería 10%, realización de pruebas adecuadas 10%, análisis de los resultados 10%, rigor matemático, elegancia en la presentación de resultados y precisión en el lenguaje 10%. Entrega de las prácticas: Firma Digital y Códigos lineales Consistirá en la entrega de dichas prácticas finalizadas, cuyo desarrollo inicial se hará en las sesiones presenciales. PARA LA ALTERNATIVA DE EVALUACIÓN MEDIANTE SÓLO PRUEBA FINAL Y LA CONVOCATORIA EXTRAORDINARIA Los alumnos que elijan la opción de examen único deberán solicitarlo antes del día 23 de noviembre. El examen final se realizará en la fecha marcada por la Jefatura de estudios (17/1/13) y tendrá dos partes: una prueba escrita relativa a los contenidos teóricos de la asignatura (definiciones, propiedades, ejercicios y problemas) y una práctica. El valor de cada una de estas dos pruebas es del 50% de la nota final. Para la parte práctica deberán traer una librería Maple, en la que hayan programado las funciones más importantes con las que se trabaja a lo largo del curso, que usarán para resolver los ejercicios que se les propongan. Dicha librería Maple contendrá al menos las funciones de la tabla adjunta. TABLA DE FUNCIONES PARA LA LIBRERÍA MAPLE (OPCIÓN EXAMEN FINAL) Funciones de criptografía simétrica Función Parámetros de Entrada Salida Cifra_Vigenère Un mensaje, un alfabeto y una palabra clave, todos ellos expresados como tiras de caracteres. Criptograma resultante de cifrar el mensaje con el algoritmo de Vigenère y la clave dada. Descifra_Vigenère Criptograma, un alfabeto y una palabra clave. Texto en claro Cifrador Matricial Afín (Cma) Un mensaje, un alfabeto, (tiras de caracteres), una matriz cuadrada y un vector de la misma dimensión. Criptograma resultante de cifrar el mensaje con el criptosistema matricial afín y la clave dada. Funciones de criptografía asimétrica Función Parámetros de Entrada Salida mensaje_numérico Un mensaje y un alfabeto (tiras de caracteres). Valor numérico del mensaje de acuerdo con el alfabeto. mensaje_texto Un número natural m, y un alfabeto A. Mensaje cuyo valor numérico es m. Genera_claves_RSA Un entero k y un nombre priv. Una clave pública RSA, construida a partir de dos números primos p y q de k dígitos. La clave privada se almacenará en la 13 variable priv. RSA (Función de cifrado y descifrado) Su primer argumento, m, será un mensaje (expresado como tira de caracteres) o bien un criptograma (expresado como lista de naturales), el segundo un alfabeto y el tercero una clave RSA. Si m es una tira de caracteres la función lo divide en tiras de longitud adecuada, codifica, con el algoritmo RSA, el valor numérico de cada tira y devuelve el criptograma, como lista de números naturales. Si m es una lista de naturales, la función desencripta el criptograma y devuelve el texto en claro. Genera_claves_ELG amal Un entero k y un nombre priv. Una clave pública, para ElGamal , construida a partir de un primo aleatorio de k dígitos. La clave privada se almacenará en la variable priv. ElGamal (Cifrado y descifrado) Su primer argumento, m, es un mensaje (tira de caracteres) o un criptograma (lista de pares de números naturales). El segundo un alfabeto y el tercero una clave. Si m es una tira de caracteres, la función divide el mensaje en tiras del tamaño adecuado, codifica, con el algoritmo ElGamal, el valor numérico de cada tira y devuelve el criptograma, que es una lista de pares de números naturales. Si m es una lista de pares de naturales, la función desencripta el criptograma y devuelve el texto en claro. Funciones de test de primalidad Función Parámetros de Entrada Salida Divisiones_sucesivas Un número entero true o false Si el número no es primo se mostrará el primer divisor encontrado Miller-Rabin Un número entero Una cota de error true o false según que el número pase el test (puede ser primo) o no lo pase (no es primo) Si el número no es primo se mostrará un certificado Funciones de Códigos Correctores Función Parámetros de Entrada Salida L_Síndrome Un síndrome s (lista de 0's y 1's) y una matriz generadora G (en forma estándar) El líder de la órbita correspondiente C_Hamming Un entero r mayor o igual que 2 Matriz de control de un código de Hamming binario de redundancia r, con sus columnas ordenadas en orden creciente de la representación binaria RECURSOS DIDÁCTICOS 14 TIPO DESCRIPCIÓN BIBLIOGRAFÍA [1] Buchmann, Johannes A.: “Introduction to Cryptography”. Second Edition. Springer-Verlag. 2004. [2] Koblitz, Neal: “A Course in Number Theory and Cryptography”. Second Edition. Springer-Verlag. 1994. [3] Lucena, Manuel José: “Criptografía y Seguridad en Computadores”. 1999. wwwdi.ujaen.es/~mlucena [4] Munuera, Carlos; Tena, Juan: “Codificación de la Información”. Universidad de Valladolid. 1997. [5] Ramió, Jorge: “Aplicaciones Criptográficas”. Escuela Universitaria de Informática. U. Politécnica de Madrid. 1998. [6] Rincón, Félix; García, Alfonsa; Martínez, Ángeles: “Cálculo científico con Maple”. RA-MA. 1995. [7] Trappe, Wade; Washington, Lawrence C.: “Introduction to Crytography with Coding Theory”. Prentice-Hall. 2002. RECURSOS WEB Entorno Moodle de la UPM: http://moodle.upm.es/titulaciones/oficiales/ Contiene información y material de apoyo EQUIPAMIENTO Instrumentación de Laboratorio: Ordenadores personales Aplicaciones Software: Maple, Moodle http://wwwdi.ujaen.es/~mlucena http://moodle.upm.es/titulaciones/oficiales/
Compartir