seguridad informatica

1215
Documento de libre distribución en Internet a través de CriptoRed Prohibida su venta, excepto a través del Departamento de Publicaciones de la Escuela Universitaria de Informática de la UPM - España L I B R O E L E C T R Ó N I C O D E S E G U R I D A D I N F O R M Á T I C A Y C R I P T O G R A F Í A LIBRO ELECTRÓNICO DE LIBRE DISTRIBUCIÓN EN INTERNET PARA LA ENSEÑANZA Y EL APRENDIZAJE DE LA SEGURIDAD INFORMÁTICA Y LA PROTECCIÓN DE LA INFORMACIÓN MEDIANTE TÉCNICAS CRIPTOGRÁFICAS 1.106 DIAPOSITIVAS ANIMADAS QUE PERMITEN SU IMPRESIÓN EN PAPEL SEXTA EDICIÓN Versión v 4.1 Jorge Ramió Aguirre UNIVERSIDAD POLITÉCNICA DE MADRID - ESPAÑA 1 de Marzo de 2006 © JRA, Madrid 2006 Freeware no significa regalar el trabajo personal ni la propiedad intelectual del autor, y no le entrega derechos para apropiarse de esta obra. Respete siempre estos principios básicos. Edición en papel versión 4.1 ISBN: 84-86451-69-8 (2006) Depósito Legal: M-10039-2003

Upload: jalvar

Post on 04-Aug-2015

345 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Seguridad Informatica

Documento de libre distribución en Internet a través de CriptoRed

Prohibida su venta, excepto a través del Departamento de Publicaciones de la Escuela Universitaria de Informática de la UPM - España

LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA

Y CRIPTOGRAFÍA

LIBRO ELECTRÓNICO DE LIBRE DISTRIBUCIÓN EN INTERNET PARA LA ENSEÑANZA Y EL APRENDIZAJE DE LA SEGURIDAD INFORMÁTICA Y LA PROTECCIÓN DE LA INFORMACIÓN MEDIANTE TÉCNICAS CRIPTOGRÁFICAS

1.106 DIAPOSITIVAS ANIMADAS QUE PERMITEN SU IMPRESIÓN EN PAPEL

SEXTA EDICIÓN Versión v 4.1

Jorge Ramió Aguirre

UNIVERSIDAD POLITÉCNICA DE MADRID - ESPAÑA 1 de Marzo de 2006 © JRA, Madrid 2006

Freeware no significa regalar el trabajo personal ni la propiedad intelectual del autor, y no le entrega derechos para apropiarse de esta obra. Respete siempre estos principios básicos.

Edición en papel versión 4.1 ISBN: 84-86451-69-8 (2006)

Depósito Legal: M-10039-2003

Page 2: Seguridad Informatica

Libro Electrónico de Seguridad Informática y Criptografía Versión 4.1

Sexta edición de 1 de Marzo de 2006

Capítulo 1. Presentación del Libro Electrónico

Libro electrónico con: 1.106 diapositivasEste archivo tiene: 33 diapositivas

Ultima actualización: 01/03/06

Material Docente de Libre Distribución

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Colaboración del Dr. Josep María Miret Biosca(U. de Lleida) en capítulo 20: Curvas Elípticas

v 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 3: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 2

Los derechos de autor en el freeware

Este documento electrónico puede ser descargado libre y gratuitamente desde Internet para su ejecución e impresión,

solamente para fines educativos y/o personales, respetando en todo caso su integridad y manteniendo siempre los créditos del autor en el pie de página.

Si lo desea, puede utilizar partes del libro como material de apoyo didáctico para docencia sin solicitar autorización

previa ni incluir los créditos de autor.

Queda por tanto prohibida su venta, excepto a través del Departamento de Publicaciones de la

Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Este libro electrónico es el resultado de miles de horas de trabajo. Recuerde que freeware no le da derecho para apropiarse del trabajo de otros, sino compartirlo.

ISBN: 84-86451-69-8 (2006)Versión 4.1 impresa - EUI - UPMDepósito Legal: M-10039-2003

Page 4: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 3

Temas del curso

Página de diapositiva

Capítulo 01: Presentación del Libro Electrónico ................................................. 1Capítulo 02: Una Breve Introducción a la Criptografía ...................................... 34Capítulo 03: Introducción a la Seguridad Informática ........................................ 49Capítulo 04: Calidad de Información y Programas Malignos ........................... 105Capítulo 05: Introducción a la Gestión de la Seguridad .................................... 132Capítulo 06: Teoría de la Información ............................................................... 178Capítulo 07: Teoría de los Números ................................................................. 237Capítulo 08: Teoría de la Complejidad Algorítmica ........................................ 312Capítulo 09: Sistemas de Cifra Clásicos ............................................................ 343Capítulo 10: Introducción a la Cifra Moderna .................................................. 384Capítulo 11: Sistemas de Cifra en Flujo ............................................................ 419

Page 5: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 4

Temas del curso

Página de diapositiva

Capítulo 12: Cifrado Simétrico en Bloque ........................................................ 472Capítulo 13: Cifrado Asimétrico con Mochilas ................................................. 591Capítulo 14: Cifrado Asimétrico Exponencial .................................................. 621Capítulo 15: Funciones Hash en Criptografía ................................................... 710Capítulo 16: Autenticación y Firma Digital ..................................................... 744Capítulo 17: Certificados Digitales y Estándar PKCS ...................................... 807Capítulo 18: Aplicaciones de Correo Seguro ................................................... 828Capítulo 19: Protocolos y Esquemas Criptográficos ......................................... 928Capítulo 20: Introducción a la Cifra con Curvas Elípticas ................................ 998Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos ............ 1.028Total diapositivas de la versión 4.1 .............................................................. 1.106

Page 6: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 5

Resumen del Contenido

Página

Capítulo 01: Presentación del Libro Electrónico 1Capítulo 02: Breve Introducción a la Criptografía 34

- Definición de criptografía ....................................................................................... 39- Confidencialidad e integridad ................................................................................. 40- Clasificación de los criptosistemas .......................................................................... 41- Criptosistemas simétricos ....................................................................................... 43- Criptosistemas asimétricos ..................................................................................... 44- Sistema de cifra híbrido ........................................................................................... 48

Capítulo 03: Introducción a la Seguridad Informática 49- Definiciones ............................................................................................................ 53- Principios de la seguridad informática .................................................................. 62- Amenazas del sistema ............................................................................................. 66- Debilidades del sistema ........................................................................................... 73- Elementos de la seguridad informática .................................................................. 75- Esquema de un criptosistema ................................................................................. 79- Recomendaciones de Bacon .................................................................................... 87- Recomendaciones de Kerkchoffs ............................................................................ 88

Page 7: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 6

Resumen del Contenido

- Fortaleza y tipos de ataques ................................................................................. 89- Cifrado en bloque vs cifrado en flujo .................................................................... 91- Confidencialidad vs integridad sistemas simétricos y asimétricos ........................ 93

Capítulo 04: Calidad de Información y Programas Malignos 105- Concepto e importancia de la información ........................................................... 106- Vulnerabilidad de la información ....................................................................... 110- Acciones contra los datos ................................................................................... 112- Ataques y delitos informáticos ............................................................................. 117- Ataques y delitos recientes ................................................................................... 123- Introducción a los virus informáticos .................................................................. 124

Capítulo 05: Introducción a la Gestión de la Seguridad 132- Protección lógica y física de los datos ............................................................... 133- Análisis de riesgo ................................................................................................ 135- Políticas de seguridad .......................................................................................... 145- Modelos de seguridad .......................................................................................... 149- Criterios y normativas de seguridad .................................................................... 153- Leyes de seguridad informática en España LOPD ................................................ 154- Norma ISO 17799 ................................................................................................. 161- Planes de contingencia ......................................................................................... 164- Acciones en un SGSI y PDCA ............................................................................... 165

Page 8: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 7

Resumen del Contenido

- Recuperación ante desastres ................................................................................. 171Capítulo 06: Teoría de la Información 178

- Cantidad de información ..................................................................................... 183- Definición logarítmica de la cantidad de información ........................................ 190- Grado de indeterminación de la información ...................................................... 191- Entropía de los mensajes ...................................................................................... 196- Codificador óptimo .............................................................................................. 199- Entropía condicional ............................................................................................ 202- La ratio del lenguaje ............................................................................................ 205- Redundancia del lenguaje .................................................................................... 209- Secreto en un sistema criptográfico ..................................................................... 215- La distancia de unicidad ...................................................................................... 223- Esquema de un cifrador aleatorio ....................................................................... 224- Cantidad de trabajo en criptoanálisis .................................................................. 230

Capítulo 07: Teoría de los Números 237- Propiedades de la congruencia y operaciones ..................................................... 240- Conjunto completo de restos ................................................................................. 243- Homomorfismo de los enteros .............................................................................. 244- Divisibilidad de los números ............................................................................... 246

Page 9: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 8

Resumen del Contenido

- Inversos en un cuerpo ........................................................................................... 249- Conjunto reducido de restos ................................................................................. 255- Función de Euler ................................................................................................. 257- Teorema de Euler ................................................................................................ 263- Algoritmo extendido de Euclides ......................................................................... 269- Cálculo de inversos con el Algoritmo extendido de Euclides .............................. 271- Teorema del resto chino ...................................................................................... 275- Algoritmo de exponenciación rápida ................................................................... 287- Distribución de números primos ........................................................................... 291- Raíz primitiva de un cuerpo ................................................................................. 292- Cálculos en campos de Galois ............................................................................. 302

Capítulo 08: Teoría de la Complejidad Algorítmica 312- Número de operaciones bit .................................................................................. 314- La función O(n) .................................................................................................... 316- Algoritmos de complejidad polinomial P ............................................................. 319- Algoritmos de complejidad no determinista NP .................................................... 321- El problema de la mochila .................................................................................. 326- El problema de la factorización .......................................................................... 330- El problema del logaritmo discreto ..................................................................... 333- Logaritmo discreto con valores de α ................................................................... 336

Page 10: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 9

Resumen del Contenido

Capítulo 09: Sistemas de Cifra Clásicos 343- Clasificación histórica de la criptografía clásica ............................................... 346- Herramientas de la criptografía clásica ............................................................. 348- Clasificación de los sistemas de cifra clásica ..................................................... 349- Cifrador escítala ................................................................................................ 351- Cifrador de Polybios ............................................................................................ 353- Cifrado por sustitución del César y criptoanálisis ............................................. 354- Cifrador monoalfabeto afín y criptoanálisis ....................................................... 357- Cifrador polialfabético de Vigenère ................................................................... 359- Criptoanálisis de Vigenère por método de Kasiski ............................................. 361- Regla AEO de ataque por Kasiski ...................................................................... 364- Índice de Coincidencia IC .................................................................................... 365- Cifrador poligrámico de Playfair ....................................................................... 365- Cifrador poligrámico con matrices de Hill ......................................................... 368- Criptoanálisis de Hill por el método de Gausss Jordan ..................................... 372- Cifrador de Vernam ............................................................................................. 375

Capítulo 10: Introducción a la Cifra Moderna 384- Clasificación de los criptosistemas modernos ..................................................... 386- Introducción al cifrado en flujo .......................................................................... 387- Introducción al cifrado en bloque ....................................................................... 391

Page 11: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 10

Resumen del Contenido

- Funciones unidireccionales con trampa ............................................................ 396- Cifrado con clave pública de destino .................................................................. 399- Cifrado con clave privada de origen .................................................................. 405- Comparativa entre cifrado simétrico y asimétrico .............................................. 408

Capítulo 11: Sistemas de Cifra en Flujo 419- Cifrador de flujo básico ....................................................................................... 420- Rachas de dígitos ................................................................................................. 422- Autocorrelación fuera de fase .............................................................................. 424- Postulados de Golomb G1, G2, G3 ..................................................................... 427- Generador de congruencia lineal ........................................................................ 436- Registros de desplazamiento ................................................................................ 440- Introducción a los autómatas celulkares ............................................................. 441- Generadores no lineales: NLFSR ........................................................................ 442- Generadores lineales: LFSR ................................................................................ 444- Ataque de Berlekamp-Massey .............................................................................. 455- Complejidad lineal ............................................................................................... 459- Operaciones con dos registros y filtrado no lineal ............................................... 460- Algoritmos de cifra A5/1 y A5/2 ........................................................................... 463

Capítulo 12: Cifrado Simétrico en Bloque 472- Cifradores tipo Feistel ......................................................................................... 474

Page 12: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 11

Resumen del Contenido

- Cifradores de bloque más conocidos ................................................................... 477- Data Encryption Standard DES ............................................................................ 485- Cajas S en DES ................................................................................................... 496- Modos de cifra ECB, CBC, CFP .......................................................................... 508- Cifrado múltiple y ataque meet-in-the-middle .................................................... 516- Triple DES .......................................................................................................... 520- International Data Encryption Standard IDEA ................................................... 522- Algoritmos RC2, RC5, SAFER, Blowfish, CAST, Skipjack .................................. 539- Desafíos al DES: DES Challenge I, II y III ......................................................... 555- AES, algoritmo Rijndael ...................................................................................... 549- Esquema general del AES y sus funciones .......................................................... 557

Capítulo 13: Cifrado Asimétrico con Mochilas 591- El problema de la mochila ..................................................................................... 592- Mochila simple o supercreciente ......................................................................... 597- Mochila de Merkle y Hellman .............................................................................. 600- Criptoanálisis a mochilas, Shamir y Zippel ......................................................... 610

Capítulo 14: Cifrado Asimétrico Exponencial 621- Cifrado exponencial con clave de destino y de origen ........................................ 624- Intercambio de clave de Diffie y Hellman ........................................................... 629- Algoritmo de cifra RSA ......................................................................................... 638

Page 13: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 12

Resumen del Contenido

- Uso del Teorema del Resto Chino en RSA ........................................................... 642- Ataque por factorización de n ............................................................................. 645- Elección de números primos seguros .................................................................. 650- Claves privadas parejas ........................................................................................ 653- Claves públicas parejas ........................................................................................ 659- Números N no cifrables ......................................................................................... 662- Distribución de números no cifrables .................................................................. 666- Ataque al secreto de N por cifrado cíclico ........................................................... 673- La paradoja del cumpleaños ................................................................................. 676- Ataque a la clave privada por paradoja del cumpleaños ..................................... 677- La otra historia de RSA ........................................................................................ 683- Algoritmo de cifra de Pohlig y Hellman con clave secreta ................................. 684- Algoritmo de cifra de ElGamal ............................................................................ 687- Elección del tamaño del bloque para cifras de mensajes ..................................... 692- Fortaleza y resumen de la cifra exponencial ........................................................ 694

Capítulo 15: Funciones Hash en Criptografía 710- Uso de las funciones hash en criptografía ........................................................... 711- Propiedades de las funciones hash ....................................................................... 714- Funciones hash más conocidas ............................................................................. 717- Algoritmo de resumen Message Digest 5 MD5 ..................................................... 718

Page 14: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 13

Resumen del Contenido

- Algoritmo de resumen Secure Hash Algorithm SHA-1 ......................................... 728- Comparativas entre MD5 y SHA-1 ....................................................................... 733- Últimos ataques a las funciones hash ................................................................... 738

Capítulo 16: Autenticación y Firma Digital 744- Los problemas de la integridad ........................................................................... 746- Escenarios integridad .......................................................................................... 748- Autenticación con sistemas simétricos ................................................................. 751- Autenticación con MAC o Checksum .................................................................. 753- Autenticación con HMAC ..................................................................................... 756- Autenticación de Needham y Schroeder .............................................................. 761- Autenticación con Kerberos ................................................................................. 765- Características de la firma digital ........................................................................ 775- Firmas digitales simétricas .................................................................................. 776- Firmas digital de Desmedt ................................................................................... 777- Autenticación con sistemas asimétricos ............................................................... 779- Firma digital RSA ................................................................................................. 780- Vulnerabilidades de la firma RSA ........................................................................ 784- Firma digital ElGamal ......................................................................................... 786- Estándares de firma digital .................................................................................. 791- Firma digital DSS Digital Signature Standard ................................................... 792

Page 15: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 14

Resumen del Contenido

- Seguridad de la firma digital DSS ....................................................................... 798- Mensajes sin firma en DSS ................................................................................... 799- Firmas simétricas versus asimétricas ................................................................... 801

Capítulo 17: Certificados Digitales y Estándar PKCS 807- Certificado digital X.509 ..................................................................................... 809- Introducción a las Autoridades de Certificación ................................................. 812- Certificado digital para correo de Verisign .......................................................... 816- Certificado de Verisign en Outlook Express ........................................................ 818- Estándar PKCS Public Key Cryptography Standards .......................................... 822- PKCS #1 RSA Cryptography Standard ................................................................ 824

Capítulo 18: Aplicaciones de Correo Seguro 828- Private Enhanced Mail PEM ................................................................................. 830- Pretty Good Privacy PGP .................................................................................... 834- Cifrado local o convencional ............................................................................... 839- Generación de claves asimétricas y anillos de claves .......................................... 843- Estructura del anillo de claves privadas .............................................................. 845- Estructura del anillo de claves públicas .............................................................. 847- Gestión del anillo de claves públicas ................................................................... 849- Cifrado con clave pública de destino ................................................................... 852- Descifrado con clave privada de destino .............................................................. 854

Page 16: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 15

Resumen del Contenido

- Firma digital RSA ................................................................................................. 856- Formato de un mensaje PGP ................................................................................ 858- Algoritmos en nuevas versiones de PGP .............................................................. 860- Instalación de PGP versión 6.5.1 ........................................................................ 862- Generación de claves PGP 6.5.1 con PGPkeys ................................................... 873- Gestión de claves PGP 6.5.1 ................................................................................ 883- Operaciones con el portapapeles en la versión 6.5.1 .......................................... 889- Características PGP Versión 7.0.3 ...................................................................... 895- Cifrado en modo SDA con PGP 7.0.3 .................................................................. 901- Borrado físico de archivos con PGP 7.0.3 .......................................................... 903- Características PGP Versión 8.0 ......................................................................... 904- Operación wipe free space con PGP 8.0 ............................................................. 909- Recomendaciones con las claves PGP .................................................................. 911- GnuPG Gnu Privacy Guard ................................................................................... 912- Correo seguro a través de S/MIME ...................................................................... 913

Capítulo 19: Protocolos y Esquemas Criptográficos 925- Definición y ejemplos de protocolos criptográficos ............................................. 926- Protocolo de firma ciega de Chaum .................................................................... 932- Transferencia inconsciente o trascordada de Rabin ........................................... 935- El problema del lanzamiento de la moneda ......................................................... 943

Page 17: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 16

Resumen del Contenido

- Solución según el esquema de Blum .................................................................... 945- Restos cuadráticos y enteros de Blum .................................................................. 947- Algoritmo de Blum .............................................................................................. 952- La firma de contratos .......................................................................................... 955- Firma de contratos según algoritmo de Even ..................................................... 959- Correo electrónico certificado ............................................................................ 962- Protocolo de póquer mental ............................................................................... 967- Protocolo de póquer mental con RSA .................................................................. 969- Canal subliminal ................................................................................................ 972- Transferencia con conocimiento nulo ................................................................. 974- Esquema de transferencia con conocimiento nulo de Koyama ........................... 975- Voto electrónico y esquema electoral .................................................................. 979

Capítulo 20: Introducción a la Cifra con Curvas Elípticas 998- Introducción a las curvas elípticas ................................................................... 1.000- Conjunto y suma de puntos de una curva elíptica ............................................. 1.002- Curvas elípticas sobre cuerpos finitos .............................................................. 1.006- Criptosistemas con curvas elípticas ................................................................... 1.008- Criptosistema de ElGamal elíptico .................................................................... 1.009- ElGamal elíptico versus ElGamal multiplicativo ............................................... 1.014- Tamaños de la clave ......................................................................................... 1.015

Page 18: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 17

Resumen del Contenido

- Dificultad del PLDE ....................................................................................... 1.016- Firma digital con curvas elípticas ECDSA ...................................................... 1.017- Curvas elípticas criptográficamente útiles ...................................................... 1.021- ECC challenge .................................................................................................. 1.022- Software libre para usar curvas elípticas ......................................................... 1.025

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos 1.028- Bibliografía recomendada en castellano ........................................................... 1.029- Bibliografía recomendada en inglés .................................................................. 1.037- Enlaces a páginas Web de capítulos ................................................................. 1.046- Enlaces de interés en Internet .......................................................................... 1.063- Tablas de frecuencia de monogramas ............................................................... 1.066- Tablas mod 27 y mod 37 con inversos ............................................................... 1.068- Tabla de Vigenère ............................................................................................. 1.070- Tabla código Baudot .......................................................................................... 1.071- Tablas ASCII y ANSI ......................................................................................... 1.072- Tabla y ejemplo código base 64 ......................................................................... 1.076- Tablas de primos del 2 al 1.999 ......................................................................... 1.078- Tabla de polinomios primitivos ........................................................................ 1.080

Page 19: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 18

Resumen del Contenido

- El proyecto docente Criptolab ...................................................................... 1.081- Cuaderno de prácticas en html ........................................................................ 1.082- Software para prácticas .................................................................................. 1.085- Formación universitaria de seguridad informática en España ......................... 1.097- Propuesta de formación para un Máster en Seguridad Informática ................. 1.100- Palabras finales de autor ................................................................................... 1.106

Documento Anexo- “Criptosistemas Clásicos” correspondiente al tercer capítulo del libro

“Aplicaciones Criptográficas” (1999) que puede descargar desde este enlace:

http://www.criptored.upm.es/descarga/CriptoClasica.zip

Page 20: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 19

Uno de los primeros libro de la asignatura

“Aplicaciones Criptográficas”, 2ª edición, Junio de 1999Departamento de Publicaciones - Escuela Universitaria de Informática - Universidad Politécnica de MadridCarretera de Valencia km. 7 - 28031 Madrid (España)I.S.B.N.: 84-87238-57-2. Depósito Legal: M-24709-1999

“Si dotamos a Internet de las medidas de protección y seguridad que nos ofrecen las técnicas criptográficas, dejará de ser ese peligroso y caótico tablón de anuncios para convertirse en el supermercado electrónico del futuro y la herramienta de trabajo de la generación del próximo siglo.”

A Anita y Jordi

Page 21: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 20

Adquisición de edición impresa del libro

• Este libro electrónico, en su condición de curso en diapositivas de libre distribución en Internet, es parte del material docente que se usa en la asignatura de Seguridad Informática y que el autor imparte desde el año 1994 en la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

• La versión 4.1 del libro ha sido editada por el Departamento de Publicaciones de la Escuela Universitaria de Informática con ISBN: 84-86451-69-8 (2006).

• Para cualquier consulta en este sentido sobre condiciones de compra y envío del mismo, dentro o fuera de España, por favor póngase en contacto con el Departamento de Publicaciones de la EUI-UPM, Carretera de Valencia Km 7, código postal 28031, Madrid, España. Por email a [email protected] o bien telefónicamente al número +34 91 3367905.

Page 22: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 21

Instalación y actualización

Al descomprimir SegInfoCrip_v41.zip, acepte el nombre completo de los archivos del libro y éstos se guardarán en la carpeta:

C:\Seguridad Informatica\v4.1 Libro Electronico\

Para una más fácil localización, cada archivo tiene su nombre por tema, precedido por un número que indica el capítulo del libro.

Recuerde que por su naturaleza este libro electrónico puede actualizarse. Luego, cuando observe en la página Web de CriptoRed la existencia de un archivo SegInfoCrip_vX.zip más actual que el que tiene instalado en su computador, por favor descargue e instale el libro actualizado.

Si estas actualizaciones son de poca consideración (erratas, etc.), ello no conllevará el cambio de número de versión. Por tanto, le recomiendo que consulte en CriptoRed si hay una nueva actualización cada 9 meses.

Page 23: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 22

Actualización de versiones

El libro en su versión 4.1 consta de 21 capítulos, contando de esta forma con 1.106 diapositivas. Se han actualizado especialmente los capítulos de cifrado simétrico profundizando el estudio del algoritmo AES, y el de vulnerabilidades de la cifra con RSA.

Se han corregido erratas, vuelto a revisar cada uno de los capítulos, se ha puesto la numeración en la parte superior de la pantalla y además se han incrementado los enlaces a sitios Web en cada capítulo.

En esta versión no se incluye el documento en Word con más de 100 páginas y 70 ejemplos resueltos sobre criptografía clásica, y que corresponde al capítulo tercero del libro Aplicaciones Criptográficas previamente citado. Su lectura sólo tiene interés bajo un punto de vista histórico y de cultura general. Como ya se ha indicado en una diapositiva anterior, puede descargarlo como un archivo anexo.

Page 24: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 23

Novedades en las versiones 4.0 y 4.1

Prácticas y enlaces a sitios de Internet:

Al final de algunos capítulos y en cuyos temas además existe un software de laboratorio, se han incluido algunas prácticas. Le recomiendo que se tome un tiempo y, una vez leído el capítulo yreforzado los conceptos del mismo, intente realizar dichas prácticas. Como bien sabrá, ésta es la forma en que mejor se aprende.Además, se han incluido enlaces a Internet en temas específicos en las mismas diapositivas de clase, con objeto de reforzar conceptos. Puede acceder a esa página Web desde la misma presentación en Power Pointpinchando en el icono que aparecerá junto a la dirección Web. Si debido a la conexión a Internet que tenga en su computador no puede acceder a la web desde dicho icono, use la dirección indicada copiándola al portapapeles y pegándola luego en el navegador.

Page 25: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 24

Prácticas incluidas en la versión 4.1

Capítulo 06: Teoría de la Información .......................................... 5 prácticasCapítulo 07: Teoría de los Números ........................................... 15 prácticasCapítulo 08: Teoría de la Complejidad Algorítmica ..................... 9 prácticasCapítulo 09: Sistemas de Cifra Clásica ....................................... 17 prácticasCapítulo 12: Cifrado Simétrico en Bloque .................................. 29 prácticasCapítulo 13: Cifrado Asimétrico con Mochilas ........................... 10 prácticasCapítulo 14: Cifrado Asimétrico Exponencial ............................ 50 prácticasCapítulo 15: Funciones Hash en Criptografía ............................. 13 prácticasCapítulo 16: Autenticación y Firma Digital ................................ 22 prácticasCapítulo 17: Certificados Digitales y Estándar PKCS .................. 4 prácticasCapítulo 18: Aplicaciones de Correo Seguro .............................. 33 prácticasCapítulo 19: Protocolos y Esquemas Criptográficos ..................... 4 prácticas

Número de prácticas propuestas en el libro .............................. 211 prácticas

Page 26: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 25

¿Por qué sigo usando la versión 2.000?

En este último año ha aparecido una nueva versión de Office pero nuevamente me he visto en la obligación -y necesidad- de seguir usando la versión 2.000 SR-1.Primero: estas últimas versiones aportan muy poco a la animación del libro, tal vez más orientadas a conferencias.Segundo, y lo más grave: actualizar los archivos con las versiones actuales de Power Point, significa encontrarse con la muy desagradable sorpresa de que aumenta de forma espectacular el tamaño del archivo guardado. En algunos casos, sólo guardar un capítulo en una nueva versión significaba pasar de 300 KB a más de 900 KB... .

Page 27: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 26

Si no lo cree, haga la prueba...

Estos mismos apuntes podrían pasar de los 7 MBytes del archivo zip actual a cerca de 20 Mbytes .Y subir un documento de ese tamaño en Internet todavía podría considerarse una pequeña insensatez.Si tiene alguna de estas nuevas versiones, abra por ejemplo el archivo del capítulo 07 del libro, cambie la numeración de las páginas y guarde el archivo con un nuevo nombre. Compare luego el tamaño los dos archivos.Sin entrar en discusiones, tal vez éste es un ejemplo de los despropósitos de la programación de aplicaciones y la escalabilidad y compatibilidad entre versiones, cuando esa nueva versión ofrece prácticamente lo mismo.

Page 28: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 27

Formato imprimible del libro electrónico

• La edición de este libro electrónico ha sido adaptada para que, además de su animación como material de apoyo docente y de autoaprendizaje, pueda también imprimirse en papel en formato ppt o pdf como un documento de estudio y consulta.

• No obstante, es posible que si hace cuentas le sea más económicoy conveniente adquirir la edición impresa por el Departamento dePublicaciones de la EUI ya comentado.

• IMPORTANTE: Para una lectura más cómoda, se recomienda imprimir dos diapositivas por página en formato documentos, en impresión con escalas de grises para que el fondo sea blanco. Si decide imprimir más de dos diapositivas por página posiblemente algunas letras se verán con un tamaño demasiado pequeño.

Page 29: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 28

Impresión del libro en PPT o PDF

Si su impresora, como la seleccionada en la imagen, tiene entre sus propiedades imprimir por ambas caras, le recomiendo que lo active. Así, el libro completo en diapositivas ocupará unas 270 hojas, lo que permitirá guardarlo en una carpeta con anillas o bien como un libro en gusanillos.También puede pedir que se imprima el documento en formato PDF y editarlo con ese programa.

Page 30: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 29

Descargas de la versiones 1 y 2La primera versión 1 del libro electrónico (básica) alcanzó algo más de

2.000 descargas durante el año 2001 desde el mismo servidor.

Febrero 2002 16.020 Marzo 2002 5.892Abril 2002 3.655Mayo 2002 3.077Junio 2002 2.717Julio 2002 2.940Agosto 2002 1.602Septiembre 2002 719Octubre 2002 674Noviembre 2002 765Diciembre 2002 462Enero 2003 690Febrero 2003 852

Número total de descargas de la versión 2 desde febrero de 2002 a febrero de 2003: 40.065. Sólo se consideran descargas desde el servidor CriptoRed.

Page 31: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 30

Descargas de la versión 3.1 del libro

Marzo 2003 8.614Abril 2003 2.164Mayo 2003 1.709Junio 2003 1.687Julio 2003 1.609Agosto 2003 1.459Septiembre 2003 1.609Octubre 2003 1.665Noviembre 2003 1.711Diciembre 2003 1.385Enero 2004 1.232Febrero 2004 1.457

Total descargas de la versión 3.1 desde marzo de 2003 a febrero de 2004:26.301. Sólo se consideran descargas desde el servidor CriptoRed.

Page 32: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 31

Descargas de la versión 3.2 del libro

Marzo 2004 12.720Abril 2004 4.067Mayo 2004 2.877Junio 2004 2.451Julio 2004 2.105Agosto 2004 2.005Septiembre 2004 2.505Octubre 2004 2.359Noviembre 2004 3.219Diciembre 2004 1.777Enero 2005 1.842Febrero 2005 2.124

Total descargas de la versión 3.2 desde marzo de 2004 a febrero de 2005:40.051. Sólo se consideran descargas desde el servidor CriptoRed.

Page 33: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 32

Descargas de la versión 4.0 del libro

Marzo 2005 7.231Abril 2005 3.782Mayo 2005 3.524Junio 2005 3.306Julio 2005 2.212Agosto 2005 2.499Septiembre 2005 3.310Octubre 2005 3.207Noviembre 2005 2.954Diciembre 2005 2.207Enero 2006 2.345Febrero 2006 2.514

Total descargas de la versión 4.0 desde marzo de 2005 a febrero de 2006:39.091. Sólo se consideran descargas desde el servidor CriptoRed.

Page 34: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 1: Presentación del Libro Electrónico Página 33

Sobre el autor de este libro• Desde el curso 1994/1995 imparte la asignatura de Seguridad Informática en la

titulación de Ingeniero Técnico en Informática de Gestión en la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España. Y desde el curso 2004/2005 es coordinador de la asignatura Gestión, Auditoría, Normativas y Legislación en Seguridad Informática.- http://www.lpsi.eui.upm.es/SInformatica/SInformatica.htm- http://www.lpsi.eui.upm.es/GANLESI/GANLESI.htm

• Es el creador y coordinador de la Red Temática Iberoamericana de Criptografía y Seguridad de la Información CriptoRed, desde diciembre de 1999, y que a 1 de marzo de 2006 cuenta con casi 600 miembros expertos en seguridad y que representan a 155 universidades y más de 190 empresas de Iberoamérica.- http://www.criptored.upm.es

• Ha impartido conferencias y cursos sobre criptografía y seguridad informática en Argentina, Bolivia, Brasil, Chile, Colombia, Costa Rica, Cuba, España, México, Panamá, Perú, República Dominicana, Uruguay y Venezuela.- http://www.lpsi.eui.upm.es/~jramio

Fin del capítulo

Page 35: Seguridad Informatica

Capítulo 2Una Breve Introducción a la Criptografía

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 15 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

v 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 36: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 35

¿Qué estudiaremos en este libro?

Si alguna vez ha pinchado en el acceso a una página web segura, por ejemplo para comprar un billete de avión en Internet, mirar el estado de una cuenta corriente en su banco, ... e incluso al introducir su clave cuando accede a hotmail ...La comunicación se ha hecho en una plataforma segura conocida como SSL dentro de un protocolo https (secure).En esos pocos segundos, tras los que se habrá dado cuenta que aparece un candado en la barra de tareas del navegador, a grandes rasgos ha pasado algo parecido a lo que se mostrará en la última diapositiva de este capítulo.Al final del curso, entre otras cosas, deberíamos ser capaces de saber qué es lo que ha pasado, entender los algoritmos utilizados y poder evaluar sus fortalezas y debilidades ☺.

Page 37: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 36

La razón de este capítulo en el libroLa inclusión de este capítulo -a manera de resumen- de lo que se entiende por criptografía y sus aplicaciones en los sistemas de cifra actuales tiene como objetivo ser una introducción general y amplia de las técnicas de protección de la información y que puede utilizarse en dos escenarios:

Como la primera clase de un curso de criptografía y/o seguridad informática, de forma que el profesor pueda comentar, razonar y debatir con sus alumnos lo que se verá en profundidad en el resto de la asignatura, y servir además como motivación de la misma.Como material básico para una charla de aproximadamente una hora en la que el ponente hace un repaso general de estas técnicas y sus aplicaciones. También para la presentación de este tema dela criptografía en otras asignaturas relacionadas con la seguridad pero que sólo pueden dedicarle una hora dentro del temario.

Page 38: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 37

La criptografía según la RAEHe aquí una definición no muy afortunada...

La Real Academia Española define criptografía (del griego: oculto + escritura) como:

"el arte de escribir con clave secreta o de modo enigmático".

Puede ser interesante y llamativa, pero resulta muy poco ajustada para los tiempos actuales.

vea la siguiente diapositiva

Page 39: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 38

Imprecisiones de esta definición- Arte: la criptografía ha dejado de ser un arte: es una ciencia.- Escritura de documentos: no sólo se escriben mensajes; se envían o se guardan en un computador diversos tipos de documentos y formatos (TXT, DOC, EXE, DLL, JPG, ...).- Se supone una clave: los sistemas actuales usan una o dos. En varias aplicaciones de Internet entran en juego 4 claves.- Clave secreta: existirán sistemas de clave secreta que usan una sola clave y sistemas de clave pública (muy importantes) que usan dos: una clave privada (secreta) y la otra pública.- Representación enigmática: la representación binaria de la información podría ser enigmática para nosotros los humanos pero no para los computadores ☺ ... es su lenguaje natural.

Page 40: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 39

Una definición más técnica de criptografía

CriptografíaHe aquí una definición más formal...

Rama inicial de las Matemáticas y en la actualidad también de laInformática y la Telemática, que hace uso de métodos y técnicas con el objeto principal de cifrar, y por tanto proteger, un mensaje o archivo por medio de un algoritmo, usando una o más claves.

Esto dará lugar a diferentes tipos de sistemas de cifra, denominados criptosistemas, que nos permiten asegurar al menos tres de los cuatro aspectos básicos de la seguridad informática: la confidencialidad o secreto del mensaje, la integridad del mensaje y autenticidad del emisor, así como el no repudio mutuo entre emisor (cliente) y receptor (servidor).

Page 41: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 40

Criptosistema Medio deTransmisor Transmisión Receptor

M C

Cifrador Mensaje cifrado Descifrador

T RMTC M

Usurpación de identidadpor un intruso (I)

Interceptación del mensajepor un intruso (I)

Cualquier medio de transmisión es inseguro

Integridad

Confidencialidad

Estos dos aspectos básicos de la seguridad informática, el de laconfidencialidad y el de integridad (además de la disponibilidad

del sistema y el no repudio) serán muy importantes en un entornode intercambio de información segura a través de Internet.

Confidencialidad e integridad

Page 42: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 41

Tipos de criptosistemas

Clasificación de los criptosistemasSegún el tratamiento del mensaje se dividen en:

Cifrado en bloque (IDEA, AES, RSA* ...) 64 ó 128 bitsCifrado en flujo (A5, RC4, SEAL ...) cifrado bit a bit

Según el tipo de claves se dividen en:Cifrado con clave secretaCifrado con clave pública

Sistemas simétricosSistemas asimétricos

(*) Como veremos en otro capítulo, sistemas como RSA no cifran por bloques propiamente tal: cifran un número único.

Page 43: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 42

Criptosistemas simétricos y asimétricos

Criptosistemas simétricos:Existirá una única clave (secreta) que deben compartir emisor y receptor. Con la misma clave se cifra y se descifra por lo quela seguridad reside en mantener dicha clave en secreto.

Criptosistemas asimétricos:Cada usuario crea un par de claves, una privada y otra pública, inversas dentro de un cuerpo finito. Lo que se cifra en emisión con una clave, se descifra en recepción con la clave inversa. Laseguridad del sistema reside en la dificultad computacional de descubrir la clave privada a partir de la pública. Para ello, usan funciones matemáticas de un solo sentido o con trampa.

Page 44: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 43

Criptosistemas simétricos

Cifrado con criptosistemas de clave secretaMedio de

k Transmisión kM C

Texto TextoBase Criptograma Base

EK MT DKMC

protegida

Integridad

C’ → no permitidoIntruso

EK

Confidencialidad

protegida

M → no permitido

DK

La confidencialidad y la integridad se lograrán si se protegen las claves en el cifrado

y en el descifrado. Es decir, se obtienen simultáneamente si se protege la clave secreta.

DES, TDES, IDEA, CAST, RC5, AES, ...

DES, TDES, IDEA, CAST, RC5, AES, ...

Page 45: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 44

Cifrado con clave pública del receptor(intercambio de claves RSA)

Intruso

Medio deClave públicadel usuario B Transmisión

M

CUsuario A Criptograma

EB MT DB M

C

Clave privadadel usuario B

Usuario B protegida

Confidencialidad

M → no permitido

DB

Observe que se cifra con la clave

pública EB del destinatario B.

Las cifras EB y DB (claves) son inversas dentro de un cuerpo

Un sistema similar es el intercambio de clave de Diffie y Hellman (DH)

Criptosistemas asimétricos (parte 1)

Page 46: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 45

Criptosistemas asimétricos (parte 2)

Cifrado con clave privada del emisor(firma digital RSA)

Intruso

CriptogramaC

Medio deClave privadadel usuario A Transmisión

M

Usuario A DA MT EA M

C

Clave públicadel usuario A

Usuario B DA

protegida

Integridad

C’ → no permitido

Observe que se cifra con la clave privada

DA del emisor A.

Se firma sobre un hash h(M) del mensaje, por ejemplo SHA-1.

Firmas: RSA y DSS

La firma DSS estará basada en el algoritmo de cifra de ElGamal.

Las cifras DA y EA (claves) son inversas dentro de un cuerpo

Page 47: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 46

Tipos de cifra con sistemas asimétricosCriptosistemas de clave pública

Integridad

Confidencialidad

La confidencialidad y la integridad se obtienen por separado

Firmadigital

Información cifrada

Autenticación del usuario A eintegridad de M

EB DBDAM EA M

Usuario B

k privadade A

k públicade A

k públicade B

k privadade B

DA DBC

Usuario A

Page 48: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 47

¿Qué usar, cifra simétrica o asimétrica?

Los sistemas de clave pública son muy lentos pero tienen un fácil intercambio de clave y cuentan con firma digital.Los sistemas de clave secreta son muy rápidos pero carecen de lo anterior.

¿Qué hacer?

Cifrado de la información: - Usaremos sistemas de clave secreta

Firma e intercambio de clave de sesión:- Usaremos sistemas de clave pública

Page 49: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 2: Una Breve Introducción a la Criptografía Página 48

Sistema híbrido de cifra y firma digital

Firmadigitalsobre h(M)

Cifrado simétrico del mensaje

Intercambio previo de clave de sesión k:EB(k) en emisión y DB(k) en recepción

Autenticacióndel usuario A eintegridad de M

k k

h(M) EAh(M)

Usuario A

k privadade A

Usuario B

k públicade A

Cifrado asimétrico

k secretaDk(C)DA Ek(M)

C

k secreta

M M

Fin del capítulo

Page 50: Seguridad Informatica

Capítulo 3Introducción a la Seguridad Informática

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 56 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 51: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 50

¿Cómo definir la seguridad informática?

http://www.rae.es/

• Si nos atenemos a la definición de la Real Academia de la LenguaRAE, seguridad es la “cualidad de seguro”. Buscamos ahora seguro y obtenemos “libre y exento de todo peligro, daño o riesgo”.

• A partir de estas definiciones no podríamos aceptar que seguridad informática es “la cualidad de un sistema informático exento de peligro”, por lo que habrá que buscar una definición más apropiada.

• Algo básico: la seguridad no es un producto, sino un proceso.• Por lo tanto, podríamos aceptar que una primera definición más o

menos aceptable de seguridad informática sería:• Un conjunto de métodos y herramientas destinados a proteger la

información y por ende los sistemas informáticos ante cualquier amenaza, un proceso en el cual participan además personas. Concienciarlas de su importancia en el proceso será algo crítico.

• Recuerde: la seguridad informática no es un bien medible, en cambio sí podríamos desarrollar diversas herramientas para cuantificar de alguna forma nuestra inseguridad informática.

Page 52: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 51

¿Y qué es la criptografía?

La criptografía es aquella rama inicial de las Matemáticas y en la actualidad también de la Informática y la Telemática, que hace uso de métodos y técnicas con el objeto principal de cifrar, y por tanto proteger, un mensaje o archivo por medio de un algoritmo, usando una o más claves.

Un término más genérico es criptología: el compendio de las técnicas de cifra, conocido como criptografía, y aquellas técnicas de ataque conocidas como criptoanálisis.

He aquí una definición menos afortunada de criptografía que podemos encontrar en el diccionario de la Real Academia Española...

Page 53: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 52

Una definición menos afortunada...

La criptografía según la RAE:“Arte de escribir con clave secreta o de modo enigmático”

Desde el punto de vista de la ingeniería y la informática, es difícil encontrar una definición menos apropiada

Hoy ya no es un arte sino una ciencia.No sólo se escriben documentos, se generan diversos tipos de archivos DOC, DLL, EXE, JPG, etc.La clave no es única. Muchos sistemas actuales usan dos claves, una de ellas secreta y la otra pública. En sistemas de navegación segura en Internet se llega a usar 4 claves.No hay nada de enigmático ☺ en una cadena de bits.

Page 54: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 53

El término es cifrar no encriptar

Cifra o cifrado:Técnica que, en general, protege o autentica a un documento o usuario al aplicar un algoritmo criptográfico. Sin conocer una clave específica o secreta, no será posible descifrarlo o recuperarlo.No obstante, la RAE define cifrar como “Transcribir en guarismos, letras o símbolos, de acuerdo con una clave, un mensaje cuyo contenido se quiere ocultar” ... también muy poco técnica .En algunos países de Latinoamérica, por influencia del inglés, se usará la palabra encriptar. Si bien se entiende, esta palabra todavía no existe y podría ser el acto de “introducir a alguien dentro de una cripta”, ... ... algo bastante distinto a lo que deseamos expresar... ☺.

Page 55: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 54

Más definiciones y palabras no recogidas

o En el trabajo diario con temas de seguridad informática, nos encontraremos con muchas situaciones parecidas a ésta.

o Por ejemplo, podemos ver en algunos documentos palabras nuevas como securizar y hacker que, a la fecha, no están recogidas en el diccionario de la Real Academia Española.

o Más aún, aunque le parezca increíble no encontrará en ese diccionario palabras tan comunes como factorizar, primalidad,criptólogo, criptógrafo, criptoanalista, etc.

o No obstante sí se recogen criptograma como “Documento cifrado” y además criptoanálisis como “El arte de descifrar criptogramas”... tal vez no muy acertada esta última porque normalmente se habla aquí de criptoanalizar y no descifrar .

http://www.rae.es/

Page 56: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 55

Unas cuantas definiciones previas

- Criptología: ciencia que estudia e investiga todo aquello relacionado con la criptografía: incluye cifra y criptoanálisis.- Criptógrafo: máquina o artilugio para cifrar.- Criptólogo: persona que trabaja de forma legítima para proteger la información creando algoritmos criptográficos.- Criptoanalista: persona cuya función es romper algoritmos de cifra en busca de debilidades, la clave o del texto en claro.- Texto en claro: documento original. Se denotará como M.- Criptograma: documento/texto cifrado. Se denotará como C.- Claves: datos (llaves) privados/públicos que permiten cifrar un documento y descifrar el correspondiente criptograma.

Page 57: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 56

¿La solución será estar desconectado?

No podemos aceptar esa afirmación simplista que dice que el computador más seguro ...

... es aquel que está desconectado y, por lo

tanto, libre de todos los peligros que hay en la red.

A pesar de todas las amenazas del entorno, que serán muchas y de

muy distinto tipo ...

... tendremos que aplicar políticas, metodologías y

técnicas de protección de la información porque la conectividad es vital.

Page 58: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 57

¿Tenemos conciencia de las debilidades?

Amenazas

La seguridad informática se convierte en un nuevo motivo de preocupación

Habrá debilidades tanto internas como externas...

A finales del siglo XX e inicios del XII tanto las empresas, organismos e incluso particulares comienzan a tomar verdadera conciencia de su importancia. Hoy en día, tener un sistema que cumpla con los estándares de gestión de la seguridad es sinónimo de calidad de servicio.

Page 59: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 58

Acontecimientos en dos últimas décadas

• A partir de los años 80 el uso del ordenador personal comienza a ser común. Asoma por tanto la preocupación por la integridad de los datos.

• En la década de los años 90 aparecen los virus y gusanos y se toma conciencia del peligro que nos acecha como usuarios de PCs y equipos conectados a Internet.

• Además, comienzan a proliferar ataques a sistemas informáticos. La palabra hacker aparece incluso en prensa.

• Las amenazas se generalizan a finales de los 90; aparecen nuevos gusanos y malware generalizado.

• En los años 00s los acontecimientos fuerzan a que se tome muy en serio la seguridad informática.

Page 60: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 59

¿Qué hay de nuevo en los 00s?

• Principalmente por el uso masivo de Internet, el tema de la protección de la información se ha transformado en una necesidad y con ello se populariza la terminología técnica asociada a la criptología:– Cifrado, descifrado, criptoanálisis, firma digital, ...– Autoridades de Certificación, comercio electrónico, ...

• Ya no sólo se comentan estos temas en las universidades. Cualquier usuario desea saber, por ejemplo, qué significa firmar un e-mail o qué significa que en una comunicación con su banco aparezca un candado en la barra de tareas de su navegador y le diga que el enlace es SSL con 128 bits.

• El software actual viene con seguridad añadida o embebida.

Page 61: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 60

¿Es atractivo el delito informático?

• Suponiendo que todos entendemos más o menos qué es un delito informático, algo no muy banal dado que muchos países no se ponen de acuerdo, parece ser que es un buen negocio:– Objeto pequeño: la información que se ataca está almacenada

en contenedores pequeños: no es necesario un camión para robar un banco, llevarse las joyas, el dinero, etc.

– Contacto físico: no existe contacto físico en la mayoría de los casos. Se asegura el anonimato y la integridad física del propio delincuente.

– Alto valor: el objeto codiciado tiene un alto valor. Los datos (el contenido a robar) puede valer mucho más que el soporte que los almacena: servidor, computador, disco, CD, etc.

• Aunque no será la única, una de las herramientas de protección de datos más efectiva es el uso de técnicas criptográficas.

Page 62: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 61

Seguridad Física y Seguridad Lógica• El estudio de la seguridad informática podríamos plantearlo desde dos

enfoques distintos aunque complementarios:– La Seguridad Física: puede asociarse a la protección del sistema

ante las amenazas físicas, incendios, inundaciones, edificios, cables, control de accesos de personas, etc.

– La Seguridad Lógica: protección de la información en su propio medio, mediante el enmascaramiento de la misma usando técnicas de criptografía. Este enfoque de las aplicaciones criptográficas, es el que será tratado a lo largo de los capítulos de este libro.

– La gestión de la seguridad está en medio de la dos: los planes de contingencia, políticas de seguridad, normativas, etc. Aunque muy brevemente, este tema será tratado en un próximo capítulo.No obstante, tenga en cuenta que esta clasificación en la práctica no es tan rigurosa. En resumidas cuentas, podríamos decir que cada vez está menos claro dónde comienza una y dónde termina la otra.

Page 63: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 62

Principios de la seguridad informática

• Veremos a continuación los tres principios básicos de la seguridad informática: el del acceso más fácil, el de la caducidad del secreto y el de la eficiencia de las medidas tomadas.

• Tras los acontecimientos del 11/09/2001 en Nueva York, los del 11/03/2004 en Madrid y los del 07/07/2005 en Londres, que echaron por tierra todos los planes de contingencia, incluso los más paranoicos, comenzamos a tener muy en cuenta las debilidades de los sistemas y valorar en su justa medida el precio de la seguridad.

Es necesario aprender de los errores

http://www.virusprot.com/Opiniones2002.html

Page 64: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 63

1er principio de la seguridad informática

PREGUNTA:¿Cuáles son los puntos débiles de un sistema informático?

• P1: El intruso al sistema utilizará el artilugio que haga más fácil su acceso y posterior ataque.

• Existirá una diversidad de frentes desde los que puede producirse un ataque, tanto internos como externos. Esto dificultará el análisis de riesgo ya que el delincuente aplicará la filosofía del ataque hacia el punto más débil: el equipo o las personas.

Page 65: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 64

2º principio de la seguridad informática

PREGUNTA:¿Cuánto tiempo deberá protegerse un dato?

• P2: los datos confidenciales deben protegerse sólo hasta que ese secreto pierda su valor como tal.

• Se habla, por tanto, de la caducidad del sistema de protección: tiempo en el que debe mantenerse la confidencialidad o secreto del dato.

• Esto nos llevará a la fortaleza del sistema de cifra.

Page 66: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 65

3er principio de la seguridad informática

• P3: las medidas de control se implementan para que tengan un comportamiento efectivo, eficiente, sean fáciles de usar y apropiadas al medio.– Efectivo: que funcionen en el momento oportuno.– Eficiente: que optimicen los recursos del sistema.– Apropiadas: que pasen desapercibidas para el usuario.

• Y lo más importante: ningún sistema de control resulta efectivo hasta que debemos utilizarlo al surgir la necesidad de aplicarlo. Junto con la concienciación de los usuarios, éste será uno de los grandes problemas de la Gestión de la Seguridad Informática.Medidas de control

Seguridad

Informática

Page 67: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 66

Amenazas del sistema

• Las amenazas afectan principalmente al hardware, al software y a los datos. Éstas se deben a fenómenos de:– Interrupción– Interceptación– Modificación– Generación

Interrupción Interceptación

Flujo Normal

Modificación Generación

Page 68: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 67

Amenazas de interrupción

Interrupción

Intruso

• Se daña, pierde o deja de funcionar un punto del sistema.

• Su detección es inmediata.

Ejemplos: Destrucción del hardware.Borrado de programas, datos.Fallos en el sistema operativo.

Page 69: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 68

Amenazas de interceptación

Interceptación

Intruso

• Acceso a la información por parte de personas no autorizadas. Uso de privilegios no adquiridos.

• Su detección es difícil, a veces no deja huellas.

Ejemplos: Copias ilícitas de programas.Escucha en línea de datos.

Page 70: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 69

Amenazas de modificación

Modificación

Intruso

• Acceso no autorizado que cambia el entorno para su beneficio.

• Su detección es difícil según las circunstancias.

Ejemplos: Modificación de bases de datos.Modificación de elementos del HW.

Page 71: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 70

Amenazas de generación

Generación

Intruso

• Creación de nuevos objetos dentro del sistema. • Su detección es difícil: delitos de falsificación.

Ejemplos: Añadir transacciones en red.Añadir registros en base de datos.

Page 72: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 71

Escenarios de las amenazas del sistema

Interrupción Interceptación Modificación Generación(pérdida) (acceso) (cambio) (alteración)

Datos

Hardware Software

Interrupción (denegar servicio) Modificación (falsificación)Interceptación (robo) Interrupción (borrado)

Interceptación (copia)

Ejemplos de amenzasLos datos serán la parte más vulnerable del sistema

Page 73: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 72

Amenazas más características

• Hardware: – Agua, fuego, electricidad, polvo, cigarrillos, comida.

• Software:– Además de algunos típicos del hardware, borrados

accidentales o intencionados, estática, fallos de líneas de programa, bombas lógicas, robo, copias ilegales.

• Datos:– Tiene los mismos puntos débiles que el software. Pero

hay dos problemas añadidos: no tienen valor intrínseco pero sí su interpretación y, por otra parte, habrá datos de carácter personal y privado que podrían convertirse en datos de carácter público: hay leyes que lo protegen.

Page 74: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 73

Debilidades del sistema informático (1)

HARDWARE - SOFTWARE - DATOSMEMORIA - USUARIOS

Los tres primeros puntos conforman el llamado Triángulo de Debilidades del Sistema:

– Hardware: pueden producirse errores intermitentes, conexiones sueltas, desconexión de tarjetas, etc.

– Software: puede producirse la sustracción de programas, ejecución errónea, modificación, defectos en llamadas al sistema, etc.

– Datos: puede producirse la alteración de contenidos, introducción de datos falsos, manipulación fraudulenta de datos, etc.

Page 75: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 74

Debilidades del sistema informático (2)

– Memoria: puede producirse la introducción de un virus, mal uso de la gestión de memoria, bloqueo del sistema, etc.

– Usuarios: puede producirse la suplantación de identidad, el acceso no autorizado, visualización de datos confidenciales, etc.

• Es muy difícil diseñar un plan que contemple minimizar de forma eficiente todas estas amenazas, y que además se entienda y pase desapercibido por los usuarios.

• Debido al principio de acceso más fácil, el responsable de seguridad informática no se deberá descuidar ninguno de los cinco elementos susceptibles de ataque al sistema.

Page 76: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 75

Confidencialidad, integridad y disponibilidad

Estos son los tres elementos básicos de la seguridad informática:

• Confidencialidad– Los componentes del sistema serán accesibles sólo por

aquellos usuarios autorizados.• Integridad

– Los componentes del sistema sólo pueden ser creados y modificados por los usuarios autorizados.

• Disponibilidad– Los usuarios deben tener disponibles todos los

componentes del sistema cuando así lo deseen.

Page 77: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 76

No repudio de origen y destino

• No Repudio– Este término se ha introducido en los últimos años

como una característica más de los elementos que conforman la seguridad en un sistema informático.

– Está asociado a la aceptación de un protocolo de comunicación entre emisor y receptor (cliente y servidor) normalmente a través del intercambio de sendos certificados digitales de autenticación.

– Se habla entonces de No Repudio de Origen y No Repudio de Destino, forzando a que se cumplan todas las operaciones por ambas partes en una comunicación.

Page 78: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 77

El concepto de datos segurosSi se cumplen los principios vistos anteriormente, diremos en general que los datos están protegidos y seguros.

Confidencialidad Integridad Disponibilidad

Datos Seguros

DATOS DATOS

DATOS

Esto se entiende en el siguiente sentido: los datos sólo pueden ser conocidos por aquellos usuarios que tienen privilegios sobre ellos, sólo usuarios autorizados los podrán crear o bien modificar, y tales datos deberán estar siempre disponibles.

DATOS

Page 79: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 78

Sistema de cifra

Medio deTransmisor Transmisión Receptor

M C

Cifrador Mensaje cifrado Descifrador

Interceptación del mensajepor un intruso

T RMTC M

Usurpación de identidadpor un intruso

Sea cual sea el medio de transmisión o almacenamiento (enlace, red telefónica, red de datos, disco magnético, disco óptico, etc.), éste será siempre y por definición un medio inseguro. Por lo tanto, habrá que adaptarse a este medio usando el cifrado. Tal vez estodeje de ser cierto en los futuros sistemas con criptografía cuántica.

Page 80: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 79

Esquema de un criptosistema

Texto Emisor (E)Texto cifrado

Receptor (R)Base Base

Canal inseguro

Clave

Cifrador Descifrador

Texto

M MC

KE Clave KR

Texto base: será cualquier archivo o documento

Un espacio de textos en claro MUn espacio de textos cifrados CUn espacio de claves KUnas transformaciones de cifrado EKE(M) Unas transformaciones de descifrado DKR(C)

Hablaremos entonces de:

Page 81: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 80

Funciones y operaciones de cifra

• C = E(M)• M = D(C)• M = D(E(M))

Si se usa una clave k:• C = E(k,M) o Ek(M)• M = D(k, E(k,M))• M = D(kR, E(kE,M))

Las operaciones D y E son inversas o bien lo son las claves que intervienen. Esto último es lo normal, usando inversos dentro de un cuerpo finito. Por tanto, se recupera así el mensaje en claro.

E(M): Cifrado del mensaje MD(C): Descifrado del criptograma C

Es el caso típico de los sistemas modernos: los algoritmos E y D son iguales y la clave kR es la usada en el extremo receptor y la clave kE en extremo emisor.

Page 82: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 81

El espacio de mensajes M

– Componentes de un mensaje inteligible (bits, bytes, pixels, signos, caracteres, etc.) que provienen de un alfabeto previamente establecido como en el ejemplo.

– El lenguaje tiene unas reglas sintácticas y semánticas.– En algunos casos y para los sistemas de cifra clásicos

la longitud del alfabeto indicará el módulo en el cual se trabaja. En los modernos, no guarda relación.

– Habrá mensajes con sentido y mensajes sin sentido.

M = {m1, m2, ..., mn}Está muy claro que esto es un texto “en claro”...

Hola, ¿qué tal?

Page 83: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 82

El espacio de textos cifrados C

– Normalmente el alfabeto es el mismo que el utilizado para crear el mensaje en claro.

– Supondremos que el espacio de los textos cifrados C y el espacio de los mensaje M (con y sin sentido) tienen igual magnitud.

– En este caso, a diferencia del espacio de mensajes M, serán válidos todo tipo de criptogramas, con y sin sentido, como es lógico.

C = {c1, c2, ..., cn}VjbmljYSB3kZSBNYWRy+WQgQ0ExLTAr8BgN=

A?&% | $”/n_*

Page 84: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 83

El espacio de claves K

– Se supone que es un conjunto altamente aleatorio de caracteres, palabras, bits, bytes, etc., en función del sistema de cifra. Al menos una de las claves en un criptosistema se guardará en secreto.

– Si el espacio de claves K fuera tan grande como el de los mensajes M, se puede lograr un criptosistema con secreto perfecto.

K = {k1, k2, ..., kn}

Page 85: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 84

Transformaciones de cifrado Ek

– Ek es una aplicación con una clave k, que está en el espacio de claves K, sobre el mensaje M y que lo transforma en el criptograma C.

– Es el algoritmo de cifra. Sólo en algunos sistemas clásicos el algoritmo es secreto. Por lo general el algoritmo de cifra será de dominio público y además su código fuente está disponible en Internet.

Ek: M → C k ∈ K

Page 86: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 85

Transformaciones de descifrado Dk

– Dk es una aplicación con una clave k, que está en el espacio de claves K, sobre el criptograma C y que lo transforma en el texto en claro M.

– Se usa el concepto de inverso. Dk será la operación inversa de Ek o bien -que es lo más común- se usa la misma transformación Ek para descifrar pero con una clave k’ que es la inversa de k dentro de un cuerpo.

Dk: C → M k ∈ K

Page 87: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 86

Requisitos de seguridad de un sistema

– El algoritmo de cifrado y descifrado deberá ser rápido y fiable.

– Debe ser posible transmitir ficheros por una línea de datos, almacenarlos o transferirlos.

– No debe existir retardo debido al cifrado o descifrado.– La seguridad del sistema deberá residir solamente en

el secreto de una clave y no en las funciones de cifra.– La fortaleza del sistema se entenderá como la

imposibilidad computacional (tiempo de cálculo en años que excede cualquier valor razonable) de romper la cifra o encontrar una clave secreta a partir de otros datos de carácter público.

Page 88: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 87

Recomendaciones de Bacon

• Filósofo y estadista inglés del siglo XVI– Dado un texto en claro M y un algoritmo de cifra Ek, el

cálculo de Ek(M) y su inversa debe ser sencillo.– Será imposible encontrar el texto en claro M a partir del

criptograma C si se desconoce la función de descifrado Dk.– El criptograma deberá contener caracteres distribuidos para

que su apariencia sea inocente y no dé pistas a un intruso.

Teniendo en cuenta los siglos trascurridos desde estas afirmaciones, éstas siguen siendo válidas hoy en día.

http://www.sirbacon.org/links.html

Page 89: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 88

Recomendaciones de Kerckhoffs

Profesor holandés en París en el siglo XIXK1 El sistema debe ser en la práctica imposible de criptoanalizar.K2 Las limitaciones del sistema no deben plantear dificultades a sus

usuarios.K3 El método de elección de claves debe ser fácil de recordar.K4 La transmisión del texto cifrado se hará por telégrafo.K5 El criptógrafo (equipo o máquina de cifrar) debe ser portable.K6 No debe existir una larga lista de reglas de uso.

Al igual que en el caso anterior, estas recomendaciones siguen siendo válidas si las adaptamos a nuestra época y tecnología.

http://en.wikipedia.org/wiki/Kerckhoffs%27_law

Page 90: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 89

Fortaleza de la cifra: tipos de ataques

Conociendo el algoritmo de cifra, el criptoanalista intentará romper la cifra en uno de estos escenarios:1. Contando únicamente con el criptograma.2. Contando con texto en claro conocido.3. Eligiendo un texto en claro.4. A partir de texto cifrado elegido.

ATAQUE POR FUERZA BRUTA5. Buscando todas combinaciones posibles de claves.

Un algoritmo de cifra será fuerte si, conociendo su funcionamiento o código, conociendo el texto cifrado y conociendo el texto en claro, el ataque a la clave de cifra secreta es computacionalmente muy difícil.

Page 91: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 90

Clasificación de los criptosistemas

• Sistemas de cifra: clásicos versus modernos– Clasificación histórica y

cultural (no técnica).• Sistemas de cifra: en bloque

versus en flujo– Clasificación de acuerdo a

cómo se produce la cifra.• Sistemas con clave: secreta versus pública

– Clasificación de acuerdo al uso de una única clave secreta (sistemas simétricos) o bien dos claves, una de ellas pública y la otra privada (sistemas asimétricos).

Page 92: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 91

Cifrado en bloque y cifrado en flujo

• CIFRADO EN BLOQUE:– El mismo algoritmo de cifra se aplica a un bloque de

información (grupo de caracteres, número de bytes, etc.) repetidas veces, usando la misma clave. El bloque de texto o información a cifrar normalmente será de 64 ó 128 bits.

• CIFRADO EN FLUJO:– El algoritmo de cifra se aplica a un elemento de

información (carácter, bit) mediante un flujo de claveen teoría aleatoria y de mayor longitud que el mensaje. La cifra se hace carácter a carácter o bit a bit.

Page 93: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 92

Comparativa de cifra: bloque vs flujo

CIFRADO EN BLOQUEVentajas: Desventajas:* Alta difusión de los elementos * Baja velocidad de cifrado al tener

en el criptograma. que leer antes el bloque completo.* Inmune: imposible introducir * Propenso a errores de cifra. Un

bloques extraños sin detectarlo. error se propagará a todo el bloque.

CIFRADO EN FLUJOVentajas: Desventajas:* Alta velocidad de cifra al no * Baja difusión de elementos en el

tener en cuenta otros elementos. criptograma.* Resistente a errores. La cifra es * Vulnerable. Pueden alterarse los

independiente en cada elemento. elementos por separado.

Page 94: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 93

Confidencialidad versus integridad

• Vamos a ver cómo se obtienen en cada uno de estos sistemas de cifra (cifrado con clave secreta o sistemas simétricos y cifrado con clave pública o sistemas asimétricos) los dos aspectos más relevantes de la seguridad informática:

La confidencialidad y laintegridad de la información

Llegaremos a un concepto de mucha utilidad en criptografía al analizar el sistema con clave pública...

Page 95: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 94

Criptosistemas de clave secreta

Mensaje cifrado

Medio deClave Transmisión Clave

M CTexto TextoBase Base

Cifrado DescifradoMTMC

Cifrado: Ek Descifrado: Dk

Ek Dk

k k

Clave única

El problema es cómo hacerla llegar al destino

Page 96: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 95

Confidencialidad con clave secreta

protegida

Buscamos la confidencialidad

Medio dek Transmisión k

M C

Texto TextoBase Base

No le estará permitido leer M

EK MT DKMC

DK

intruso

Criptograma

Protegeremos el extremo receptor

El criptoanalista no podrá descifrar el criptograma C o cualquier otro texto cifrado bajo la transformación EK.

Page 97: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 96

Integridad con clave secreta

protegida

Buscamos la integridad

Medio dek Transmisión k

M C

Texto TextoBase Criptograma Base

No le estará permitidogenerar un C’

EK MT DKMC

EK

intruso

Hola... ¡soy Paquito!

Protegeremos ahora el extremo emisor

El criptoanalista no podrá cifrar un texto en claro M’ y enviarlo al destinatario como C’ = EK(M’).

Page 98: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 97

Resumen para sistemas de clave secreta

protegida

Medio dek Transmisión k

M C

Texto TextoBase Criptograma Base

C’ no permitido

EK MT DKMC

EK

Hola... ¡soy Paquito!

M no permitido

protegida

DK

ConfidencialidadIntegridad

La confidencialidad y la integridad se lograrán simultáneamente si se protege la clave secreta.

Es algo obvio y que ya se esperaba...

Page 99: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 98

Confidencialidad con clave pública

protegida

Buscamos la confidencialidad

Medio declave pública de B

Transmisión

MC

Texto TextoBase Base

M no permitido

EB MT DB MC

DB

intruso

Criptograma

clave privada de B

Observe que se cifra con la clave pública del usuario receptor.

Usuario A Usuario B

Cada usuario usa dos funciones: una pública EX y otra privada DX.

Cada usuario usa dos funciones: una pública EX y otra privada DX.

C = EB(M)M = DB(C) = DB(EB(M))

EB y DB son operaciones inversas dentro de un cuerpo

Page 100: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 99

Integridad con clave pública

Medio declave privada de A

Transmisión

MC

Texto TextoBase Base

DA MT EA MC

DA

Criptograma

clave pública de A

Observe que se cifra con la clave privada del usuario emisor.

Usuario A Usuario B

protegida

Buscamos la integridad

C’ no permitidointruso

Hola... soy Paquito¡otra vez!

C = DA(M)M = EA(C) = EA(DA(M))

DA y EA son operaciones inversas dentro de un cuerpo

Page 101: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 100

Resumen para sistemas con clave pública

k privadade A

MC

Confidencialidad

Usuario A Usuario B

Integridad

DB EAEBDA

k privadade B

k públicade B

k públicade A

DA

La integridad y la confidencialidad se obtendrán ahora por separado ...

M

Esta característica será muy importante

DB

C = EB(DA(M)) Cifrado del mensaje con firma digitalM = EA(DB(C)) Descifrado y comprobación de firma

Page 102: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 101

Gestión de claves en sistemas simétricos

A

E D

C

B

kAB

kAC

kBC

kAD

kBD

kCD

kAE

kBE

kCE

kDE

X YkXY

kYX

Número Claves:n (n-1) / 2

2 usuarios: N = 13 usuarios: N = 34 usuarios: N = 65 usuarios: N = 10

Definición previa:

N = nº de claves

Muy mala gestión de claves: el valor tiende a n2.

Clave secreta

kxy = kyx

Page 103: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 102

– Tendrá como inconveniente principal (debido a las funciones de cifra empleadas) una tasa o velocidad de cifra mucho más baja que la de los criptosistemas de clave secreta.

¿Solución?

Sistemas de cifra híbridosLos esquemas actuales de protocolos seguros en Internet, redes y entornos de cómputo personal (PC) funcionan así.

La solución híbrida¿Es entonces la clave pública la solución a todos nuestros problemas?¡ NO !

Fin del capítulo

Page 104: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 103

Cuestiones y ejercicios (1 de 2)

1. Un empleado poco satisfecho ha robado varios discos duros de muyalta calidad con datos de la empresa. ¿Qué importa más, el costo de esos discos o el valor de los datos? Justifique su respuesta.

2. En una empresa se comienza a planificar estrategias de acceso a las dependencias, políticas de backup, de protección de los equipos ante el fuego, agua, etc. ¿Eso es seguridad física o lógica? ¿Por qué?

3. En nuestra empresa alguien usa software pirata. ¿Es una amenaza de interrupción, interceptación, modificación o de generación?

4. Una clave de sesión en Internet para proteger una operación de cifra dura 45 segundos. Si alguien intercepta el criptograma, ¿debemospreocuparnos si sabemos que la próxima vez la clave será otra?

5. Si se prueban todas las combinaciones posibles de una clave pararomper un criptograma, ¿qué tipo de ataque estamos realizando?

Page 105: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 3: Introducción a la Seguridad Informática Página 104

Cuestiones y ejercicios (2 de 2)

6. Si protegemos una clave en el extremo emisor, ¿qué buscamos, la confidencialidad o la integridad? ¿Y si es en el extremo receptor?

7. ¿Por qué en un sistema simétrico se obtienen la confidencialidad y la integridad al mismo tiempo protegiendo sólo la clave?

8. Explique qué significa que en un sistema de cifra asimétrica se obtengan la confidencialidad y la integridad por separado.

9. Si se cifra un mensaje con la clave privada del emisor, ¿qué se obtiene? ¿Y si el emisor cifra con la clave pública del receptor?

10. ¿Tiene sentido que el emisor cifre de forma asimétrica con su clave pública? ¿Qué logramos con ello? ¿Para qué serviría?

11. Queremos comunicarnos 10 usuarios con un sistema de cifra de clave secreta única entre cada dos miembros. ¿Cuántas claves serán necesarias? ¿Es eficiente el sistema? ¿Y si hay un usuario más?

Page 106: Seguridad Informatica

Capítulo 4Calidad de Información y Programas Malignos

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 27 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 107: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 106

¿Qué es la información?

• Bajo el punto de vista de la ingeniería:– Estudio de las características y estadísticas del

lenguaje que nos permitirá su análisis desde un enfoque matemático, científico y técnico.

• Bajo el punto de vista de la empresa:– Conjunto de datos propios que se gestionan y

mensajes que se intercambian personas y/o máquinas dentro de una organización.

Page 108: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 107

Teoría de la información de Shannon

• El estudio hecho por Claude Shannon en años posteriores a la 2ª Guerra Mundial ha permitido, entre otras cosas:– Cuantificar la cantidad de información.– Medir la entropía de la información.– Definir un sistema con secreto perfecto.– Calcular la redundancia y la ratio del lenguaje.– Encontrar la distancia de unicidad.

Todo el estudio de Shannon está orientado a criptosistemas clásicos que cifran letras, que tienen escaso interés en este libro. No obstante, en un capítulo posterior se verán estos sistemas con un mínimo detalle pues permiten analizar con cierta facilidad sistemas con secreto perfecto.

http://es.wikipedia.org/wiki/Claude_Shannon

Page 109: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 108

La información en la empresa

• Se entenderá como:– Todo el conjunto de datos y ficheros de la empresa.– Todos los mensajes intercambiados.– Todo el historial de clientes y proveedores.– Todo el historial de productos.– En definitiva, el know-how de la organización.

• Si esta información se pierde o deteriora, le será muy difícil a la empresa recuperarse y seguir siendo competitiva. Por este motivo, es vital que se implanten unas políticas de seguridad y que, además, se haga un seguimiento de ellas.

Page 110: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 109

Importancia de la información

• El éxito de una empresa dependerá de la calidad de la información que genera y gestiona. Así, una empresa tendrá una información de calidad si ésta posee, entre otras características, las de confidencialidad, de integridad y de disponibilidad.

• La implantación de una política y medidas de seguridad informática en la empresa comienza a tenerse en cuenta sólo a finales de la década pasada. En este nuevo siglo, es un factor estratégico en el desarrollo y éxito de la misma. Después de atentados terroristas, incendios, huracanes y diversas amenazas,muchas empresas han desaparecido por no haber sido capaces de recuperarse tras haber perdido toda su información.

Page 111: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 110

Vulnerabilidad de la información

• La información (datos) se verá afectada por muchos factores, incidiendo básicamente en los aspectos de confidencialidad, integridad y disponibilidad de la misma.

• Desde el punto de vista de la empresa, uno de los problemas más importantes puede ser el que está relacionado con el delito o crimen informático, bien por factores externos o internos. Habrá que estar muy atentos al factor humano interno.

Un empleado descontento...

Page 112: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 111

Hay que implantar políticas de seguridadEl tratamiento y vulnerabilidad de la información se verá influida por otros temas, como por ejemplo los aspectos legales vigentes. Además, las empresas cada día dependen más de sus comunicaciones y de su trabajo en red, lo que aumenta su inseguridad.

... Y solamente ahora comienza a tomarse

verdaderamente en serio.

Política 1

Política 2

Política 3

Solución

La solución parece muy sencilla: crear y aplicar políticas de seguridad...

http://www.rediris.es/cert/doc/docu_rediris/poliseg.es.html

Page 113: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 112

Acciones contra los datos

• Una persona no autorizada podría:– Clasificar y desclasificar los datos.– Filtrar información.– Alterar la información.– Borrar la información.– Usurpar datos.– Hojear información clasificada.– Deducir datos confidenciales.

Por lo tanto, la protección de datos resulta

obvia

Page 114: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 113

Copias de seguridad: backup

• La medida más elemental para la protección de los datos es determinar una buena política de copias de seguridad o backups:– Copia de seguridad completa

• Todos los datos (la primera vez).– Copias de seguridad incrementales

• Sólo se copian los ficheros creados o modificados desde el último backup.

– Elaboración de un plan de backup en función del volumen de información generada

• Tipo de copias, ciclo de esta operación, etiquetado correcto.• Diarias, semanales, mensuales: creación de tablas.

– Establecer quién, cómo y dónde se guardan esos datos.

http://www.criptored.upm.es/guiateoria/gt_m001l.htm

Page 115: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 114

Hackers, crakers, script kiddies...

• Hacker:– Definición inicial de los ingenieros del MIT que hacían

alardes de sus conocimientos en informática.– Entre muchas clasificaciones están las de White Hat

(generalmente no delictivos), Blak Hat (generalmente es delictivo) y Grey Hat (reconvertidos por la empresa).

• Cracker:– Persona que intenta de forma ilegal romper la seguridad de

un sistema por diversión o interés.• Script kiddie:

– Un inexperto, normalmente un adolescente, que usará programas que se descarga de Internet para atacar sistemas.

Más información en:

http://www.umanizales.edu.co/encuentrohackers/tiposh.htm

Page 116: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 115

Puntos vulnerables en la red

Las empresas relacionadas con las Nuevas Tecnologías de la Información NTIs hacen uso de varias técnicas y herramientas de redes para el intercambio de datos:

• Transferencia de ficheros (ftp)• Transferencia de datos e información a través de

Internet (http)• Conexiones remotas a máquinas y servidores

(telnet)

Todo esto presentará importantes riesgos de ataques por parte de delincuentes informáticos, pero ...

Page 117: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 116

¿Dónde está el verdadero enemigo?

Por muy organizados que puedan estar estos grupos de delincuentes, primero que nada hay que ponerse en el lugar que nos corresponde yno caer en la paranoia. Además, debemos pensar que el peor enemigo puede estar dentro de casa. Según estadísticas fiables, cerca del 80% de las amenazas de seguridad provienen de la propia organización.

La solución sigue siendo la misma: la puesta en marcha de una adecuada política de seguridad en la empresa.

Page 118: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 117

Algunos ataques y delitos informáticos

Son acciones que vulneran la confidencialidad, integridad y disponibilidad de la información.– Ataques a un sistema informático:

Fraude Malversación Robo

Sabotaje Espionaje Chantaje

Revelación Mascarada Virus

Gusanos C. de Troya Spam

http://www.delitosinformaticos.com/delitos/

Page 119: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 118

Fraude y sabotaje

FraudeActo deliberado de manipulación de datos perjudicando a una persona física o jurídica que sufre de esta forma una pérdida económica. El autor del delito logra de esta forma un beneficio normalmente económico.

SabotajeAcción con la que se desea perjudicar a una empresa entorpeciendo deliberadamente su marcha, averiando sus equipos, herramientas, programas, etc. El autor no logra normalmente con ello beneficios económicos pero pone en jaque mate a la organización.

Page 120: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 119

Chantaje y mascarada

ChantajeAcción que consiste en exigir una cantidad de dinero a cambio de no dar a conocer información privilegiada o confidencial y que puede afectar gravemente a la empresa, por lo general a su imagen corporativa.

MascaradaUtilización de una clave por una persona no autorizada y que accede al sistema suplantando una identidad. De esta forma el intruso se hace dueño de la información, documentación y datos de otros usuarios con los que puede, por ejemplo, chantajear a la organización.

Page 121: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 120

Virus y gusanosVirusCódigo diseñado para introducirse en un programa, modificar o destruir datos. Se copia automáticamente a otros programas para seguir su ciclo de vida. Es común que se expanda a través de plantillas, las macros de aplicaciones y archivos ejecutables.

GusanosVirus que se activa y transmite a través de la red. Tiene como finalidad su multiplicación hasta agotar el espacio en disco o RAM. Suele ser uno de los ataques más dañinos porque normalmente produce un colapso en la red como ya estamos acostumbrados.

Page 122: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 121

Caballos de Troya y spam

Caballos de TroyaVirus que entra al ordenador y posteriormente actúa de forma similar a este hecho de la mitología griega. Así, parece ser una cosa o programa inofensivo cuando en realidad está haciendo otra y expandiéndose. Puede ser muy peligroso cuando es un programador de la propia empresa quien lo instala en un programa.

SpamEl spam o correo no deseado, si bien no lo podemos considerar como un ataque propiamente dicho, lo cierto es que provoca hoy en día pérdidas muy importantes en empresas y muchos dolores de cabeza.

Page 123: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 122

Ataques y delitos recientes

Tres amenazas que se han incrementado en el año 2005:Cartas nigerianas: correo electrónico que comenta la necesidad de sacar una gran cantidad de dinero de un país africano a través de un “cómplice” de otro país, justificando una persecución política. Ingeniería social: correo electrónico en el que “se fuerza” al usuario a que abra un archivo adjunto que supuestamente le interesa o bien está muy relacionado con su trabajo, utilizando así el eslabón más débil de una cadena de seguridad como es el ser humano.Phising: simulación, algunas veces perfecta, de una página Web de un banco solicitando el ingreso de claves secretas, con la excusa de la aplicación de nuevas políticas de seguridad de la entidad. Dentro del enlace a la noticia de Hispasec, se recomienda la visualización de los vídeos explicativos en flash con los altavoces del PC encendidos.

http://www.hispasec.com/unaaldia/2406http://en.wikipedia.org/wiki/Phising

Page 124: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 123

Aparecerán nuevos ataques

En un futuro inmediato y en los próximos años aparecerán nuevos delitos y ataques a los sistemas informáticos y redes que, a fecha de hoy, no sabemos cómo serán ni a qué vulnerabilidad atacarán.

Este constante enfrentamiento entre el lado oscuro o el mal (conocido como el Yin) y el lado claro o el bien (el Yang), como muestra este símbolo propio de filosofías ancestrales, será inevitable en sistemas intercomunicados y abiertos como los actuales.

Las comunicaciones crecerán cada vez más hacia ese entorno abierto, como las actuales redes inalámbricas, con lo que irán apareciendo nuevas amenazas...

Page 125: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 124

Breve introducción a virus informáticos

Las próximas diapositivas son sólo una breve y elemental introducción al tema de los virus informáticos, orientado ademássólo al mundo de los PCs y del llamado entorno Windows. No pretende ser ni mucho menos un documento que trate los virus informáticos y programas malignos con la profundidad que debería hacerse y que este tema en realidad se merece. Se incluye este apartado precisamente en este capítulo como un factor más a tener en cuenta en cuanto a la calidad de la información que manejamos.Mucha gente cataloga a éste como un tema menor; sin embargo,dentro de las empresas es uno de los mayores problemas a los que se enfrentan los responsables de seguridad informática.

Page 126: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 125

Historia y tipos de virus

• Primer ejemplo: John von Neuman en 1949.• Primer virus: M. Gouglas de Bell Laboratories crea el Core

War en 1960.• Primeros ataques a PCs entre 1985 y 1987:

– Virus Jerusalem y Brain.• Inofensivos (pelotas, letras que se mueven, etc.)

– Sólo molestan y entorpecen el trabajo pero no destruyen información. Podrían residir en el PC.

• Malignos (Viernes 13, Blaster, Nimbda, Netsky, Klez, etc.)– Destruyen los datos y afectan a la integridad y la

disponibilidad del sistema. Hay que eliminarnos.

Más información en:

http://alerta-antivirus.red.es/virus/ver_pag.html?tema=V

Page 127: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 126

Transmisión de virus y malware• Se transmiten sólo mediante la ejecución de un programa. Esto

es muy importante recordarlo.

• El correo electrónico por definición no puede contener virus al ser sólo texto. No obstante, muchas veces contienen archivos añadidos o bien los visualizadores ejecutan código en el cliente de correo del usuario y éstos pueden tener incluido un virus.

• No obstante hay que estar muy atentos pues ya a comienzos de 2006 hacen su aparición virus que se ejecutan desde la simple visualización de un gráfico jpg, gif, etc., usando para ello una vulnerabilidad conocida de procesamiento de WMF (Windows Meta File) que permite la ejecución de código arbitrario.

http://www.hispasec.com/unaaldia/2639

Page 128: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 127

Peligros del entorno Web

• El entorno web es mucho más peligroso. Un enlace puede lanzar un programa que se ejecute en el cliente y nos infecte o comprometa la máquina, dejándola abierta para otros ataques o bien dejarla como un zombie que colabore en otros ataques.

• Si se atreve y su sistema tiene AntiSpyware haga una prueba: busque en Google una página web porno supuestamente seria, navegue unos 10 minutos y luego al salir observe que dicho programa seguramente le avisará de varios programas spyware, más de algún dialer que se quiere instalar, etc.

• Punto más crítico de la seguridad respecto a virus y accesos a Internet: usuario que confiado en la dirección del remitente o de un servidor, por curiosidad, engañado con la denominada ingeniería social, etc., ... abre archivos o entra a ese servidor.

Page 129: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 128

Tipos de ataque de un virus

• Están aquellos que infectan a programas con extensión exe, com y sys, por ejemplo. – Residen en memoria al ejecutarse el huésped y de

ahí se propagan a otros archivos.• Y también aquellos que infectan el sistema y el

sector de arranque y tablas de entrada (áreas determinadas del disco).– Se instalan directamente allí y por lo tanto residen

en memoria.

Page 130: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 129

Algunas medidas básicas de prevención

• Proteger los discos extraíbles -hoy principalmente usando la tecnología flash con USB- con la pestaña de seguridad. Es una protección de escritura fácil y muy elemental.

• Instalar un antivirus y actualizarlo de forma periódica. Es muy recomendable que se haga al menos una vez por semana.

• Ejecutar el antivirus a todo el disco duro una vez al mes. • Ejecutar siempre el antivirus a todo disco o CD que se

introduce al sistema y a los archivos que descargamos desde Internet o vienen adjuntos en un e-mail.

• Si se tiene dudas, recurra a herramientas libres en Internet (*).• Controlar el acceso de extraños al computador.• Aunque esto puede ser más complicado ... use software legal.

(*) http://www.virustotal.com/

Page 131: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 130

¿Qué hacer en caso de estar infectado?

• Detener las conexiones remotas.• No mover el ratón ni activar el teclado.• Apagar el sistema y desconectarlo.• Arrancar con un disquete de arranque o emergencia protegido.• Ejecutar luego un programa antivirus. • Si es posible, hacer copia de seguridad de sus archivos para

poder compararlas con copias anteriores.• Formatear el disco duro a bajo nivel (si puede hacerlo claro) y si

no le queda otra solución .• Instalar nuevamente el sistema operativo y restaurar las copias

de seguridad... ¿ahora se acuerda que debe hacerlas a menudo?De todas maneras, recuerde que la seguridad informática total no existe... ¿ha pensado que su disco duro puede quemarse ahora mismo por una repentina subida de voltaje? Y estas cosas son más habituales de lo que piensa.

Fin del capítulo

Page 132: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 4: Calidad de Información y Programas Malignos Página 131

Cuestiones y ejercicios (1 de 1)

1. ¿Qué diferencia hay entre el concepto de información y su calidad según lo entienda una empresa o los estudios de ingeniería?

2. ¿Por qué se dice que la información de una empresa es su activo más valioso? Compare este activo con el personal de la misma y póngase en situaciones en las que ambos se pierden, ¿qué situación podría ser es más perjudicial para la continuidad de dicha empresa?

3. Como responsables de seguridad hemos detectado que alguien está realizando acciones no lícitas, por ejemplo copias no autorizadas de información. ¿Qué actitud debemos tomar?

4. ¿Qué medidas podrían ser las más adecuadas de cara a minimizar los ataques por virus en nuestra empresa?

5. Si deseamos que nuestra empresa esté debidamente protegida tantofísica como lógicamente, ¿qué deberíamos hacer?

Page 133: Seguridad Informatica

Capítulo 5Introducción a la Gestión de la Seguridad

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 46 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 134: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 133

Protección lógica y física de los datos

Los datos deben protegerse aplicando:• Seguridad Lógica

– Uso de herramientas de protección de la información en el mismo medio en el que se genera o transmite.

– Protocolos de autenticación entre cliente y servidor.– Aplicación de herramientas de seguridad en redes.– Se incluyen también medidas de prevención de riesgos

y la instauración de políticas de seguridad, de planes de contingencia, de recuperación ante desastres, aplicación de normativas, la legislación vigente, etc.

• Seguridad Física– Procedimientos de protección física del sistema:

acceso personas, incendio, agua, terremotos, etc.

Page 135: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 134

La seguridad física en entornos de PCs

Anclajes a mesas de trabajo.Cerraduras en puertas.Tarjetas con alarma.Etiquetas con adhesivos especiales.Bloqueo de unidades externas.Protectores de teclado.Tarjeta de control de acceso al hardware.Sistema de suministro continuo de corriente.Toma de tierra.Eliminación de la estática... etc.

Temas a tener en cuenta en un entorno de PCs

Page 136: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 135

Análisis de riesgo: plan estratégico

• Es el proceso de identificación y evaluación del riesgo a sufrir un ataque y perder datos, tiempo y horas de trabajo, comparándolo con el costo que significaría la prevención de este suceso.

• Su análisis no sólo nos lleva a establecer un nivel adecuado de seguridad, sino que permite conocer mejor el sistema que vamos a proteger. Le recomiendo descargar estas herramientas de libre distribuciónpara el análisis de riesgo desde las direcciones que se indican:

http://www.csi.map.es/csi/pg5m20.htmMagerit V 2

http://www.criptored.upm.es/software/sw_m214_01.htmChinchon V 1.3

Page 137: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 136

Información del análisis de riesgo

• Información que se obtiene en un análisis de riesgo:– Determinación precisa de los recursos sensibles de la

organización.– Identificación de las amenazas del sistema.– Identificación de las vulnerabilidades específicas del

sistema.– Identificación de posibles pérdidas.– Identificación de la probabilidad de ocurrencia de una

pérdida.– Derivación de contramedidas efectivas.– Identificación de herramientas de seguridad.– Implementación de un sistema de seguridad eficiente en

costes y tiempo.

Page 138: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 137

Ecuación básica del análisis de riesgo

¿ B > P ∗ L ?

– B: es la carga o gasto que significa la prevención de una pérdida específica debido a una vulnerabilidad.

– P: es la probabilidad de que se vea afectada dicha vulnerabilidad y ocurra esa pérdida específica.

– L: es el impacto o coste total que significa la pérdida específica debido a esa vulnerabilidad que ha sido afectada por una amenaza.

Page 139: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 138

¿Cuándo y cuánto invertir en seguridad?

Si B ≤ P ∗ LHay que implementar una medida de prevención.

Si B > P ∗ LNo es necesaria una medida de prevención.

... al menos matemáticamente. No obstante, siempre puede ocurrir una desgracia que esté fuera de todo cálculo como las consecuencias informáticas en algunas empresas tras el 11 de septiembre. Lo que sí es cierto, es que no tiene sentido alguno invertir más dinero en la protección del bien que el propio valor de éste.

Page 140: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 139

Efectividad del coste de la medida

• Las medidas y herramientas de control han de tener menos coste que el valor de las posibles pérdidas y el impacto de éstas si se produce el riesgo temido.

• Ley básica: el costo del control ha de ser menor que el activo que se protege. Algo totalmente lógico y que tanto los directivos como los responsables de seguridad de la empresa deberán estimar de forma adecuada a su realidad. En varios casos, el verdadero problema está en la dificultad de calcular de forma más o menos precisa el impacto económico que puede suponer el hecho de que ocurra ese riesgo.

Page 141: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 140

El factor L en la ecuación de riesgo

Factor L (en B ≤ P ∗ L)• El factor de impacto total L es difícil de evaluar.

Incluye daños a la información, a los equipos, pérdidas por reparación, por volver a levantar el sistema, pérdidas por horas de trabajo, etc.

• Siempre habrá una parte de valoración subjetiva.• La pérdida de datos puede llevar a una pérdida de

oportunidades por el llamado efecto cascada.• En la organización debe existir una comisión

especializada interna o externa que sea capaz de evaluar todas las posibles pérdidas y cuantificarlas.

Page 142: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 141

El factor P en la ecuación de riesgo

Factor P (en B ≤ P ∗ L)• El factor P está relacionado con la determinación

del impacto total L y depende del entorno en el que esté la posible pérdida. Como este valor es difícil de cuantificar, dicha probabilidad puede asociarse a una tendencia o frecuencia conocida.– Una vez se conoce P para un L dado, se obtiene la

probabilidad de pérdida relativa de la ocurrencia P∗L que se comparará con B, el peso que nos supondría implantar la medida de prevención respectiva.

Page 143: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 142

El factor B en la ecuación de riesgo

Factor B (en B ≤ P ∗ L)• Indica qué se requiere para prevenir una pérdida.

Por ejemplo, puede ser la cantidad de dinero que vamos a disponer para mitigar la posible pérdida.– Ejemplo: la carga de prevención para que un sistema

informático minimice el riesgo de que sus servidores sean atacados desde fuera incluye la instalación de software y hardware adecuado, un cortafuegos, un sistema de detección de intrusos, una configuración de red segura, una política de seguimiento de accesos y de passwords, personal técnico cualificado, etc. Todo ello importa una cantidad de dinero específica.

Page 144: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 143

Cuantificación de la protección

¿ B ≤ P ∗ L ?• ¿Cuánta protección es necesaria?

– En nuestro ejemplo: qué configuración de red usar, en qué entorno trabajar, qué tipo de cortafuegos, etc. Eso dependerá del nivel de seguridad que nuestra empresa desee, crea oportuno o que nos imponga el mercado.

• ¿De qué forma nos protegeremos?– Una casa puede protegerse con puertas, cerraduras, barras

de hierro en ventanas, sistemas de alarmas, etc.– En un sistema informático podemos aplicar protecciones

físicas, políticas de seguridad, control de accesos, planes de contingencia y de recuperación, cortafuegos, IDs, uso de cifrado, autenticación, firmas, pasarelas seguras, etc.

Page 145: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 144

Pasos en un análisis de riesgos

1. Identificación costo posibles pérdidas (L)

Identificar amenazas

3. Identificar posibles acciones (gasto) y sus implicaciones (B).Seleccionar acciones a implementar.

¿ B ≤ P∗L ?

Se cierra

el ciclo

2. Determinar susceptibilidad.La probabilidad de pérdida (P)

Page 146: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 145

Algunas políticas de seguridad

• Políticas administrativas– Procedimientos administrativos.

• Políticas de control de acceso– Privilegios de acceso del usuario o programa.

• Políticas de flujo de información– Normas bajo las cuales se comunican los

sujetos dentro del sistema.

Page 147: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 146

Aspectos administrativos

• Políticas administrativas– Se establecen aquellos procedimientos de

carácter administrativo en la organización como por ejemplo en el desarrollo de programas: modularidad en aplicaciones, revisión sistemática, etc.

– Se establecen responsabilidades compartidas por todos los usuarios, cada uno en su nivel.

– Se procede a la etapa de concienciación.

Page 148: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 147

Control de accesos

• Políticas de control de acceso– Política de menor privilegio

• Acceso estricto a objetos determinados, con mínimos privilegios para los usuarios.

– Política de compartición• Acceso de máximo privilegio en el que cada

usuario puede acceder a todos los objetos.– Granularidad

• Número de objetos accesibles. Se habla entonces de granularidad gruesa y fina.

Page 149: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 148

Control de flujo

• Políticas de control de flujo– La información a la que se accede, se envía y

recibe por:• ¿Canales claros o canales ocultos? ¿Seguros o no?

– ¿Qué es lo que hay que potenciar?• ¿La confidencialidad o la integridad?• ¿La disponibilidad? ... ¿El no repudio?• Según cada organización y su entorno de trabajo y

servicios ofrecidos, habrá diferencias. En algunos sistemas primarán unos más que otros, en función de lo secreta que sea la información que procesan.

Page 150: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 149

Modelos de seguridad

• Modelo de Bell LaPadula (BLP)– Rígido. Confidencialidad y con autoridad.

• Modelo de Clark-Wilson (CW)– Orientación comercial: integridad.

• Modelo de Take-Grant (TG)– Derechos especiales: tomar y otorgar.

• Otros: modelo de Goguen-Meseguer (no interferencia entre usuarios); modelo de Matriz de Accesos (estados y transiciones entre estados: tipo Graham-Dennig; tipo Harrison-Ruzzo-Ullman), Biba, Chinese Wall, etc.

Se definirán brevemente en próximas diapositivas

Page 151: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 150

• La escritura hacia abajo está prohibida.• La lectura hacia arriba está prohibida.• Es el llamado principio de tranquilidad.

Lectura hacia arriba prohibida Secreto máximoUsuario dado de altacon un nivel de secreto Secreto

Escritura hacia abajo prohibida No clasificado

Modelo de Bell y LaPadula

http://en.wikipedia.org/wiki/Bell-LaPadula_model

Page 152: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 151

Modelo de Clark Wilson CW

• Está basado en políticas de integridad– Elementos de datos restringidos.

• sobre éstos debe hacerse un chequeo de consistencia.

– Elementos de datos no restringidos.– Procedimientos de transformación.

• trata los dos elementos.– Procedimientos de verificación de integridad.

http://www.criptored.upm.es/guiateoria/gt_m248c.htm

Page 153: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 152

Modelo de Take Grant TG

• Se describe mediante grafos orientados:– el vértice es un objeto o sujeto.– un arco es un derecho.

• Se ocupa sólo de aquellos derechos que pueden ser transferidos.

http://www.criptored.upm.es/guiateoria/gt_m248b.htm

Documentos de lectura recomendada:

http://www.criptored.upm.es/guiateoria/gt_m248a.htmBiba

Harrison, Ruzzo y Ullman http://www.criptored.upm.es/guiateoria/gt_m248e.htm

Chinese Wall http://www.criptored.upm.es/guiateoria/gt_m248d.htm

Sea View: bases de datos http://www.criptored.upm.es/guiateoria/gt_m248f.htm

Page 154: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 153

Criterios y normativas de seguridad

• Criterio de evaluación TSEC– Trusted Computer System Evaluation Criteria, también

conocido como Orange Book.• Criterio de evaluación ITSEC

– Information Technology Security Evaluation Criteria.• Criterio de evaluación CC

– Common Criteria: incluye los dos anteriores.• Normativa internacional 17799

– Desarrolla un protocolo de condiciones mínimas de seguridad informática de amplio espectro.

Encontrará una interesante lectura sobre aplicación de criterios de seguridad en el documento que se indica

http://www.csi.map.es/csi/criterios/seguridad/index.html

Page 155: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 154

Leyes de seguridad informática en España• En el Real Decreto 994/1999 (11 junio) sobre “Medidas de seguridad

de los ficheros automatizados que contengan datos de carácter personal” se definen las funciones del Responsable de Seguridad.

• Ley Orgánica de Protección de Datos LOPD se desarrolla en España en diciembre de 1999 y comienza a aplicarse ya en el año 2002.

• Se crea una Agencia Española de Protección de Datos AEPD que debe velar por el cumplimiento de esta ley mediante la realización de auditorías, al menos cada dos años. La AEPD la forman 9 personas.

• Se definen las funciones y obligaciones del Responsable de Fichero y del Encargado de Tratamiento.

• Las infracciones se clasifican como leves, graves y muy graves con sanciones de 60.000 €, 300.000 € y 600.000 € respectivamente.

• Establece un conjunto de procedimientos de obligado cumplimientode forma que además de proteger la privacidad de los datos, se cumplan los principios de la seguridad informática física y lógica.

http://www.agpd.es/index.php?idSeccion=77

Page 156: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 155

Cadena de responsabilidades en seguridad

• Responsable de Fichero: es la entidad, institución o persona jurídica que posee datos de carácter personal y que por tanto debe velar por la seguridad de ellos.

• Responsable de Tratamiento: es posible que la entidad anterior sea quien manipule los datos (gestión, copias de seguridad, etc.) o bien esta tarea la ejecute otra empresa. De ahí que se diferencie entre estos dos responsables.

• Responsable de seguridad: persona o personas en las que el responsable de fichero ha asignado formalmente la función de coordinar y controlar las medidas de seguridad aplicables.https://www.agpd.es/upload/Canal_Documentacion/legislacion/Estatal/A.8%29%20Real%20Decreto%20994-1999.pdf

Page 157: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 156

Operaciones de responsabilidad en LOPD

• Artículo 9: Seguridad de los datos.– El responsable del fichero y, en su caso, el encargado del

tratamiento deberán adoptar las medidas de índole técnica y organizativa necesarias que garanticen la seguridad de los datos de carácter personal y eviten su alteración, pérdida, tratamiento o acceso no autorizado, habida cuenta del estado de la tecnología, la naturaleza de los datos almacenados y los riesgos a que están expuestos, ya provengan de la acción humana o del medio físico o natural.

Temas como estar en el “estado de la tecnología” y conocer todo tipo de “riesgos” son un dolor de cabeza para el responsable de seguridad.

https://www.agpd.es/upload/Canal_Documentacion/legislacion/Estatal/Ley%2015_99.pdf

Page 158: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 157

Niveles de seguridad en el RD 994/1999

• Nivel Básico: todos los ficheros que contengan datos de carácter personal deberán adoptar las medidas de seguridad calificadas como de nivel básico.

• Nivel Medio: los ficheros que contengan datos relativos a la comisión de infracciones administrativas o penales, Hacienda Pública, servicios financieros ..., deberán reunir, además de las medidas de nivel básico, las calificadas como de nivel medio.

• Nivel Alto: los ficheros que contengan datos de ideología, religión, creencias, origen racial, salud o vida sexual así como los que contengan datos recabados para fines policiales sin consentimiento de las personas afectadas deberán reunir, además de las medidas de nivel básico y medio, las calificadas como de nivel alto.

Las medidas a que se hace mención en estos textos puede verlas en:

https://www.agpd.es/upload/Canal_Documentacion/legislacion/Estatal/A.8%29%20Real%20Decreto%20994-1999.pdf

Page 159: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 158

LOPD: algunas infracciones leves

• No atender, por motivos formales, la solicitud del interesado derectificación o cancelación de los datos personales objeto de tratamiento cuando legalmente proceda.

• No proporcionar información que solicite la Agencia de Protección de Datos en el ejercicio de las competencias que tiene legalmente atribuidas, en relación con aspectos no sustantivos de la protección de datos.

• No solicitar la inscripción del fichero de datos de carácter personal en el Registro General de Protección de Datos, cuando no sea constitutivo de infracción grave.

• Proceder a la recogida de datos de carácter personal de los propios afectados sin proporcionarles la información que señala el artículo 5 de la presente ley.

Page 160: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 159

LOPD: algunas infracciones graves

• Proceder a la creación de ficheros de titularidad pública o iniciar la recogida de datos de carácter personal para los mismos, sin autorización de disposición general, publicada en el “Boletín Oficial del Estado” o diario oficial correspondiente.

• Proceder a la creación de ficheros de titularidad privada o iniciar la recogida de datos de carácter personal para los mismos con finalidades distintas de las que constituyen el objeto legítimo de la empresa o entidad.

• Proceder a la recogida de datos de carácter personal sin recabar el consentimiento expreso de las personas afectadas, en los casos en que éste se exigible.

• Mantener los ficheros, locales, programas o equipos que contengan datos de carácter personal sin las debidas condiciones de seguridad que por vía reglamentaria se determine.

Page 161: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 160

LOPD: algunas infracciones muy graves

• La recogida de datos de forma engañosa y fraudulenta.• La comunicación o cesión de los datos de carácter personal, fuera de

los casos en que estén permitidas.• La transferencia temporal o definitiva de datos de carácter personal

que hayan sido objeto de tratamiento o hayan sido recogidos parasometerlos a dicho tratamiento, con destino a países que no proporcionen un nivel de protección equiparable sin autorización del Director de la Agencia de Protección de Datos.

• Tratar los datos de carácter personal de forma ilegítima o con menosprecio de los principios y garantías que les sean de aplicación, cuando con ello se impida o se atente contra el ejercicio de losderechos fundamentales.

Page 162: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 161

La norma ISO 17799 (27001)

Presenta normas, criterios y recomendaciones básicas para establecer políticas de seguridad. Éstas van desde los conceptos de seguridad física hasta los de seguridad lógica. Parte de la norma elaborada por la BSI, British Standards Institution, adoptada por International Standards Organization ISO y la International Electronic CommissionIEC.Documento de 70 páginas no de libre distribución.Desde finales de 2005 estas normas se están revisando y cambiando de numeración a partir del número 27001.

http://www.aenor.es/desarrollo/normalizacion/normas/resultadobuscnormas.asp?campobuscador=17799

Page 163: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 162

Entornos de la norma ISO 17799

Se trata de un código de buenas prácticas para la Gestión de la Seguridad de la Información.

• Antecedentes• Introducción• Objeto y campo de la aplicación• Términos y definiciones• Política de seguridad• Aspectos organizativos para la

seguridad• Clasificación y control de los

archivos• Seguridad ligada al personal

• Seguridad física y del entorno

• Gestión de comunicaciones y operaciones

• Control de accesos• Desarrollo y mantenimiento

de sistemas• Gestión de continuidad del

negocio• Conformidad

Page 164: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 163

Historia de la norma ISO 17799

Ref.: “Gestión de Seguridad de la Información: UNE 71502, ISO17799”, A. Villalón.

http://www.criptored.upm.es/guiateoria/gt_m209b.htm

Page 165: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 164

Planes de contingencia• Un Plan de Contingencia consiste en un estudio y análisis

pormenorizado de las áreas que componen la organización y que nos servirá para establecer una política de recuperación ante un desastre.

– Es un conjunto de datos estratégicos de la empresa y que se plasma en un documento con el fin de protegerse ante eventualidades.

• Además de aumentar su seguridad, con un plan estratégico la empresa también gana en el conocimiento de sus fortalezas y sus debilidades.

• Pero si no lo hace, se expone a sufrir una pérdida irreparable mucho más costosa que la implantación de este plan.

Page 166: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 165

Acciones a realizar en un SGSIEl Plan de Contingencia será una herramienta imprescindible en un Sistema de Gestión de la Seguridad Informática (SGSI). Acciones:

• Planificar: estudiar la implantación de la política de seguridad adoptada, alcances que tendrá la gestión, análisis de riesgos que se harán, establecimiento de controles que activaremos, etc.

• Hacer: implantar el sistema de gestión, poner y activar los controles, registros e indicadores. Toma de datos del estado de la seguridad.

• Verificar: realizar una auditoría interna para comprobar el grado de cumplimiento de nuestro sistema.

• Actuar: realizar el seguimiento de la gestión y tomar las medidas correctivas así como las acciones preventivas correspondientes.

Se cierra el ciclo ajustando las acciones planificadas si fuera el caso.Ciclo más conocido por las siglas PDCA (Plan - Do - Check - Act)

Page 167: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 166

Ciclo PDCA

PlanPolítica y Alcance del sistema

Análisis de riesgosSelección de controles

Implantación del SGSIImplantación controles

Implantación indicadoresAcciones correctivasAcciones preventivasModificación Plan

Act Do

Auditoría internaNo conformidades

Grado de cumplimiento

Check

Page 168: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 167

Desastres naturales y su prevención

• Desastres naturales– Huracán– Tormenta– Inundación– Tornado– Vendaval– Incendio– Terremoto– Otros

• Medidas prevención– Emplazamientos

adecuados– Protección fachadas,

ventanas, puertas

Page 169: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 168

Vandalismo informático y su prevención

• Terrorismo• Sabotaje• Robo

• Virus• Chantaje informático• Programas malignos

• Medidas de prevención– Fortificación de entradas– Guardia Jurado– Patrullas de seguridad– Circuito cerrado TV– Control físico de accesos

– Protección de software y hardware con antivirus, cortafuegos, detección de intrusos, etc.

– Seguimiento de las políticas de seguridad de la empresa.

Page 170: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 169

Amenazas del agua y su prevención

• Amenazas– Inundaciones por

causas propias de la empresa

– Inundaciones por causas ajenas

– Pequeños incidentes personales (la típica botella de agua o taza con café que se cae sobre el teclado...)

• Medidas prevención– Revisar conductos de

agua– Emplazar la sala con los

equipos más caros en un sitio libre de estos problemas

– Instalar sistemas de drenaje de emergencia

– Concienciar a nuestros empleados

Page 171: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 170

Amenazas del fuego y su prevención

• Amenazas– Una mala instalación

eléctrica– Descuidos personales

como puede ser fumar en sala de ordenadores

– Papeleras mal ubicadas en la que se tira un cigarrillo no apagado

– Vulnerabilidades del sistema ante el humo

• Medidas prevención– Detector humo y calor– Materiales ignífugos– Almacén de papel

separado de máquinas– Estado del falso suelo– Extintores revisados

Es la amenaza más temida por su rápido poder destructor.

Page 172: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 171

¿Qué sucede si se produce un desastre?

• Las empresas dependen hoy en día de los equipos informáticos y de todos los datos que hay allí almacenados (nóminas, clientes, facturas, ...).

• Dependen también cada vez más de las comunicaciones a través de las redes de datos.

• Si falla el sistema informático y éste no puede recuperarse, la empresa puede desaparecer porque no tiene tiempo de salir nuevamente al mercado con ciertas expectativas de éxito, aunque conserve a todo su personal.

Page 173: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 172

Tiempos de recuperación ante desastres

• Según diversos estudios el período máximo de inactividad que puede soportar una empresa sin poner en peligro su supervivencia es de:

– Sector seguros: 5,6 días– Sector fabricación: 4,9 días– Sector industrial: 4,8 días– Sector distribución: 3,3 días– Sector financiero: 2,0 días

• Si nos han dicho que nuestro banco tiene problemas de seguridad y no podemos mover nuestras cuentas, lo más seguro es que cambiemos de banco al día siguiente.

Page 174: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 173

Pérdidas por no contar con plan estratégico

• Pérdida de clientes.• Pérdida de imagen.• Pérdida de ingresos por beneficios.• Pérdida de ingresos por ventas y cobros.• Pérdida de ingresos por producción.• Pérdida de competitividad en el mercado.• Pérdida de credibilidad en el sector.

Page 175: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 174

Medidas básicas ante un desastre

• Plan de emergencia– Vidas, heridos, activos, evacuación personal.– Inventariar recursos siniestrados.– Evaluar el coste de la inactividad.

• Plan de recuperación– Acciones tendentes a volver a la situación que

existía antes del desastre.

http://recovery-disaster.info/index.htm

Page 176: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 175

Alternativas del plan de continuidad

• Instalaciones alternativas– Oficina de servicios propia– Acuerdo con empresa vendedora de HW y SW– Acuerdo recíproco entre dos o más empresas– Arranque en frío: sala vacía propia– Arranque en caliente: centro equipado– Sistema Up Start: caravana, unidad móvil– Sistema Hot Start: centro gemelo

Algunas soluciones pueden resultar de muy alto costo. Su elección dependerá entonces de las características de nuestra empresa y qué tan crítico debe ser ese plan de continuidad acorde con ello.

Fin del capítulo

Page 177: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 176

Cuestiones y ejercicios (1 de 2)

1. ¿Qué es y qué significa hacer un análisis de riesgos?2. Explique el sentido de las ecuaciones B > P∗L y B ≤ P∗L.3. Tras un estudio, obtenemos B > P∗L, ¿podemos estar totalmente

tranquilos al no utilizar medida alguna de prevención?4. Explique qué significan los factores L y P en la ecuación B > P∗L.5. ¿Cuáles son los pasos a seguir en un análisis de riesgo de acuerdo a

los factores de la ecuación de B > P∗L?6. En algunos sistemas de gestión de información a veces prima más el

elemento confidencialidad, en cambio en otros más el de integridad. Dé algunos ejemplos en que pueda cumplirse al menos en parte este escenario. ¿Qué opina respecto a una transacción electrónica?

7. Comente el modelo de seguridad de Bell Lapadula. ¿Por qué se le llama el modelo de la tranquilidad?

Page 178: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 5: Introducción a la Gestión de la Seguridad Página 177

Cuestiones y ejercicios (2 de 2)8. Ud. es el responsable de seguridad y detecta que un empleado está

robando información confidencial, ¿cómo reaccionaría? 9. ¿Cuáles pueden ser las pérdidas en una empresa si no se cuenta con

un adecuado Plan de Contingencia y sucede un desastre?10. ¿Qué es un Plan de Contingencia y por qué es importante?11. Nuestra empresa está a medias entre el rubro distribución y el de las

finanzas. ¿Resulta estratégico tener aquí un Plan de Contingencia?12. ¿Qué soluciones tenemos para que un banco no se vea afectado por

un desastre y pueda seguir trabajando con sus clientes con un tiempo de recuperación bajo o mínimo? ¿Cómo sería su coste?

13. ¿Se pueden prever situaciones extremas como lo acontecido con las torres gemelas? ¿En que tipo de empresas o instituciones no deben descartarse estos extremos? ¿En una empresa que vende coches?

Page 179: Seguridad Informatica

Capítulo 6Teoría de la Información

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 59 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 180: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 179

Fundamentos de la Seguridad InformáticaLos pilares sobre los que descansa toda la teoría asociada a los criptosistemas son básicamente tres:

• La teoría de la información– Estudio de la cantidad de información contenida en los

mensajes y claves, así como su entropía.• La teoría de los números

– Estudio de las matemáticas discretas y cuerpos finitos que permiten las operaciones de cifrado y descifrado.

• La teoría de la complejidad de los algoritmos– Estudio de la clasificación de los problemas como

computacionalmente tratables o intratables.Estos temas los veremos en éste y en los siguientes capítulos del libro.

Page 181: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 180

Teoría de la información

• Definición de información:– Es el conjunto de datos o mensajes inteligibles

creados con un lenguaje de representación y que debemos proteger ante las amenazas del entorno, durante su transmisión o almacenamiento, usando técnicas criptográficas entre otras herramientas.

– La teoría de la información mide la cantidad de información que contiene un mensaje a través del número medio de bits necesario para codificar todos los posibles mensajes con un codificador óptimo.

¿Qué significa cantidad de

información y codificador

óptimo?

Page 182: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 181

Puede ser numérica, alfabética, simbólica, por lenguaje.Ejemplo: 15/01/05 15-01-05 15-1-05 15/01/2005

01/15/05 01-15-05 1-15-05 01-15-2005 ... - Todos son el día 15 de enero del año 2005.

Vitaminas: B12, C, ...Grupo sanguíneo: A2 Rh+ ...Elementos: Fe, Si, Hg ...Compuestos químicos: H2O, CO2 ...Más común Lenguaje con código: “¿Hace calor allí?”

Veamos la información que contiene el mensaje

¿Hace calor allí?

Veamos la información que contiene el mensaje

¿Hace calor allí?

Representación de la información

Page 183: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 182

La información que tiene un mensaje

Veremos qué información nos entrega un mensaje dependiendo del contexto en que nos encontremos. Esto puede analizarse:a) En función de la extensión del mensaje recibido.b) En función de la utilidad del mensaje recibido.c) En función de la sorpresa del mensaje recibido.d) Dependiendo del entorno de esa sorpresa.e) En función de la probabilidad de recibir un mensaje.

Este último enfoque orientado a la ingeniería y usado porClaude Shannon en su estudio es el que aquí nos interesa.

http://es.wikipedia.org/wiki/Claude_E._Shannon

Page 184: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 183

Cantidad de información (caso 1)

En función de la extensión del mensaje– Ante una pregunta cualquiera, una respuesta concreta y

extensa nos entregará mayor información sobre el tema en particular, y diremos que estamos ante una mayor “cantidad de información”.

• Pregunta: ¿Hace calor allí? (una playa en particular)

– Respuesta 1: Sí, hace mucho calor.– Respuesta 2: Cuando no sopla el viento, el calor allí es

inaguantable pues supera los 42 grados a la sombra.– Respuesta 2: Cuando no sopla el viento, el calor allí es

inaguantable pues supera los 42 grados a la sombra.

¿Dónde hay una mayor cantidad de información?

Page 185: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 184

Cantidad de información (caso 2)

En función de la utilidad del mensaje– Ante una pregunta cualquiera, una respuesta más útil y

clara nos dejará con la sensación de haber recibido una mayor “cantidad de información”.

• Pregunta: ¿Hace calor allí? (una playa en particular)

– Respuesta 1: Sí, sobre 30 grados.– Respuesta 2: Si no hay viento del sur y el mar está en

calma, es normal que la temperatura suba bastante.

– Respuesta 1: Sí, sobre 30 grados.

¿Dónde hay una mayor cantidad de información?

Page 186: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 185

Cantidad de información (caso 3)

En función de la sorpresa del mensaje– Ante una pregunta cualquiera, una respuesta más

inesperada y sorprendente, nos dará la sensación de contener una mayor “cantidad de información”.

• Pregunta: ¿Hace calor allí? (ahora Finlandia en otoño)

– Respuesta 1: Sí, muchísimo. Es insoportable.– Respuesta 2: En esta época del año, la temperatura es

más suave y el tiempo muy agradable.

– Respuesta 1: Sí, muchísimo. Es insoportable. ☺

¿Dónde hay una mayor cantidad de información?

Page 187: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 186

Cantidad de información (caso 4)

Dependencia del entorno (sorpresa)– Ante una pregunta cualquiera, una respuesta inesperada

y sorprendente en el entorno, nos dará la sensación de contener una mayor “cantidad de información”.

• Pregunta: ¿Hace calor allí? (ahora las mismas respuestas hablan de la temperatura en un horno)

– Respuesta 1: Sí, muchísimo. Es insoportable.– Respuesta 2: En esta época del año, la temperatura es

más suave y el tiempo muy agradable.– Respuesta 2: En esta época del año, la temperatura es

más suave y el tiempo muy agradable. ?

¿Dónde hay una mayor cantidad de información?

Page 188: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 187

Cantidad de información (caso 5)

En función de la probabilidad de recibir un mensaje– Este enfoque probabilístico es el que nos interesará en

cuanto a la definición de Cantidad de Información.

¿Dónde le da alegría a su cuerpo Macarena?– Respuesta 1: En un país de Europa.– Respuesta 2: En una ciudad de España.– Respuesta 3: En los números 1 y 3 de la calle Sierpes en

Sevilla, España.– Respuesta 3: En los números 1 y 3 de la calle Sierpes en

Sevilla, España... La Campana, ¡una excelente bombonería!

¿Por qué?

¿Dónde hay una mayor cantidad de información?

Page 189: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 188

Incertidumbre e informaciónAnte varios mensajes posibles, en principio todos equiprobables, aquel que tenga una menor probabilidad de aparición será el que contenga una mayor cantidad de información.

• En el ejemplo anterior:– Al ser más extenso el número de calles y sus números en una

ciudad que el número de ciudades en España, y esto último mayor que los países en Europa, la última respuesta tendrá una mayor incertidumbre.

– Si suponemos todos los estados equiprobables, entonces la cantidad de información de la respuesta tercera será mayor que las demás.

Las siguientes diapositivas resumen el estudio de Claude Shannon sobre la entropía en su artículo “A Mathematical Theory of Communication” que puede descargarlo en formato pdf desde esta dirección:

http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html

Page 190: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 189

Concepto de variable aleatoria

• Sea X una variable aleatoria con n estados posibles con X = xi una ocurrencia iésima:

X = {x1, x2, x3, ..., xn-1, xn}p1 = p(x1), p2 = p(x2), ..., pn = p(xn)

Como:0 ≤ pi ≤ 1 para i = 1, 2, ..., n

Entonces: n

Σ pi = 1i = 1

La probabilidad de que ocurra p1 o p2 o p3, etc. será siempre la unidad porque seguro será uno de ellos.

Page 191: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 190

Definición de cantidad de información

• Definiremos ci a la cantidad de información del estado i, como el logaritmo en base dos de la probabilidad de que ocurra el estado iésimo.

ci = - log2 (pi )

- Logaritmo: p(xi) = 1 ⇒ no hay incertidumbre: ci = 0p(xi) = 0 ⇒ máxima incertidumbre: ci →∞

- Signo: p(xi) < 1 ⇒ log p(xi) será negativo- Base 2: Un fenómeno binario ⇒ dos estados (bit)

1

ci

pi

0

0

Page 192: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 191

Grado de indeterminación

Combinación 1 Combinación 5Combinación 2 Combinación 6Combinación 3 Combinación 7Combinación 4 Combinación 8

Grado de indeterminación previoGrado de indeterminación posteriorci =

En una bolsa hay dos papeles con círculos, dos con cuadrados y dos con triángulos: negros o blancos. Sacamos a ciegas tres papeles cualesquiera...

¿Qué cantidad de información tiene cada uno de los estados?

Si hay equiprobabilidad entonces p(xi) = 1/8Sea ésta será la combinación elegida...

Page 193: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 192

La incertidumbre del ejemplo del mago

Combinación 1 Combinación 5Combinación 2 Combinación 6Combinación 3 Combinación 7Combinación 4 Combinación 8

Como p(xi) = 1/8 entoncesIncertidumbre inicial Ii = 8Daremos algunas pistas :

– Las figuras no son del mismo color: Ii baja de 8 a 6 al descartarse las combinaciones 1 y 8.

– El círculo es blanco: Ii baja de 6 a 3 (descartamos 5, 6 y 7).– Hay dos figuras blancas: Ii baja de 3 a 2 (descartamos 4).– El cuadrado es negro: Ii baja de 2 a 1 (descartamos 2.)

Veamos esto ahora matemáticamente ...

Se acaba la incertidumbre pues la solución es la combinación 3.

Page 194: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 193

Solución matemática al ejemplo del mago

– Las figuras no son del mismo color. Ii baja de 8 a 6:ci1 = log (8/6) = log 8 - log 6

– El círculo es blanco. Ii baja de 6 a 3:ci2 = log (6/3) = log 6 - log 3

– Hay dos figuras blancas. Ii baja de 3 a 2:ci3 = log (3/2) = log 3 - log 2

– El cuadrado es negro. Ii baja de 2 a 1:ci4 = log (2/1) = log 2 - log 1

Todas las magnitudes se pueden sumar como escalares:

ci = ci1 + ci2 + ci3 + ci4 = log 8 - log 1 = log 8

Page 195: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 194

Base del logaritmoSean Ii la indeterminación inicial

If la indeterminación finalci = log (Ii / If) = log Ii - log If

La cantidad de información tiene como unidad de medida la de un fenómeno de sólo dos estados, un fenómeno binario. Luego:

ci = logb (2/1) = logb 2 - logb 1– Si logb 2 debe ser igual a 1 entonces la base b = 2.– Precisamente a esta unidad se le llama bit (binary digit)– Ejemplo anterior: ci = log2 8 = 3. Es decir, pasamos de la

incertidumbre total a la certeza con sólo 3 preguntas.

Page 196: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 195

Con sólo tres preguntas inteligentes...

Combinación 1 Combinación 5Combinación 2 Combinación 6Combinación 3 Combinación 7Combinación 4 Combinación 8

Con sólo tres preguntas “más o menos inteligentes” podemos pasar de la incertidumbre total a la certeza:

Pregunta 1: ¿Está entre la opción 1 y la 4? ⇒ Sí

Pregunta 2: ¿Está entre la opción 1 y la 2? ⇒ No

Pregunta 3: ¿Es la opción 4? ⇒ No ¡Se acaba la indeterminación!

Page 197: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 196

Entropía de los mensajes

• Si un fenómeno tiene un grado de indeterminación k y sus estados son equiprobables, la probabilidad p de que se dé uno de esos estados será 1/k. Luego:

ci = log2 (k/1) = log2 [1/(1/k)] = - log2 p• Si ahora cada uno de estos estados tiene una

probabilidad distinta pi, la entropía H será igual a la suma ponderada de la cantidad de información:

H = - p1 log2 p1 - p2 log2 p2 - ... - pk log2 pkk

H = - Σ pi log2 pii = 1

Nota: aunque la ecuación parece bastante lógica, no es inmediata.

http://en.wikipedia.org/wiki/Information_entropy

Page 198: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 197

Definición de entropía

• La entropía de un mensaje X, que se representa por H(X), es el valor medio ponderado de la cantidad de información de los diversos estados del mensaje.

• Es una medida de la incertidumbre media acerca de una variable aleatoria y el número de bits de información.

kH(X) = - Σ p(xi) log2 p(xi)

i = 1

Después del ejemplo de los papeles, podríamos aceptar el concepto de incertidumbre en H. Lo que ahora nos llama la atención es lo del número de bits de información.

Esto lo veremos más adelante...

Page 199: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 198

Propiedades de la entropíaa) La entropía es no negativa y se anula si y sólo si un estado de la

variable es igual a 1 y el resto 0. Esta demostración es sencilla.b) La entropía será máxima, hay mayor incertidumbre del mensaje,

cuando exista una equiprobabilidad en todos los valores de la variable X. La demostración empírica es muy fácil; no obstante la demostración matemática de este máximo no es directa. El valor máximo de H(X) para una variable de n estados será log2 n.Si hay n estados equiprobables, entonces pi = 1/n.

Luego:

H(X) = - Σ pi log2 pi = - n(1/n) log2 (1/n) = - (log2 1 - log2 n)i

H(X)máx = log2 n

Page 200: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 199

Concepto codificador óptimoNos falta encontrar el segundo término pendiente en la definición de cantidad de información: codificador óptimo.Introduciendo el signo negativo dentro del logaritmo en la expresión de la entropía, ésta nos quedará como:

H(X) = Σ p(x) log2 [1/p(x)]i

Veamos un ejemplo de codificación

La expresión log2 [1/p(x)] representará el número necesario de bits para codificar el mensaje X en un codificador óptimo.

Codificador óptimo es aquel que para codificar unmensaje X usa el menor número posible de bits.

Page 201: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 200

Codificación con el método de Huffman

M = 1 “ ” = 01 A = 000 I = 0010 E = 0011

Letra Frecuencia Ocurrencias →

E 1 vez 3 → 6 → 9 → 15

I 2 veces

A 3 veces I E A “ “ M

“ “ 3 veces I E A “ “

M 6 veces I E A

I ECódigo óptimo:

Mensaje: MI MAMA ME MIMA

Mensaje: 1 0010 01 1 000 1 000 01 1 0011 01 1 0010 1 000 (33 bits)Pregunta: ¿Cuántos bits necesitaría para codificarlo usando ahora código ASCII?

Creación del árbol defrecuencias observadas

http://articulos.conclase.net/compresion/huffman.html

Page 202: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 201

El número necesario de bits y la entropíaPara que dé un valor exacto, vamos a calcular el número de bits óptimo de codificación para el mensaje M = LELA ELLA (*) de 8 caracteres :Solución: p(L) = 0,5; p(E) = 0,25; p(A) = 0,25; y obviamente Σ p(L, E, A) = 1,0.

Para codificar L necesitaremos 1 bit: log2 [1/ P(L)] = log2 2 = 1Para codificar E necesitaremos 2 bits: log2 [1/ P(E)] = log2 4 = 2Para codificar A necesitaremos 2 bits: log2 [1/ P(A)] = log2 4 = 2

Luego, si L se codifica como 0, E como 10 y A como 11, el mensaje M se codificará como: 0 10 0 11 10 0 0 11, es decir se transmiten 12 bits. Si calcula la entropía de M obtendrá H(M) = 1,5 y al mismo valor se llega con el concepto de número medio de bits: para codificar un mensaje M de 8 elementos, hemos usado 12 bits. Luego 12/8 = 1,5 bits por elemento.(*) Mis disculpas este mensaje poco afortunado, pero era difícil encontrar uno con estas características y que tuviese algo de sentido... aunque no sea cierto ☺.

Page 203: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 202

Entropía condicional: equivocación de X

Si existe una segunda variable Y que influya sobre X, esto nos entregará importante información adicional.

H(X/Y) = - Σ p(x,y) log2 p(x,y)x,y

Donde p(x,y) = p(y)p(x/y) y la relación p(x/y) es la probabilidad de que se obtenga un estado Xconocido el valor de Y.

El resultado más interesante es que...

La entropía se reduce: hay más orden y menos incertidumbre.

La entropía se reduce: hay más orden y menos incertidumbre.

Luego:

H(X/Y) = - Σ p(y) Σ p(x/y) log2 p(x/y)y x

Page 204: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 203

Ejemplo de entropía condicional

Sea X = {x1, x2, x3, x4} con p(xi) = 0,25Sea ahora Y = {y1, y2, y3} con p(y1) = 0,5; p(y2) = 0,25; p(y3) = 0,25Luego H(X) = 4 log2 4 = 2,0 y H(Y) = 2 log2 4 + log2 2 = 1,5Suponga además que hay las siguientes dependencias entre X e Y: Si Y = y1 ⇒ X = x1 o x2 o x3 o x4 (cualquiera con igual probabilidad)Si Y = y2 ⇒ X = x2 o x3 (cualquiera con igual probabilidad)Si Y = y3 ⇒ X = x3 o x4 (cualquiera con igual probabilidad)

y=3 x=4Como H(X/Y) = - Σ p(y) Σ p(x/y) log2 p(x/y)y=1 x=1

H(X/Y) = - p(y1)[p(x1/y1)log2p(x1/y1) + p(x2/y1)log2p(x2/y1) + p(x3/y1)log2p(x3/y1) + p(x4/y1)log2p(x4/y1)] - p(y2)[p(x1/y2)log2p(x1/y2) + p(x2/y2)log2p(x2/y2) + p(x3/y2)log2p(x3/y2) + p(x4/y2)log2p(x4/y2)]- p(y3)[p(x1/y3)log2p(x1/y3) + p(x2/y3)log2p(x2/y3) + p(x3/y3)log2p(x3/y3) + p(x4/y3)log2p(x4/y3)]

Calculando, se obtiene H(X/Y) = 1,0 + 0,25 + 0,25 = 1,5. La entropía de X ha bajado en medio bit por el conocimiento de su relación con Y.

Page 205: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 204

Importancia de la entropía condicional

Equivocación de la clave k ¿Cuál es la probabilidad de que a un criptograma C le corresponda una cifra con una clave k?

H(K/C) = - Σ p(c) Σ p(k/c) log2 p(k/c)c k

Servirá como un parámetro para la evaluación de la fortaleza de un criptosistema según equivocación de clave y mensaje.

Equivocación del mensaje M ¿Cuál es la probabilidad de que a un criptograma C le corresponda un mensaje en claro M?

H(M/C) = - Σ p(c) Σ p(m/c) log2 p(m/c)c m

Page 206: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 205

La ratio r del lenguaje

• Ratio r– Es el número de “bits de información” en cada carácter

para mensajes con una longitud igual a N caracteres. Luego, según la definición de entropía, se tiene:

r = H(X)/N (bits/letra)– Si codificáramos un mensaje letra a letra suponiendo

además equiprobabilidad entre las letras, se obtiene la denominada ratio absoluta del lenguaje, R:

R = H(X) castellano = 27 letras

Rcastellano = log2 n = log2 27 = 4,75 (bits/letra)

Page 207: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 206

Ratio verdadera del lenguaje

• Ratio verdadera- Como las letras que aparecen en un texto no tienen

igual probabilidad, su frecuencia de aparición es distinta, los lenguajes está muy estructurados, hay bloques de dos palabras (digramas) característicos, trigramas, poligramas, etc., la ratio baja mucho...

1,2 < r < 1,5- A este valor se llega codificando los mensajes con

monogramas, digramas, trigramas, etc., según el estudio hecho por Shannon.

Page 208: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 207

Significado de la ratio del lenguaje

¿Qué significa esto?– Si un alfabeto consta de L elementos existirán 2R∗N

mensajes posibles de longitud N, la entropía máxima será H(X)máx = log2 L, y sólo habrá 2r∗N mensajes que tengan sentido.

Muy importante: No significa que podamos codificar todos los mensajes de 27 caracteres con 2 bits (esto sería imposible ☺). Sólo significa que la informaciónque contiene cada letra es tan sólo de 1,5 bits.

Veamos un ejemplo

Page 209: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 208

Ejemplo de la ratio del lenguaje

Un subalfabeto del castellano módulo 27 consta de 5 caracteres: A, E, O, S, y T, todos ellos equiprobables. Podemos aceptarlo como representativo del lenguaje; es más o menos cierto. De acuerdo, estoy jugando con algo de trampa pero es para que el ejemplo entre justo en una diapositiva ☺. Pregunta: ¿Cuántos mensaje de longitud 4 existen y cuántos con sentido?Solución:R = log2 5 = 2,3219. Existirán así 2R∗4 = 22,3219∗4 = 625 = 54 mensajes.Como 1,2 < r < 1,5 entonces cabe esperar x mensajes con sentido de longitud 4 del orden: 21,2∗4 < x < 21,5∗4 es decir 27 < x < 64.Buscando en un diccionario (puede hacerlo) encontramos las 45 palabras que se indican, y que casualmente es el valor medio (27 + 64)/2 = 45:aeta, asas, asea, asee, aseo, ases, asta, atea, atas, ates, ateo, atoa, atoe, atoo, osas, oses, osos, oste, otea, otee, oteo, easo, esas, eses, esos, esta, este esto, etas, tasa, tase, taso, teas, tesa, tese, teso, teta, seas, seso, seta, seto, sosa, sota, sote, soto.

Page 210: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 209

Redundancia del lenguaje• La redundancia D del lenguaje será la diferencia entre la ratio

absoluta y la ratio real:D = R - r

3,25 < D < 3,55¿Qué significa esto?– El número de bits extras (bits redundantes) necesarios para

codificar un mensaje suponiendo un alfabeto de 27 caracteres (codificación con 5 bits puesto que 25 = 32 y 24 = 16) será aproximadamente igual a 3,5.

– D/R será un factor proporcional, luego:68,42 < % Red. Lenguaje (D/R) < 74,73

¿No le resulta familiar este porcentaje de reducción en los archivos zip?

http://es.wikipedia.org/wiki/Compresi%C3%B3n_de_datos

Page 211: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 210

¿Es nuestro lenguaje redundante?

– El estudio de Shannon demuestra que es la estructura del lenguaje la que produce esta redundancia:

• Existe diferencias en la frecuencia de aparición de cada una de las letras de un texto, entregando una distribución típica, como puede ver en las tablas del capítulo 21 de este libro.

• Existe gran cantidad de digramas comunes (en, es, ...), también muchos trigramas (ado, ida, ...), tetragramas (ando, lado, ...), algunos pentagramas (mente, ...), etc.

• Existe una estructuración típica de frases y oraciones con sentido en nuestro lenguaje.

Esto dará pistas al criptoanalista para atacar un sistema. Y nuestra misión es crear algoritmos que sean seguros y eviten estos ataques.

Page 212: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 211

Un ejemplo de redundancia (parte 1)

Todos los lenguajes serán redundantes. Esto quiere decir que la misma cantidad de información se puede

entregar con menos símbolos o bits.Sea el siguiente mensaje M = HBNVZNCRC1a ayuda:

“En el mensaje original se han quitado las vocales”.Esto nos permite suponer que entre consonantes habrá 0, 1, 2, 3 y hasta 4 vocales, según las reglas del lenguaje...

M = __H__B__N__V__Z__N__C__R__C__

Page 213: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 212

Un ejemplo de redundancia (parte 2)

Teníamos el mensaje M = HBNVZNCRC y además:M = __H__B__N__V__Z__N__C__R__C__2a ayuda:“El mensaje original contiene cinco palabras”.Esto nos permite limitar el número de mensajes posibles que tengan sentido. En estas condiciones podrían existir muchos mensajes de 5 palabras, aunque no cumpliesen de forma lógica con las reglas del lenguaje. Un ejemplo válido pero sin sentido lógico podría ser...

M = AHÍ BUENO AVE ZONA CERCA

Page 214: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 213

Un ejemplo de redundancia (parte 3)

Teníamos el mensaje M = HBNVZNCRC y ademásM = __H__B__N__V__Z__N__C__R__C__

3a ayuda y siguientes:a) “El mensaje original tiene que ver con un circo”.b) “Corresponde al estribillo de una canción infantil”.c) “Los espacios están en: M = HB N VZ N CRC”.

Seguro que habrá adivinado ya el mensaje....

M = AHÍ BUENO AVE ZONA CERCA

M = HABÍA UNA VEZ UN CIRCO

Page 215: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 214

Redundancia y entropía condicional

El ejemplo anterior, además de demostrar que todos los lenguajes son redundantes, es un claro exponente de lo que se entiende en la práctica por entropía condicional.

Cada vez que vamos dando nuevas pistas, disminuye la incertidumbre del mensaje hasta que ésta se anula y por lo tanto la entropía es igual a 0 ya que existe un único mensaje posible con probabilidad igual a la unidad.

Algo parecido ocurre cuando resolvemos un crucigrama y lo anteriormente resuelto nos sirve como pistas para descubrir palabras nuevas. Mientras más palabras tengamos, más fácil se hace avanzar en su resolución. En algunos casos, cuando se ataque una cifra, el criptoanalista usará métodos similares.

Page 216: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 215

Secreto de un sistema criptográficoShannon midió el secreto de un criptosistema como la incertidumbre del mensaje en claro conocido el criptograma recibido:

Mensajes M = {M1, M2, ..., M3} Σ p(M) = 1M

Criptogramas C = {C1, C2, ..., C3} Σ p(C) = 1C

Claves K = {K1, K2, ..., K3} Σ p(K) = 1K

¿Cuando tendrá nuestro sistema un secreto perfecto?

Page 217: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 216

Definiciones previas secreto criptográfico

• p(M): Probabilidad de enviar un mensaje M. Si hay n mensajes Mi equiprobables, p(Mi) = 1/n.

• p(C): Probabilidad de recibir un criptograma C. Si cada uno de los n criptogramas recibidos Ci es equiprobable, p(Ci) = 1/n.

• pM(C): Probabilidad de que, a partir de un texto en claro Mi, se obtenga un criptograma Ci.

• pC(M): Probabilidad de que, una vez recibido un criptograma Ci, éste provenga de un texto claro Mi.

Page 218: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 217

Secreto criptográfico perfecto (1)Un sistema tiene secreto perfecto si el conocimiento del texto cifrado no nos proporciona ninguna información acerca del mensaje. Es decir, cuando la probabilidad de acierto al recibir el elemento i +1 es la misma que en el estado i.

Secreto perfecto ⇒ p(M) = pC(M)

La probabilidad p de enviar un mensaje M con texto en claro p(M) o probabilidad a priori será igual a la probabilidad p de que, conocido un criptograma C, éste se corresponda a un mensaje M cifrado con la clave K. Esta última o probabilidad a posteriori es pC(M).

Page 219: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 218

Secreto criptográfico perfecto (2)

La probabilidad p de recibir un texto cifrado C al cifrar un mensaje M usando una clave K será pM(C). Luego, M debe haberse cifrado con alguna clave K:

pM(C) = Σ p(K) donde EK(M) = CK

∃ kj / Ekj(Mi) = Ci

En el fondo esto viene a significar que para lograr un secreto perfecto, el espacio de claves debe ser al menos de igual tamaño que el espacio de mensajes.

Page 220: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 219

Secreto criptográfico perfecto (3)

La condición necesaria y suficiente del secreto perfecto es que para cualquier valor de M se cumpla que la probabilidad de recibir C, resultado de la cifra de un mensaje M con una clave K, sea la misma que recibir el criptograma C, resultado de la cifra de otro mensaje M’distinto, cifrado con otra clave.

pM(C) = p(C)para todo valor de M Veamos algunos ejemplos

Page 221: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 220

Cifrado con secreto perfectoSea el siguiente escenario:

Espacio de Mensajes Espacio de Claves Espacio de Cifrados

M1 k1 C1k3 k2 k2

M2 k3 C2 k1 k3 k1

M3 C3 k2

p(M) = 1/3 para todo M p(C) = 1/3

pM(C) =1/3 pC(M) = 1/3

Page 222: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 221

Cifrado sin secreto perfecto (1)Sea ahora el siguiente escenario:

¿Probabilidad de que un mensaje Mi se convierta en un criptograma Ci: [PMi(Ci)] y que un criptograma Ci sea el resultado de la cifra de un mensaje Mi: [PCi(Mi) ]?

Espacio de Mensajes Espacio de Claves Espacio de Cifrados k1 M1 C1 k3 k2 k2 M2 k3 C2 k1 k3 k1 M3 k2 C3 C4

p(M1) = 1/3 p(C1) = 3/9

p(M2) = 1/3

p(M3) = 1/3

p(C2) = 2/9

p(C3) = 2/9

p(C4) = 2/9Algo más

Page 223: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 222

Cifrado sin secreto perfecto (2)Esquema anterior:

pC1(M1) = 1/3 pC1(M2) = 1/3 pC1(M3) = 1/3

pC2(M1) = 1/2 pC2(M2) = 1/2 pC2(M3) = 0

pC3(M1) = 1/2 pC3(M2) = 0 pC3(M3) = 1/2

pC4(M1) = 0 pC4(M2) = 1/2 pC4(M3) = 1/2

k1

M 1 C 1 k3 k2 k2

M 2 k3 C 2 K 1 K 3 k 1 M 3 k 2 C 3

C 4

pM1(C1) = 1/3 pM1(C2) = 1/3 pM1(C3) = 1/3 pM1(C4) = 0

pM2(C1) = 1/3 pM2(C2) = 1/3 pM2(C3) = 0 pM2(C4) = 1/3

pM3(C1) = 1/3 pM3(C2) = 0 pM3(C3) = 1/3 pM3(C4) = 1/3

Page 224: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 223

La distancia de unicidad

• Se entenderá por Distancia de Unicidad al bloque N de texto cifrado o criptograma mínimo necesario para que se pueda intentar con ciertas expectativas de éxito un ataque en búsqueda de la clave usada para cifrar.

• Este valor se obtiene cuando la equivocación de la clave HC(K) se acerca a cero o tiende a anularse.

• A medida que se tenga un criptograma más largo, y por tanto más información, se supone que la tarea de ataque del criptoanalista se va facilitando.

• Se busca el tamaño N de criptograma que permita esperar que la solución de K sea única. Suponiendo un cifrador aleatorio, llegamos al modelo de la diapositiva siguiente.

http://www.cs.ucla.edu/~jkong/research/security/shannon1949/node14.html

Page 225: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 224

Parámetros del modelo aleatorio (1)

• Existirán 2RN mensajes posibles de longitud N.• Existirán 2rN mensajes de longitud N con sentido.• El espacio de mensajes de longitud N se dividirá en:

– Espacio de los mensajes con sentido: MCS = 2rN.– Espacio de los mensajes sin sentido: MSS = 2RN - 2rN.

• Los 2rN mensajes con sentido serán equiprobables siendo su valor p(MCS) = 1/2rN = 2-rN.

• El resto de mensajes (2RN - 2rN) correspondientes a aquellos sin sentido tendrán una probabilidad nula p(MSS) = 0, ya que nunca serán generados.

Page 226: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 225

Parámetros del modelo aleatorio (2)

• Existirán 2H(K) claves equiprobables.• En donde H(K) es la entropía de la clave.• Con p(K) = 1/2H(K) = 2-H(K).• Con estas claves se cifrarán todos los mensajes con

sentido dando lugar a 2RN textos cifrados posibles de longitud N.

• A diferencia de los mensajes, como es lógico los criptogramas obtenidos serán todos equiprobables.

En la siguiente diapositiva se muestra un esquema de este modelo.

Page 227: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 226

Esquema para mensajes de longitud N

Mensajes Sin Sentido

Mensajes Con Sentido

2rN

2RN - 2rN

Operaciones de cifra usando una

clave

CriptogramasMensajes

M1

M2

M3C1

C3

C2

2RN 2RN

Veamos ahora los escenarios del modelo de cifra para sólo dos claves k1 y k2.

Page 228: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 227

Escenarios en el cifrador aleatorio Espacio de Mensajes Espacio de Claves Espacio de Cifrados

k1 M1 C1

k2

M2 k1 C2 k2 k2 M3 C3 k1

k1 k2 M4 C4

k1 M5 C5 k2

M6 k1 C6

k2 M7 C7

M8 C8

M9 C9

M10 C10

Verdaderas ⇒ SV

SV: Un criptograma está asociado sólo a un texto en claro con sentido y cifrado con una única clave ki.

SF: Cualquier otra solución de cifra distinta a la anterior.

SV: C3 = Ek1(M5) C4 = Ek1(M2)

C6 = Ek2(M1) C7 = Ek1(M3)

C9 = Ek1(M6) C10 = Ek2(M6)

SF: C2 = Ek1(M4) C2 = Ek2(M4)

C5 = Ek2(M2) C5 = Ek2(M5)

C1 = Ek1(M1) C1 = Ek2(M3)

SF C2: Condición obviaSF C5: Condición débilSF C1: Condición fuerte

Falsas ⇒ SF

Soluciones:

Page 229: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 228

Cálculo de la distancia de unicidad (1)

• Para cada solución correcta de un texto M cifrado con una clave k del espacio 2H(K), existirán otras (2H(K)-1) claves con la misma probabilidad de entregar una solución falta SF.Sea q la probabilidad de obtener un mensaje con sentido:q = 2rN / 2RN = 2(r - R)N = 2-DN Luego:SF = (2H(K)-1) q = (2H(K)-1) 2-DN = 2H(K) - DN - 2-DN

SF ≈ 2H(K) - DN log2 SF = H(K) - DN

Page 230: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 229

Cálculo de la distancia de unicidad (2)

La solución SF = 0 es imposible porque sólo se llega a ella de forma asintótica con un valor de N infinito como se muestra en la diapositiva siguiente.Se acepta entonces que haya como máximo una sola solución falsa, de ahí su nombre de unicidad, luego:

SF = 2H(K) – DN Si hacemos SF = 1 ⇒ H(K) - DN = 0Por lo tanto: N = H(K) / D

El valor N será el número mínimo de bytes o caracteres que deberá tener el criptograma C para intentar un ataque por estadísticas del lenguaje. Por lo general el valor real necesario de N será unas 10 veces superior.

Page 231: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 230

Cantidad de trabajo Q en un criptoanálisisCantidad de Trabajo Q

H(M/C) n N Cantidad de caracteres

(A)(B)

(C)

(A) Inicialmente hay que hacer un arduo trabajo para obtener algo coherente. Nos encontraremos con muchas soluciones falsas.(B) Cuando se tiene una cantidad “adecuada” de texto cifrado, la cantidad de trabajo disminuye. Se descartan algunas soluciones.(C) Cuando se anula la equivocación de la clave, H(M/C) = 0, disminuyen las soluciones falsas y la solución tiende a ser única.

(D)Solución única

Page 232: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 231

Algunos ejemplos de distancia de unicidad– Para el cifrador del César módulo 27 en el que “la clave” es b, todos

los posibles desplazamientos de caracteres, 1 ≤ b ≤ 26, su entropía H(X) = log2 26 = 4,7 bits por lo que N = 4,7/3,4 = 1,4 caracteres.

– Para el mismo cifrador del César pero con clave, si el alfabeto tiene n caracteres, existirán n! claves posibles. En este caso la entropía de la clave puede aproximarse como H(X) = log2 27! ≈ 27∗log2 (27/e), por lo que N = 27∗log2 (27/2,72)/3,4 = 27,4 caracteres.

– En el sistema DES la clave verdadera es de 56 bits por lo que suentropía H(X) = 56. Si el mensaje sólo contiene letras mayúsculas (27 elementos) podríamos decir que N = 56/3,4 = 16,5 caracteres.

– Nota: aunque el valor de N sea ahora más bajo no quiere decir en absoluto que el DES sea menos seguro que el cifrador del César con clave. Este último se puede atacar fácilmente con estadísticas del lenguaje muy elementales y el DES no. Además, recuerde que se debe contar con un criptograma varias veces mayor que el valor de N si desea que su criptoanálisis tenga alguna posibilidad de éxito.

Page 233: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 232

El uso de técnicas de difusión

Para lograr un mayor secreto en las operaciones de cifra, Shannon propuso usar dos técnicas: difusión y confusión.Difusión: es la transformación sobre el texto en claro con el objeto de dispersar las propiedades estadísticas del lenguaje sobre todo el criptograma. Se logra con transposiciones.

TRANSPOSICIONES

La transposición consiste básicamente en una permutación, es decir, cambiar los caracteres de lugar según una regla, una función, etc. Por ejemplo el carácter primero se posiciona en el lugar cuarto, el segundo en el lugar tercero, etc.

Page 234: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 233

El uso de técnicas de confusiónConfusión: transformación sobre el texto en claro con objeto de mezclar los elementos de éste, aumentando la complejidad de la dependencia funcional entre la clave y el criptograma. Se obtiene a través de sustituciones.

SUSTITUCIONES

La sustitución consiste básicamente modificar la información, es decir, sustituir un carácter por otro de acuerdo a una regla,una función, etc. Por ejemplo cambiar la letra A por la letra M, la letra B por la letra X , etc. Ambas técnicas se usan en sistemas clásicos orientados a caracteres y también en los modernos pero en este caso operando sobre bits.

Fin del capítulo

Page 235: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 234

Cuestiones y ejercicios (1 de 2)

1. Al despertar ponemos la radio y escuchamos noticias que no nos llaman la atención. ¿Por qué decimos que no había información?

2. Justifique la definición logarítmica de cantidad de información, es decir la razón de que ci = - log (pi).

3. ¿Por qué usamos la base 2 en el logaritmo que define ci?4. ¿Cuál es el número mínimo -e inteligente- de preguntas que hay que

hacer para pasar de la incertidumbre a la certeza en un sistema de n estados equiprobables? ¿Y si ahora no son equiprobables?

5. ¿Por qué la entropía es no nula y se anula si y sólo si uno de los estados de la variable es igual a la unidad?

6. Codificamos en binario un sistema con 256 estados equiprobables.Si no usamos un codificador óptimo, ¿cuántos bits son necesarios? Mediante un codificador óptimo, ¿usaremos más o menos bits?

Page 236: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 235

Cuestiones y ejercicios (2 de 2)

7. ¿Qué representa la expresión log2 [1/p(x)] en la entropía H(X)? Si p(x1)=0,6; p(x2)=0,3; p(x3)=0,1 calcule log2 [1/p(x)]. ¿Qué opina?

8. Definimos un alfabeto con 71 elementos (mayúsculas y minúsculas,minúsculas acentuadas, dígitos, punto, coma). Si estos elementosson equiprobables, ¿cuál es la ratio absoluta de este alfabeto?

9. ¿La ratio verdadera es mayor o menor que la absoluta? ¿Por qué?10. Un alfabeto consta de 8 elementos equiprobables. ¿Cuántos posibles

mensajes de tamaño 4 existen? De éstos, ¿cuántos mensajes podrían tener sentido si esos 8 elementos representan al idioma castellano?

11. ¿Cuándo decimos que un sistema tiene secreto perfecto? En un sistema real, ¿es eso posible? Piense en algún ejemplo y coméntelo.

12. ¿Por qué se dice que hay que minimizar las soluciones falsas SF en el modelo aleatorio para romper la clave? ¿Es la clave k única?

Page 237: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 6: Teoría de la Información Página 236

Prácticas del tema 6 (1/1)Software CripClas: http://www.criptored.upm.es/software/sw_m001c.htm

1. Encuentre la entropía del mensaje M = MI MAMA ME MIMA, compárela con el resultado de la diapositiva correspondiente, 33 bits para codificar 15 caracteres: 33/15 = 2,2. ¿Por qué no coinciden? Repita este cálculo ahora con el mensaje M = RARORARO y saque conclusiones.

2. Encuentre la entropía de M = ABCDEFGHIJKLMNÑOPQRSTUVWXYZes decir el alfabeto en castellano módulo 27, y compárela con el valor que aparece en la dispositiva correspondiente.

3. ¿Cómo son las entropías de M = TE AMO y M = Te amo? ¿Por qué?4. Copie en el portapapeles todas estas preguntas, guarde el archivo con el

nombre prtema6.txt y encuentre su entropía. Encuentre luego la entropía de otros archivos txt, grandes y pequeños, y saque conclusiones.

5. Encuentre la frecuencia de monogramas del archivo anterior, prtema6.txt. Compárela en la misma pantalla con la tabla de frecuencias estándar.

Page 238: Seguridad Informatica

Capítulo 7Teoría de los Números

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 75 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 239: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 238

Matemática discreta y congruencia

• La congruencia es la base en la que se sustentan las operaciones de cifra en matemática discreta.

• Concepto de congruencia:– Sean dos números enteros a y b: se dice que a es

congruente con b en el módulo o cuerpo n (Zn) si y sólo si existe algún entero k que divide de forma exacta la diferencia (a - b) .

– Esto podemos expresarlo así:a - b = k ∗ n

a ≡ n ba ≡ b mod n

Desde esta página Web podrá realizar diversos cálculos en matemática discreta:

http://www.numbertheory.org/php/php.html

Page 240: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 239

Operaciones de congruencia en Zn

¿Es 18 congruente con 3 módulo 5? ¿18 ≡ 3 mod 5?

Sí, porque: 18-3 = 15 = k∗5 con k = 3

¿Cómo se usará esto en criptografía? Esta operación en Zn se expresará así:

18 mod 5 = 3

El valor 3 será el resto o residuo.

El conjunto de números que forman los restos dentro de un cuerpo Zn será muy importante en criptografía.

Page 241: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 240

Propiedades de la congruencia en Zn

• Propiedad Reflexiva:a ≡ a mod n ∀ a ∈ Z

• Propiedad Simétrica:a ≡ b mod n ⇒ b ≡ a mod n ∀ a,b ∈ Z

• Propiedad Transitiva:Si a ≡ b mod n y b ≡ c mod n

⇒ a ≡ c mod n ∀ a,b,c ∈ Z

Page 242: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 241

Propiedades de las operaciones en Zn (1)

• Propiedad Asociativa:a + (b + c) mod n ≡ (a + b) + c mod n

• Propiedad Conmutativa:a + b mod n ≡ b + a mod na ∗ b mod n ≡ b ∗ a mod n

• Propiedad Distributiva:a ∗ (b+c) mod n ≡ ((a ∗ b) + (a ∗ c)) mod n

Normalmente usaremos el signo = en vez de ≡ que

denotaba congruencia. Esto es algo propio de los

Campos de Galois que veremos más adelante.

a ∗ (b+c) mod n = ((a ∗ b) + (a ∗ c)) mod n

Page 243: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 242

• Existencia de Identidad:a + 0 mod n = 0 + a mod n = a mod n = aa ∗ 1 mod n = 1 ∗ a mod n = a mod n = a

• Existencia de Inversos:a + (-a) mod n = 0a ∗ (a-1) mod n = 1 (si a ≠ 0)

• Reducibilidad:(a + b) mod n = [(a mod n) + (b mod n)] mod n

(a ∗ b) mod n = [(a mod n) ∗ (b mod n)] mod n

No siempre existe

Ambos serán muy importantes en criptografía

Propiedades de las operaciones en Zn (2)

Page 244: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 243

Conjunto completo de restos CCR

Para cualquier entero positivo n, el conjunto completo de restos será CCR = {0, 1, 2, ... n-1}, es decir:∀ a ∈ Z ∃ ! ri ∈ CCR / a ≡ ri mod n

CCR (11) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

CCR (6) = {0, 1, 2, 3, 4, 5} = {12, 7, 20, 9, 16, 35}El segundo conjunto es equivalente: 12 → 0, 7 → 1... Normalmente se trabajará en la zona canónica: 0 – n-1

Page 245: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 244

Homomorfismo de los enteros

Enteros Enteros mod na1, a2 (a1 mod n), (a2 mod n)

op (y posterior reducción mod n) op(a1 op a2) mod n (a1 mod n) op (a2 mod n) mod n

es lo mismo que

esta otraEsta operación ...

Esto nos permitirá trabajar con números muy grandes

Page 246: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 245

Un ejemplo de homomorfismo

Ejemplo: una calculadora capaz de trabajar sólo con tres dígitos ...

88 ∗ 93 mod 13

8.184 mod 13

Resultado: 7

88 ∗ 93 mod 13

8.184 mod 13

Resultado: 7

Se desbordaría la memoria de nuestro sistema

Solución por homomorfismo:

88 ∗ 93 mod 13[(88) mod 13 ∗ (93) mod 13] mod 13

10 ∗ 2 mod 1320 mod 13 Resultado: 7

se llega a lo mismo, pero...Ahora ya no se desborda la memoria

... y hemos usado siempre números de 3 dígitos. En este caso la operación máxima

sería 12∗12 = 144, es decir tres dígitos.☺

Page 247: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 246

Divisibilidad de los números

En criptografía muchas veces nos interesará encontrar el máximo común denominador mcd entre dos números a y b.Para la existencia de inversos en un cuerpo n, la base a y el módulo n deberán ser primos entre sí. ⇒ mcd (a, n) = 1 Algoritmo de Euclides:

– a) Si x divide a a y b ⇒ a = x ∗ a’ y b = x ∗ b’– b) Por lo tanto: a - k ∗ b = x ∗ a’ - k ∗ x ∗ b’

a - k ∗ b = x (a’ - k ∗ b’)– c) Entonces se concluye que x divide a (a - k ∗ b)

http://es.geocities.com/eucliteam/

Page 248: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 247

El máximo común denominador mcd

Como hemos llegado a que x divide a (a – k ∗ b) esto nos permitirá encontrar el mcd (a, b):

Si a > b entonces a = d1 ∗ b + r

(con di un entero y r un resto)

Luego mcd (a, b) = mcd (b ,r) (a > b > r ≥ 0)

porque:

Si b > r entonces b = d2 ∗ r + r’

(con r un entero y r’ un resto)

Page 249: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 248

Divisibilidad con algoritmo de Euclides

mcd (385, 78)

385 = 4 ∗ 78+ 73

78 = 1 ∗ 73 + 5

73 = 14 ∗ 5 + 3

5 = 1∗ 3 + 2

3 = 1∗ 2 + 1

2 = 2 ∗ 1 + 0

mcd (385, 78) = 1

mcd (148, 40)

148 = 3 ∗ 40 + 28

40 = 1 ∗ 28 + 12

28 = 2 ∗ 12 + 4

12 = 3 ∗ 4 + 0

mcd (148, 40) = 4

148 = 22 ∗ 3740 = 23 ∗ 5

Factor común 22 = 4

No hay factor común

385 = 5 ∗ 7 ∗ 1178 = 2 ∗ 3 ∗ 13

Esta condición será importante en criptografía.

Page 250: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 249

Inversión de una operación de cifra

• En criptografía deberá estar permitido invertir una operación para recuperar un cifrado ⇒ descifrar.

• Aunque la cifra es una función, en lenguaje coloquial la operación de cifrado podría interpretarse como una “multiplicación” y la operación de descifrado como una “división”, si bien hablaremos en este caso de una multiplicación por el inverso.

• La analogía anterior sólo será válida en el cuerpo de los enteros Zn con inverso.

• Luego, si en una operación de cifra la función es el valor adentro de un cuerpo n, deberemos encontrar el inverso a-1

mod n para descifrar; en otras palabras ...

Page 251: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 250

Inversos en Zn

Si a ∗ x ≡ 1 mod n

se dice que x es el inverso multiplicativo de a en Zn y se denotará por a-1.

• No siempre existen el inverso de un elemento en Zn. Por ejemplo, si n = 6, en Z6 no existe el inverso del 2, pues la ecuación 2∗x ≡ 1 mod 6 no tiene solución.

• Si n es un número primo p, entonces todos los elementos de Zp salvo el cero tienen inverso. Por ejemplo, en Z5 se tiene que:

1-1 mod 5 = 1; 2-1 mod 5 = 3, 3-1 mod 5 = 2; 4-1 mod 5 = 4.

Page 252: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 251

Existencia del inverso por primalidad

∃ inverso a-1 en mod n ssi mcd (a, n) = 1

Si mcd (a,n) = 1, el resultado de a∗i mod n (para i todos los restos de n) serán valores distintos dentro del cuerpo n.

mcd (a, n) = 1 ⇒ ∃ x ! 0 < x < n / a ∗ x mod n = 1

Sea: a = 4 y n = 9. Valores de i = {1, 2, 3, 4, 5, 6, 7, 8}

4∗1 mod 9 = 4 4∗2 mod 9 = 8 4∗3 mod 9 = 3

4∗4 mod 9 = 7 4∗5 mod 9 = 2 4∗6 mod 9 = 6

4∗7 mod 9 = 1 4∗8 mod 9 = 5Si mcd (a,n) ≠ 1

SOLUCIÓN

ÚNICA

Page 253: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 252

Inexistencia de inverso (no primalidad)

¿Y si no hay primalidad entre a y n?

Si mcd (a, n) ≠ 1

No existe ningún x que 0 < x < n / a ∗ x mod n = 1

Sea: a = 3 y n = 6 Valores de i = {1, 2, 3, 4, 5}

3∗1 mod 6 = 3 3∗2 mod 6 = 0 3∗3 mod 6 = 33∗4 mod 6 = 0 3∗5 mod 6 = 3

No existe el inverso para ningún resto del cuerpo.

Page 254: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 253

Inversos aditivo y multiplicativo

(A+B) mod 5 (A∗B) mod 5B + 0 1 2 3 4 B ∗ 0 1 2 3 4A 0 0 1 2 3 4 A 0 0 0 0 0 0

1 1 2 3 4 0 1 0 1 2 3 42 2 3 4 0 1 2 0 2 4 1 33 3 4 0 1 2 3 0 3 1 4 24 4 0 1 2 3 4 0 4 3 2 1

o En la operación suma siempre existirá el inverso o valor identidad de la adición (0) para cualquier resto del cuerpo. Su valor es único.

o En la operación producto, de existir un inverso o valor de identidad de la multiplicación (1) éste es único y la condición para ello es que el número y el módulo sean primos entre sí. Por ejemplo para n = 4, el resto 2 no tendrá inverso multiplicativo, en cambio el resto 3 sí.

0+0 = 01∗1 = 1Es trivial

Page 255: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 254

No existencia de inversos multiplicativos

(A∗B) mod 101 2 3 4 5 6 7 8 9

1 1 2 3 4 5 6 7 8 92 2 4 6 8 0 2 4 6 83 3 6 9 2 5 8 1 4 74 4 8 2 6 0 4 8 2 65 5 0 5 0 5 0 5 0 56 6 2 8 4 0 6 2 8 47 7 4 1 8 5 2 9 6 38 8 6 4 2 0 8 6 4 29 9 8 7 6 5 4 3 2 1

Para módulo 10 sólo encontramos inversos multiplicativos en los restos 3, 7 y 9, puesto que los demás restos tienen factores 2 y 5 en común con el módulo.

http://www.cut-the-knot.org/blue/Modulo.shtml

Page 256: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 255

Conjunto reducido de restos CRR

• El conjunto reducido de restos, conocido como CRR de n, es el subconjunto {0, 1, ... ni, ... n-1} de restos, primos con el grupo n.

• Si n es primo, todos los restos serán primos con él.• Como el cero no es una solución, entonces:

CRR = {1, ..., ni, ... n-1} / mcd (ni, n) = 1Ejemplo: CRR mod 8 = {1, 3, 5, 7}

CRR mod 5 = {1, 2, 3, 4}

Page 257: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 256

Utilidad del CRR

¿Qué utilidad tiene esto en criptografía?

El conocimiento del CRR permitirá aplicar un algoritmo para el cálculo del inverso multiplicativo de un número x dentro de un cuerpo n a través de la función φ(n), denominada Función de Euler o Indicador de Euler.

Será importante en todos los sistemas simétricos que trabajan en un módulo (con excepción del DES que es un caso muy especial de cifra no modular) y más aún en los sistemas asimétricos y en particular RSA ya que los cálculos de claves pública y privada se harán dentro del cuerpo φ(n). En ambos casos la cifra y las claves estarán relacionadas con el CRR.

http://es.wikipedia.org/wiki/Euler

Page 258: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 257

Función de Euler φ(n)

• El Indicador o Función de Euler φ(n) nos entregará el número de elementos del CRR.

• Podremos representar cualquier número n de estas cuatro formas:– a) n es un número primo.– b) n se representa como n = pk con p primo y k entero.– c) n es el producto n = p∗q con p y q primos.– d) n es un número cualquiera, forma genérica:

tn = p1

e1 ∗ p2e2 ∗ ... ∗ pt

et = Π piei

i=1

http://mathworld.wolfram.com/TotientFunction.html

Page 259: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 258

Función φ(n) de Euler cuando n = p

Caso 1: n es un número primoSi n es primo, φ(n) será igual a CCR menos el 0.

φ(n) = n - 1

Si n es primo, entonces CRR = CCR - 1 ya que todos los restos de n, excepto el cero, serán primos entre sí.

CRR(7) = {1,2,3,4,5,6} seis elementos∴φ(7) = n - 1 = 7-1 = 6

φ(11) = 11-1 = 10; φ(23) = 23-1 = 22

Ejemplo

Esta expresión se usará en los sistemas de cifra de ElGamal y DSS.

Page 260: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 259

Función φ(n) de Euler cuando n = pk

Caso 2: n = pk (con p primo y k un entero)

φ(n) = φ(pk) = pk - pk-1 φ(pk) = pk-1(p-1)

De los pk elementos del CCR, restaremos todos los múltiplos 1∗p, 2∗p, 3∗p, ...(pk-1-1)∗p y el cero.

CRR(16) = {1,3,5,7,9,11,13,15} ocho elementos∴ φ(16) = φ(24) = 24-1(2-1) = 23∗1 = 8

φ(125) = φ(53) = 53-1∗(5-1) = 52∗4 = 25∗4 = 100

Ejemplo

Page 261: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 260

Función φ(n) de Euler cuando n = p∗q

Caso 3: n = p∗q (con p y q primos)

φ(n) = φ(p∗q) = φ(p)∗φ(q) = (p-1)(q-1)

De los p∗q elementos del CCR, restaremos todos los múltiplos de p = 1∗p, 2∗p, ... (q - 1)∗p, todos los múltiplos de q = 1∗q, 2∗q, ... (p - 1)∗q y el cero.φ(p∗q) = p∗q - [(q-1) + (p-1) +1] = p∗q - q - p + 1

(p-1)(q-1)Esta expresión se usará en el sistema de cifra RSA.

Page 262: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 261

Ejemplo de φ(n) cuando n = p∗q

Ejemplo CRR(15) = {1,2,4,7,8,11,13,14} ocho elementos∴ φ(15) = φ(3∗5) = (3-1)(5-1) = 2∗4 = 8

φ(143) = φ(11∗13) = (11-1)(13-1) = 10∗12 = 120

Esta será una de las operaciones más utilizadas en criptografía.Es la base del sistema RSA que durante muchos años ha sido un estándar y, de hecho, continúa siéndolo en el año 2006, al menos a nivel de uso empresarial y comercial. Uno de sus usos más típicos podemos encontrarlo en las comunicaciones seguras del entorno Internet mediante SSL, tanto para el intercambio de claves como en los formatos de certificados digitales X.509 para firma digital.

Page 263: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 262

Función φ(n) de Euler para n genérico

Caso 4: n = p1e1∗p2

e2∗ ... ∗ptet (pi son primos)

t

φ(n) = Π piei-1 (pi - 1)

i=1(Esta demostración no es inmediata)

CRR(20) = {1, 3, 7, 9, 11, 13, 17, 19} ocho elementos∴ φ(20) = φ(22 ∗5) = 22-1(2-1)∗51-1(5-1) = 21∗1∗1∗4 = 8φ(360) = φ(23 ∗32∗5) = 23-1(2-1)∗32-1(3-1)∗51-1(5-1) = 96

Ejemplo

Page 264: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 263

Teorema de Euler

Dice que si mcd (a,n) = 1 ⇒ aφ(n) mod n = 1Ahora igualamos a∗x mod n = 1 y aφ(n) mod n = 1

∴ aφ(n) ∗ a-1 mod n = x mod n∴ x = aφ(n)-1 mod n

El valor x será el inverso de a en el cuerpo n

Nota: Observe que se ha dividido por a en el cálculo anterior. Esto se puede hacer porque mcd (a, n) = 1 y por lo tanto hay un único valor inverso en el cuerpo n que lo permite.

Page 265: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 264

Cálculo de inversos con Teorema Euler

Ejemplo

¿Cuál es el inverso de 4 en módulo 9? ⇒ inv (4, 9)

Pregunta: ¿Existe a ∗ x mod n = 4 ∗ x mod 9 = 1?

Como mcd (4, 9) = 1 ⇒ Sí ... aunque 4 y 9 no sean primos.

φ(9) = 6 ∴ x = 46-1 mod 9 = 7 ⇒ 7∗4 = 28 mod 9 = 1

Resulta obvio que: inv (4, 9) = 7 e inv (7, 9) = 4

Page 266: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 265

Teorema de Euler para n = p∗q

Si el factor a es primo relativo con n y el valor n es el producto de 2 primos, seguirá cumpliéndose el Teorema de Euler también en dichos primos.Por ejemplo:Si n = p∗q ⇒ φ(n) = (p-1)(q-1)∀ a / mcd {a, (p,q)} = 1se cumple que:

aφ(n) mod p = 1aφ(n) mod q = 1

En el capítulo dedicado a la

cifra con clave pública RSA,

relacionaremos este tema con el

Teorema del Resto Chino.

Page 267: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 266

Ejemplo Teorema de Euler para n = p∗q

Sea n = p∗q = 7∗11 = 77φ(n) = (p - 1)(q - 1) = (7 - 1)(11 - 1) = 6∗10 = 60

Si k = 1, 2, 3, ...Para a = k∗7 aφ(n) mod n = k∗760 mod 77 = 56Para a = k∗11 aφ(n) mod n = k∗1160 mod 77 = 22Para ∀ a ≠ k∗7, k∗11 aφ(n) mod n = a60 mod 77 = 1Y se cumple también que:Para ∀ a ≠ k∗7, k∗11 aφ(n) mod p = a60 mod 7 = 1

aφ(n) mod q = a60 mod 11 = 1En caso contrario: aφ(n) mod p = 0

aφ(n) mod q = 0

Page 268: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 267

Pequeño teorema de Fermat

Si el cuerpo de trabajo es un primo p:mcd (a, p) = 1 ⇒ aφ(p) mod p = 1

Entonces a ∗ x mod p = 1 y aφ(n) mod p = 1

Además, en este caso φ(p) = p-1 por lo que igualando las dos ecuaciones de arriba tenemos:

∴ aφ(p) ∗ a-1 mod p = x mod p∴ x = ap-2 mod p

Luego x será e inverso de a en el primo p.

http://es.wikipedia.org/wiki/Peque%C3%B1o_teorema_de_Fermat

Page 269: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 268

¿Qué hacemos si no se conoce φ(n)?

• Calcular ai mod n cuando los valores de i y a son grandes, se hace tedioso pues hay que utilizar la propiedad de la reducibilidad repetidas veces.

• Si no conocemos φ(n) o no queremos usar los teoremas de Euler o Fermat, siempre podremos encontrar el inverso de a en el cuerpo n usando el

Algoritmo Extendido de EuclidesEste es el método más rápido y práctico

http://en.wikipedia.org/wiki/Euclid

Page 270: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 269

Algoritmo Extendido de Euclides AEE

Si mcd (a, n) = 1 y a∗x mod n = 1 ⇒ x = inv (a, n)Luego podemos escribir:

n = C1∗a + r1 a > r1a = C2∗r1+ r2 r1> r2r1 = C3∗r2+ r3 r2> r3... ...rn-2 = Cn∗rn-1 + 1 rn-1> 1rn-1 = Cn+1∗1 + 0

Concluye aquí el algoritmo.

Si volvemos hacia atrás desde este valor, obtenemos el inverso de a en el cuerpo n.

Si volvemos hacia atrás desde este valor, obtenemos el inverso de a en el cuerpo n.

Page 271: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 270

Tabla de restos del AEE

Ordenando por restos desde el valor 1 se llega a una expresión del tipo (k1 ∗ n + k2 ∗ a) mod n = 1, en donde el inverso de a en n lo dará el coeficiente k2 puesto que k1 ∗ n mod n = 0.

C1 C2 C3 C4 ... Cn-1 Cn Cn+1

n a r1 r2 r3 ... rn-2 rn-1 1

(k1 ∗ n + k2 ∗ a) mod n = 1Tabla de restos

Vuelta hacia atrás

Page 272: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 271

Cálculo de inversos mediante el AEE

Encontrar el inv (9, 25) por el método de restos de Euclides.a) 25 = 2∗9 + 7

b) 9 = 1∗7 + 2

c) 7 = 3∗2 + 1

d) 2 = 2∗1 + 0

2 1 3 2

25 9 7 2 1 0

7 = 25 - 2∗9

2 = 9 - 1∗7

1 = 7 - 3∗2

7 = 25 - 2∗9

2 = 9 - 1∗(25 - 2∗9) = 3∗9 -1∗25

1 = (25 - 2∗9) - 3∗(3∗9 -1∗25)

1 = 4∗25 - 11∗9 mod 25

El inv (9,25) = -11

-11 + 25 = 14

inv (9, 25) = 14

El inv (9,25) = -11

-11 + 25 = 14

inv (9, 25) = 14

restos

Tabla de Restos

Page 273: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 272

Para encontrar x = inv (A, B)Hacer (g0, g1, u0, u1, v0, v1, i) = (B, A, 1, 0, 0, 1, 1)Mientras gi ≠ 0 hacer

Hacer yi+1 = parte entera (gi-1/gi)Hacer gi+1 = gi-1 - yi+1∗ giHacer ui+1 = ui-1 - yi+1∗ uiHacer vi+1 = vi-1 - yi+1∗ viHacer i = i+1

Si (vi-1 < 0)Hacer vi-1 = vi-1 + BHacer x = vi-1

i yi gi ui vi

0 - 25 1 0

1 - 9 0 1

2 2 7 1 -2

3 1 2 -1 3

4 3 1 4 -11

5 2 0 -9 25

x = inv (A, B)x = inv (9, 25)

x = inv (9, 25) = -11+25 = 14

Algoritmo para el cálculo de inversos

Ejemplo

-

x=

Page 274: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 273

Características de inversos en n = 27

Para el alfabeto castellano con mayúsculas (n = 27) tenemos: x inv (x, 27) x inv (x, 27) x inv (x, 27)1 1 10 19 19 10 2 14 11 5 20 23 4 7 13 25 22 16 5 11 14 2 23 20 7 4 16 22 25 13 8 17 17 8 26 26

27 = 33 luego no existe inverso para a = 3, 6, 9, 12, 15, 18, 21, 24.

Inversos en sistema de cifra clásico orientado a

alfabeto de 27 caracteres.

inv (x, n) = a ⇔ inv (a, n) = x

inv (1, n) = 1; inv (n-1, n) = n-1

Page 275: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 274

¿Qué pasa si mcd (a, n) ≠ 1?

• ¿Pueden existir inversos?• No, pero...• Si a ∗ x mod n = b con b ≠ 1 y mcd (a, n) = m, siendo

m divisor de b, habrá m soluciones válidas. En principio esto no nos sirve en criptografía ...

6∗x mod 10 = 4 mcd (6, 10) = 2No existe inv (6, 10) pero ... habrá 2 soluciones válidas

x1 = 4 ⇒ 6∗4 mod 10 = 24 mod 10 = 4x2 = 9 ⇒ 6∗9 mod 10 = 54 mod 10 = 4 ?

Page 276: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 275

Teorema del Resto Chino TRC

Si n = d1∗d2∗d3∗ ... ∗dt con di = piei (p primo)

El sistema de ecuaciones:x mod di = xi (i = 1, 2, 3, ... t)

tiene una solución común en [0, n-1]t

x = Σ (n/di)∗yi∗xi mod ni=1

con yi = inv [(n/di), di]

En algunos textos lo verá como “Teorema

Chino de los Restos”... aunque es obvio que la autoría pertenece a los

matemáticos chinos, alguien podría poner en

duda si el teorema es chino o bien si los restos

son los chinos ☺.

http://www.math.hawaii.edu/~lee/courses/Chinese.pdf

Page 277: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 276

Ejemplo de aplicación del TRC (1)

Encontrar x de forma que : 12 ∗ x mod 3.960 = 36Tenemos la ecuación genérica: a ∗ xi mod di = bn = 3.960 ⇒ n = 23∗32∗5∗11 = d1∗d2∗d3∗d4 = 8∗9∗5∗11a = 12b = 36 Como n ⇒ d4, existirán 4 soluciones de xi

a∗x1 mod d1 = b mod d1 12∗x1 mod 8 = 36 mod 8 = 4a∗x2 mod d2 = b mod d2 12∗x2 mod 9 = 36 mod 9 = 0a∗x3 mod d3 = b mod d3 12∗x3 mod 5 = 36 mod 5 = 1a∗x4 mod d4 = b mod d4 12∗x4 mod 11 = 36 mod 11 = 3

4 ecuaciones en x Resolviendo para xi

Page 278: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 277

Ejemplo de aplicación del TRC (2)

x1 = 1 x2 = 0

x3 = 3 x4 = 34 ecuaciones en x

12∗x1 mod 8 = 4 ⇒ 4∗x1 mod 8 = 4 ⇒ x1 = 1

12∗x2 mod 9 = 0 ⇒ 3∗x2 mod 9 = 0 ⇒ x2 = 0

12∗x3 mod 5 = 1 ⇒ 2∗x3 mod 5 = 1 ⇒ x3 = 3

12∗x4 mod 11 = 3 ⇒ 1∗x4 mod 11 = 3 ⇒ x4 = 3

Page 279: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 278

Ejemplo de aplicación del TRC (3)

Resolvemos ahora la ecuación auxiliar del Teorema Resto Chinoyi = inv [(n/di), di]

y1 = 7 y2 = 8

y3 = 3 y4 = 7

y1 = inv [(n/d1), d1] ⇒ y1 = inv [(3.960/8), 8] = inv (495, 8)

y2 = inv [(n/d2), d2] ⇒ y2 = inv [(3.960/9), 9] = inv (440, 9)

y3 = inv [(n/d3), d3] ⇒ y3 = inv [(3.960/5), 5] = inv (792,5)

y4 = inv [(n/d4), d4] ⇒ y4 = inv [(3.960/11), 11] = inv (360, 11)

Page 280: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 279

Ejemplo de aplicación del TRC (4)

Aplicando ecuación del Resto Chino para el caso 12 ∗ x mod 3.960 = 36 con d1 = 8, d2 = 9, d3 = 5, d4 = 11:

x1 = 1 x2 = 0

x3 = 3 x4 = 3t

x = Σ (n/di)∗yi∗xi mod ni=1

tx = Σ (n/di)∗yi∗xi mod n

i=1

y1 = 7 y2 = 8

y3 = 3 y4 = 7

x = [(n/d1)y1x1 + (n/d2)y2x2 + (n/d3)y3x3 + (n/d4)y4x4]

x = [495∗7∗1 + 440∗8∗0 + 792∗3∗3 + 360∗7∗3] mod 3.960

x = [3.465 + 0 + 7.128 + 7.560] mod 3.960 = 2.313

Page 281: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 280

¿Todo marcha bien en este ejemplo?

¿Es la solución de 12∗x mod 3.960 = 36 única?NO

¿Qué ha sucedido?Puesto que mcd (a, n) = mcd (12, 3.960) = 12, ya hemos visto en una diapositiva anterior que habrá 12 soluciones válidas.

x1 = 3; x2 = 333; x3 = 663; x4 = 993 ..... x8 = 2.313 ...xi = 3 + (i-1)∗330 mod 3.960 ... hasta llegar a x12 = 3.633

Observe que x = 2.313, uno de los valores solución, fue el resultado encontrado en el ejercicio anterior.

Page 282: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 281

Otros casos de aplicación del TRC

¿Qué sucede ahora con:

12∗x mod 3.960 = 35?

12∗x mod 3.960 = 35

mcd (a, n) = 12 no es un divisor de b = 35, luego aquí no existe solución.

Teníamos que 3.960 = 23∗32∗5∗11

¿Qué sucede ahora con:

49∗x mod 3.960 = 1?

49∗x mod 3.960 = 1Sí existirá x, y en este caso es el inverso de 49. Será único ya que 49 = 7∗7 no tiene factores en n.

Primero encuentre x. Luego vea la solución.

Page 283: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 282

Cálculo de inversos usando el TRC (1)

Si 49∗x mod 3.960 = 1, se pide encontrar x = inv (49, 3.960)

Tenemos la ecuación genérica: a ∗ xi mod di = bn = 3.960 ⇒ n = 23∗32∗5∗11 = d1∗d2∗d3∗d4 = 8∗9∗5∗11a = 49b = 1Como n d1∗d2∗d3∗d4 existirán 4 soluciones de xia∗x1 mod d1 = b mod d1 49∗x1 mod 8 = 1 mod 8 = 1a∗x2 mod d2 = b mod d2 49∗x2 mod 9 = 1 mod 9 = 1a∗x3 mod d3 = b mod d3 49∗x3 mod 5 = 1 mod 5 = 1a∗x4 mod d4 = b mod d4 49∗x4 mod 11 = 1 mod 11 = 1

Resolviendo para xi

Page 284: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 283

Cálculo de inversos usando el TRC (2)

x1 = 1 x2 = 7

x3 = 4 x4 = 94 ecuaciones en x

49∗x1 mod 8 = 1 ⇒ 1∗x1 mod 8 = 1 ⇒ x1 = 1

49∗x2 mod 9 = 1 ⇒ 4∗x2 mod 9 = 1 ⇒ x2 = 7

49∗x3 mod 5 = 1 ⇒ 4∗x3 mod 5 = 1 ⇒ x3 = 4

49∗x4 mod 11 = 1 ⇒ 5∗x4 mod 11 = 1 ⇒ x4 = 9

Page 285: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 284

Cálculo de inversos usando el TRC (3)Resolvemos ahora la ecuación auxiliar del Teorema Resto Chinoyi = inv [(n/di), di]

y1 = 7 y2 = 8

y3 = 3 y4 = 7

y1 = inv [3.960/8), 8] ⇒ y1 = inv (495, 8) = inv (7, 8) = 7

y2 = inv [(3.960)/9, 9] ⇒ y2 = inv (440, 9) = inv (8, 9) = 8

y3 = inv [(3.960)/5, 5] ⇒ y3 = inv (792, 5) = inv (2, 5) = 3

y4 = inv [(3.960)/11, 11] ⇒ y4 = inv (360, 11) = inv (8, 11) = 7

Page 286: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 285

Cálculo de inversos usando el TRC (4)

x1 = 1 x2 = 7

x3 = 4 x4 = 9 tx = Σ (n/di)∗yi∗xi mod n

i=1

tx = Σ (n/di)∗yi∗xi mod n

i=1y1 = 7 y2 = 8

y3 = 3 y4 = 7

x = [(n/d1)y1x1 + (n/d2)y2x2 + (n/d3)y3x3 + (n/d4)y4x4]

x = [495∗7∗1 + 440∗8∗7 + 792∗3∗4 + 360∗7∗9] mod 3.960

x = [3.465 + 880 + 1.584 + 2.880] mod 3.960 = 889En efecto, inv (49, 3.960) = 889 ... pero

Page 287: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 286

Utilidad del Teorema del Resto Chino

Calcular el inverso de 49 en el cuerpo 3.960 por medio del Teorema del Resto Chino es algo tedioso ....... y bastante absurdo como ya lo habrá comprobado ☺.En el desarrollo del propio algoritmo del Teorema del Resto Chino para encontrar un inverso hay que calcular otros inversos lo que no tiene sentido alguno...

¿Para qué sirve entonces este algoritmo?Entre otras cosas, cuando veamos el sistema de cifra RSA y el tema dedicado a Protocolos Criptográficos, encontraremos una interesante aplicación del teorema.

Page 288: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 287

La exponenciación en la cifra asimétrica

Una de las aplicaciones más interesantes de la matemática discreta en criptografía es la cifra asimétrica en la que la operación básica es una exponenciación AB mod n, en donde n es un primo grande o un producto de primos grandes.Esta operación AB mod n se realizará para el intercambio de clave y en la firma digital.¿Cómo hacer estos cálculos de forma rápida y eficiente, sin tener que aplicar reducibilidad? Los algoritmos de exponenciación rápida serán la solución. Uno de ellos es el que se presenta en la siguiente diapositiva.

Page 289: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 288

Un método de exponenciación rápida

• En AB mod n se representa el exponente B en binario.

• Se calculan los productos A2 jcon j = 0 hasta n-1, siendo n

el número de bits que representan el valor B en binario.

• Sólo se toman en cuenta los productos en los que en la posición j del valor B en binario aparece un 1.

Ejemplo

Calcular x = 1237 mod 221 = 2071237 es un número de 40 dígitos:8505622499821102144576131684114829934592

Page 290: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 289

Ejemplo de exponenciación rápida

Calcular x = 1237 mod 221 = 207

B = 3710 = 1001012

mod 221

j 0 1 2 3 4 5A = 12

12 144 183 118 1 1Bits 5 4 3 2 1 0

x = 12∗183∗1 mod 221 = 207

interesante...

122 mod 2211442 mod 221

A2j

(primer cálculo)

En vez de 36 multiplicaciones y sus reducciones módulo 221 en cada paso ... 72 operaciones...

Hemos realizado cinco multiplicaciones (para j = 0 el valor es A) con sus reducciones módulo 221, más dos al final y sus correspondientes reducciones; en total 14. Observamos un ahorro superior al 80% pero éste es un valor insignificante dado que los números son muy pequeños.

Page 291: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 290

Algoritmo de exponenciación rápidaEjemplo: calcule 1983 mod 91 = 24Hallar x = AB mod n

• Obtener representación binaria del exponente B de k bits:B2 → bk-1bk-2...bi...b1b0

• Hacer x = 1• Para i = k-1, ..., 0 hacer

x = x2 mod nSi (bi = 1) entonces

x = x∗A mod n

8310 = 10100112 = b6b5b4b3b2b1b0

x = 1i=6 b6=1 x = 12∗19 mod 91 = 19 x = 19i=5 b5=0 x = 192 mod 91 = 88 x = 88 i=4 b4=1 x = 882 ∗19 mod 91 = 80 x = 80i=3 b3=0 x = 802 mod 91 = 30 x = 30i=2 b2=0 x = 302 mod 91 = 81 x = 81i=1 b1=1 x = 812 ∗19 mod 91 = 80 x = 80i=0 b0=1 x = 802 ∗19 mod 91 = 24 x = 24

1983 = 1,369458509879505101557376746718e+106 (calculadora Windows). En este caso hemos realizado sólo 16 operaciones frente a 164. Piense ahora qué sucederá en una operación típica de firma digital con hash: (160 bits) (1.024 bits) mod 1.024 bits ☺.

Page 292: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 291

¿Cuántos números primos hay?

• Por el teorema de los números primos, se tiene que la probabilidad de encontrar números primos a medida que éstos se hacen más grandes es menor:

Números primos en el intervalo [2, x] = x / ln x• Primos entre 2 y 25 = 32 x/lnx = 32/3,46 = 9 Probabilidad x sea primo: 30,00 %• Primos entre 2 y 26 = 64 x/lnx = 64/4,16 = 15 Probabilidad x sea primo: 24,00 %• Primos entre 2 y 27 = 128 x/lnx = 128/4,85 = 26 Probabilidad x sea primo: 20,63 %• Primos entre 2 y 28 = 256 x/lnx = 256/5,54 = 46 Probabilidad x sea primo: 18,11 %• Primos entre 2 y 29 = 512 x/lnx = 512/6,23 = 82 Probabilidad x sea primo: 16,08 %• Primos entre 2 y 210 = 1.024 x/lnx = 1.024/6,93 = 147 Probabilidad x sea primo: 14,38 %• Primos entre 2 y 211 = 2.048 x/lnx = 2.048/7,62 = 268 Probabilidad x sea primo: 13,10 %• Primos entre 2 y 212 = 4.096 x/lnx = 4.096/8,32 = 492 Probabilidad x sea primo: 12,02 %

En el capítulo 21 encontrará una tabla con números primos hasta el 1.999.

http://www.utm.edu/research/primes/

Page 293: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 292

Raíz primitiva o generador de un primo

• Un generador o raíz primitiva de un número primo p es aquel valor que, elevado a todos los restos del cuerpo reducido módulo n, genera todo el cuerpo.Así, g es un generador si: ∀ 1 ≤ a ≤ p-1

ga mod p = b (con 1 ≤ b ≤ p-1, todos los b ≠)

Sea p = 3 ⇒ CCR = {1,2} (el cero no es solución)Resto 1: no generará nada porque 1k mod p = 1Resto 2: 21 mod 3 = 2; 22 mod 3 = 1

Luego el 2 es un generador del cuerpo n = 3

Page 294: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 293

¿Cuántas raíces hay en un primo p?

• Existen muchos números dentro del CRR que son generadores del cuerpo ... pero:

• Su búsqueda no es algo fácil ... ¿alguna solución?• Conociendo la factorización de p-1 (q1, q2, ..., qn)

con qi los factores primos de p-1, diremos que un número g será generador en p si ∀ qi:

g(p-1)/qi mod p ≠ 1En cambio, si algún resultado es igual a 1, g no será generador.

http://mathworld.wolfram.com/PrimitiveRoot.html

Page 295: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 294

Búsqueda de raíces primitivas en Z13 (1)

BÚSQUEDA DE RAÍCES EN EL CUERPO Z13*

Generadores en Z13Como p = 13 ⇒ p-1 = 12 = 22∗3Luego: q1 = 2 q2 = 3Si se cumple g(p-1)/qi mod p ≠ 1 ∀ qientonces g será un generador de p

g: 2,

2(13-1)/2 mod 13 = 26 mod 13 = 122(13-1)/3 mod 13 = 24 mod 13 = 3 El resto 2 sí es generador

Resto 2

3(13-1)/2 mod 13 = 36 mod 13 = 13(13-1)/3 mod 13 = 34 mod 13 = 3 El resto 3 no es generador

Resto 3

Page 296: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 295

Búsqueda de raíces primitivas en Z13 (2)

g: 2, 6, 7,Generadores en Z13

4(13-1)/2 mod 13 = 46 mod 13 = 14(13-1)/3 mod 13 = 44 mod 13 = 9 El resto 4 no es generador

Resto 4

5(13-1)/2 mod 13 = 56 mod 13 = 125(13-1)/3 mod 13 = 54 mod 13 = 1 El resto 5 no es generador

Resto 5

6(13 -1)/2 mod 13 = 66 mod 13 = 126(13-1)/3 mod 13 = 64 mod 13 = 9 El resto 6 sí es generador

Resto 6

7(13-1)/2 mod 13 = 76 mod 13 = 127(13-1)/3 mod 13 = 74 mod 13 = 9 El resto 7 sí es generador

Resto 7

Page 297: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 296

Búsqueda de raíces primitivas en Z13 (3)

g: 2, 6, 7, 11Generadores en Z13

8(13-1)/2 mod 13 = 86 mod 13 = 128(13-1)/3 mod 13 = 84 mod 13 = 1 El resto 8 no es generador

Resto 8

9(13-1)/2 mod 13 = 96 mod 13 = 19(13-1)/3 mod 13 = 94 mod 13 = 9 El resto 9 no es generador

Resto 9

10(13-1)/2 mod 13 = 106 mod 13 = 110(13-1)/3 mod 13 = 104 mod 13 = 3 El resto 10 no es generador

Resto 10

11(13-1)/2 mod 13 = 116 mod 13 = 1211(13-1)/3 mod 13 = 114 mod 13 = 3 El resto 11 sí es generador

Resto 11

Page 298: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 297

Búsqueda de raíces primitivas en Z13 (4)

g: 2, 6, 7, 11Generadores en Z13

12(13-1)/2 mod 13 = 126 mod 13 = 112(13-1)/3 mod 13 = 124 mod 13 = 1 El resto 12 no es generador

Resto 12

La tasa de generadores en el grupo pserá aproximadamente τ = φ(p-1)/(p-1). Por lo tanto por lo general el 30% de los

elementos del Conjunto Reducido de Restos de p será un generador en p.

La tasa de generadores en el grupo pserá aproximadamente τ = φ(p-1)/(p-1). Por lo tanto por lo general el 30% de los

elementos del Conjunto Reducido de Restos de p será un generador en p.

τ = φ (12)/12

τ = 4/12 = 1/3

Page 299: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 298

Generadores en cuerpos de primos seguros

Un número primo p se dice que es un primo seguro o primo fuerte si: p = 2∗p’ + 1 (con p’ también primo).

Por ejemplo:Si p’ = 11, luego p = 2∗11 + 1 = 23 (es primo y es seguro)

En este caso la tasa de números generadores del cuerpo serámayor que en el caso anterior (con p = 13 era del 30%).

Probabilidad: τpseguro = φ(p-1)/p-1 ≈ ½

ComprobaciónCasi la mitad de los números del

grupo serán generadores en p.

Page 300: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 299

Comprobación de generadores en p = 2p’+1

p’ = 11; 2p’ = 22; p = 2p’ + 1 = 23 primo seguroComo 2p’ = p - 1 existirán:

φ(p’) = [p’- 1] elementos de orden (p’) en el CRRφ(11) = 10 = {1,2,3,4,5,6,7,8,9,10}φ(2p’) = [p’- 1] elementos de orden (p-1) en el CRRφ(22) = 10 = {1,3,5,7,9,13,15,17,19,21}τ = (p’- 1)/(p-1) = (p’- 1)/2p’ ≈ ½

Sigue

Page 301: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 300

Comprobación de generadores en p = 2p’+1

Usando la ecuación g(p-1)/qi mod pEn este caso con q1 = 2 y q2 = 11

g(23-1)/2 mod 23 = g11 mod 23g(23-1)/11 mod 23 = g2 mod 23

Encontramos los siguientes 10 generadores en p = 23{5, 7, 10, 11, 14, 15, 17, 19, 20, 21}

Es decir, prácticamente la mitad de los valores de CRR que en este caso es igual a 23 – 1 = 22.

Observe cómo se distribuyen los valores de estas raíces dentro del primo, en forma de grupos y distribuidos uniformemente.

Page 302: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 301

Utilidad de la raíz primitiva en criptografía

¿Para qué sirve conocer la raíz primitiva de p?

• La utilidad de este concepto en criptografía lo veremos cuando se estudien los sistemas de clave pública y, en particular, el protocolo de intercambio de claves de Diffie y Hellman.

• También se recurrirá a esta propiedad de los primos cuando estudiemos la firma digital según estándar DSS (ElGamal).

?

Page 303: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 302

Cálculos en campos de Galois (GF)

• Cuando trabajamos en un cuerpo K con dos operaciones + y *, sabemos que todo elemento distinto del cero tiene un único inverso multiplicativo. Si el cuerpo es finito, se denomina también cuerpo o campo de Galois y se denota por GF(pn), donde p es un primo y n un entero ≥ 1.

• Algunos usos en criptografía:– Sistemas de clave pública cuando la operación es C = Me mod p

(cifrador ElGamal) o bien RSA usando el Teorema del Resto Chino para descifrar, como se verá en ese capítulo.

– Aplicaciones en GF(pn), polinomios módulo p y de grado n de la forma a(x) = an-1∗xn-1 + an-2∗xn-2 + ... + a1∗x + a0: se usará en el cifrador de flujo A5, el algoritmo Rijndael de AES y los sistemas de curvas elípticas.

http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Galois.html

Page 304: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 303

Elementos de GF(pn) como polinomios

• Los elementos del cuerpo GF(pn) se pueden representar como polinomios de grado < n con coeficientes ai ∈ Zp, es decir, en la forma:

a(x) = an-1∗xn-1 + an-2∗xn-2 + ... + a1∗x + a0

• El cuerpo GF(pn) se puede construir escogiendo un polinomio irreducible p(x) de grado n a coeficientes en Zp. Entonces cada elemento a(x) del cuerpo GF(pn) es un resto módulo p(x).

• Así, los elementos de GF(2n) son polinomios de grado < n con coeficientes en {0, 1}. De esta manera, GF (23) tiene 8 elementos o restos polinómicos que son: 0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1, los 8 restos de un polinomio de grado n-1 (n = 3).

• En el capítulo 21 encontrará una tabla de polinomios primitivos.

http://mathworld.wolfram.com/FiniteField.html

Page 305: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 304

Suma en campos de Galois GF(2n) ⊕

Si el módulo de trabajo es 2 (con restos bits 0 y 1), las operaciones suma y resta serán un OR Exclusivo:

0 ⊕ 1 mod 2 = 1 1 ⊕ 0 mod 2 = 10 ⊕ 0 mod 2 = 0 1 ⊕ 1 mod 2 = 0

⊕ 0 1 x x+10 0 1 x x+11 1 0 x+1 xx x x+1 0 1

x+1 x+1 x 1 0

Restos: 0, 1, x, x+1

CG(22)

Como los resultados deberán pertenecer al cuerpo 22, vamos a aplicar Reducción por Coeficientes.Ejemplo de cálculos en mod 2:x + (x +1) = 2x + 1 mod 2 = 11 + (x +1) = 2 + x mod 2 = x

Page 306: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 305

Producto en campos de Galois GF(2n) ⊗

La operación multiplicación puede entregar elementos que no pertenezcan al cuerpo, potencias iguales o mayores que n ⇒ Reducción por Exponente.

⊗ 0 1 x x+1

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

x+1 0 x+1 1 x

Restos: 0, 1, x, x+1

CG(22) Para la reducción por exponente, sea el el polinomio irreducible de grado 2 el siguiente: p(x) = x2 + x + 1.Luego: x2 = x + 1Cálculo de (x+1)∗(x+1) mod 2:(x + 1)∗(x + 1) = x2 + 2x + 1 mod 2(x + 1)∗(x + 1) = (x + 1) + 2x +1 mod 2(x + 1)∗(x + 1) = 3x + 2 mod 2 = x

Page 307: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 306

Operaciones con campos de Galois en AES

La suma y multiplicación de polinomios dentro de un cuerpo binario descritas en diapositivas anteriores conforman las operaciones básicas del algoritmo de cifra Advanced Encryption Standard AES, que con el nombre Rijndael es el estándar mundial desde finales de 2001, desplazando al ya viejo DES. En este caso, se trabaja con 8 bits por lo que las operaciones se realizan en GF(28). En el capítulo de cifra en bloque con clave secreta encontrará ejemplos de suma y multiplicación polinómica dentro de este cuerpo binario para el AES.

Fin del capítulo

Page 308: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 307

Cuestiones y ejercicios (1 de 3)

1. ¿Qué significa para la criptografía el homomorfismo de los enteros?2. Si una función de cifra multiplica el mensaje por el valor a dentro

del cuerpo n, ¿para qué nos sirve conocer el inverso de a en n?3. En un cuerpo de cifra n, ¿existen siempre los inversos aditivos y los

inversos multiplicativos? ¿Debe cumplirse alguna condición?4. En un cuerpo n el inverso de a es a –1, ¿es ese valor único? ¿Por qué?5. Cifraremos en un cuerpo n = 131. ¿Cuál es el valor del CCR? ¿Cuál

es valor del CRR? ¿Qué valores podemos cifrar?6. Para cifrar un mensaje M = 104 debemos elegir el cuerpo de cifra

entre el valor n = 127 y n = 133. ¿Cuál de los dos usaría y por qué?7. ¿Qué nos dice la función φ(n) de Euler? ¿Para qué sirve?8. ¿Qué papel cumple el algoritmo extendido de Euclides en la

criptografía? ¿Por qué es importante? ¿En qué se basa?

Page 309: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 308

Cuestiones y ejercicios (2 de 3)9. Si en el cuerpo n = 37 el inv (21, 37) = 30, ¿cuál es el inv (30, 37)?10. Usando el algoritmo extendido de Euclides calcule los siguientes

inversos: inv (7, 19); inv (21, 52), inv (11, 33), inv (47, 41).11. ¿Cuántas soluciones xi hay en la expresión 8∗x mod 20 = 12?

Explique lo que sucede. ¿Tendría esto interés en criptografía?12. ¿Qué viene a significar el Teorema del Resto Chino? Aunque aún

no lo ha estudiado, ¿le ve alguna utilidad en criptografía?13. Calcule inv (121, 393) usando el Teorema del Resto Chino.14. Defina lo que es una raíz primitiva o generador de un cuerpo. ¿Es

necesario que ese cuerpo sea un primo?15. ¿Cuántos generadores podemos esperar en el cuerpo p = 17? Y si

ahora p = 7, ¿cuántos generadores habrá? Compruébelo calculando todos los exponentes del conjunto completo de restos de p = 7.

Page 310: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 309

Cuestiones y ejercicios (3 de 3)16. ¿Cómo se define un primo seguro? ¿Cuántos generadores tiene?17. A partir de los valores p’ = 13, p’ = 17, p’ = 19 y p’ = 23 queremos

obtener un primo seguro, ¿con cuál o cuáles de ellos lo logramos? 18. Usando el algoritmo de exponenciación rápida calcule los siguientes

valores: 2332 mod 51; 100125 mod 201; 1.000100.000 mod 2.500.19. Comente el ahorro en número de operaciones del ejercicio anterior.20. Compruebe los resultados (si puede) con calculadoras de Windows

3.1; Windows 95 y actual. Puede encontrar los ejecutables de estas calculadoras en el software de la asignatura de nombre CripClas.

21. ¿Qué sucede con estas calculadoras para números muy grandes? 22. En GF(2n) reduzca por coeficientes 5x5 + x4 + 2x3 + 3x2 + 6x + 2.23. Reduzca (x3 + 1)(x2 + x +1) por exponente en GF(2n) usando como

polinomio primitivo p(x) = x4 + x + 1, es decir x4 = x + 1.

Page 311: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 310

Prácticas del tema 7 (1/2)Software CripClas: http://www.criptored.upm.es/software/sw_m001c.htm

1. Calcule 237 mod 10; 1452 mod 314; 31 mod 49; 3565 mod 115. 2. Calcule mcd (384, 42); mcd (1234; 56); mcd (23, 5); mcd (371, 97).3. Calcule φ(7); φ(77); φ(131); φ(200).4. Calcule inv (5, 27); inv (12, 133); inv (21, 25); inv (63, 189).

Software Fortaleza: http://www.criptored.upm.es/software/sw_m001e.htm

1. Calcule 28 mod 200; 141001 mod 5321; 49025641053501 mod 34090062349.2. Repita estos cálculos usando las calculadoras de Windows 3.1 y Windows

95 que encontrará en la carpeta de CripClas. Calcule ahora estas potencias: 1015 mod 61 y 30021 mod 45. ¿Qué ha pasado?

Este bug originado por un uso indebido de la operación módulo con números en formato coma flotante (descubierto de forma fortuita, todo hay que decirlo) fue notificado por este autor vía email a Microsoft en el año 1995 y subsanado en la edición de la calculadora de Windows 98 y versiones posteriores.

Page 312: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 7: Teoría de los Números Página 311

Prácticas del tema 7 (2/2)3. Calcule si son primos: 23; 371; 19841; 27603543067280716373.4. Calcule mcd (13824552, 9315188); mcd (6276359, 8725413290).5. Calcule inv (324762387638768, 893247293874293879873498787987).6. Calcule 873635532266530982763424323401728 mod 98774655534452522982343.7. Compruebe que una exponenciación de 50 dígitos 100 dígitos mod 200 dígitos

tarda aproximadamente 30 segundos en resolverse con este programa.

Software ExpoCrip: http://www.criptored.upm.es/software/sw_m001l.htm

1. Calcule las raíces primitivas de los siguientes números: 5; 19; 31; 57; 61.2. Compruebe que estos números son primos seguros: 23; 503; 1019; 10007.3. Calcule las raíces primitivas de los primos seguros del apartado 2.4. Compare el porcentaje de raíces primitivas encontradas en números primos

normales y en primos seguros o fuertes.

Page 313: Seguridad Informatica

Capítulo 8Teoría de la Complejidad Algorítmica

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 31 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 314: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 313

Introducción a la teoría de la complejidad

La teoría de la complejidad de los algoritmos permitirá, entre otras cosas, conocer la fortaleza de un algoritmo y tener así una idea de su vulnerabilidad computacional.

Complejidad ComputacionalLos algoritmos pueden clasificarse según su tiempo de ejecución, en función del tamaño u orden de la entrada. Hablamos así de complejidad:

• Polinomial ⇒ comportamiento similar al lineal• Polinomial No Determinísta ⇒ comportamiento exponencial

Esto dará lugar a “problemas fáciles” y “problemas difíciles” cuyo uso será muy interesante en la criptografía.

Page 315: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 314

Operaciones bit en la suma

Si deseamos sumar dos números binarios n y m, ambos de k bits realizaremos k operaciones bit puesto que cada operación básica con los dígitos de una columna es una operación bit. • Recuerde que 0+0 = 0, 0+1=1, 1+0 = 1, 1+1 = 0 con bit 1 de acarreo.• Si un número tiene menos bits, se rellena con ceros por la izquierda.

Ejemplo: encontrar el número de operaciones bit necesarias en la suma en binario de 13+7 ⇒ 1101 + 0111 (de k = 4 bits)

1 1 1 1 (bits de acarreo)1 1 0 1

+ 0 1 1 11 0 1 0 0

Cada operación básica que hacemos con una columna se conoce como operación bit, luego necesitamos k = 4 operaciones bit.

Page 316: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 315

Operaciones bit en la multiplicación

Para la multiplicación de un número n de k bits por un número m de h bits, el número de operaciones bit será igual a 2∗k∗h. Suponemos que k ≥ h.• Recuerde que 0x0 = 0, 0x1=0, 1x0 = 0, 1x1 = 1.

Ejemplo: encontrar el número de operaciones bit necesarias en la multiplicación en binario 10x5 ⇒ 1010 x 101 (4 y 3 bits)

1 0 1 0 x 1 0 11 0 1 0

0 0 0 0+ 1 0 1 0 (procedemos ahora a sumar)1 1 0 0 1 0

Como cada operación básica entre dos bits es una operación bit, hemos realizado h∗k = 3∗4 multiplicaciones y luego k∗h = 4∗3 sumas, es decir en total 2∗k∗h = 24 operaciones bit.

Page 317: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 316

Las operaciones dependerán del tamaño de la entrada por lo que esta complejidad se expresará en términos del tiempo Tnecesario para el cálculo del algoritmo y del espacio S que utiliza en memoria, y se expresará mediante una función f (n), donde n es el tamaño de la entrada.

Esta función será una aproximación pues el resultado exacto dependerá de la velocidad del procesador.

f (n) = O(g(n))

Y se define así: f = O(n) ssi ∃ co,no / f(n) ≤ co∗g(n)

Ejemplo

La función O(n)

http://www.mm.informatik.tu-darmstadt.de/courses/2002ws/ics/lectures/v14.pdf

Page 318: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 317

Complejidad de una función f(n)

Si f (n) = 4n2 + 2n + 5 ¿ f = O(n2)?

¿se cumple que co∗g(n) = co∗n2 ≥ f (n)? Sea co = 6

co no cono2 f (n) = 4n2 + 2n + 5 ¿co∗n2 ≥ f (n)?

6 1 6 11 No

6 2 24 25 No

6 3 54 38 Sí

6 4 96 77 Sí

Se cumple

siempre

Luego, la complejidad de f (n) es exponencial.

Page 319: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 318

Tiempos de ejecución

En la expresión O(n) aparecerá el término que domina al crecer el valor de n.

• El tiempo de ejecución de un algoritmo T1 que realiza 2n+1 operaciones es de tipo O(n); uno T2 que realiza 3n2+n+3 operaciones será de tipo O(n2), etc.

• Para realizar la suma de la diapositiva anterior necesitamos O(n) = O(log n) operaciones bit y para el caso de la multiplicación, éstas serán O(n∗m) = O(log n ∗ log m) operaciones bit.

+ Operación binaria: n+m (de k bits cada uno)∗ Operación binaria: n∗m (de k y h bits respectivamente)

Page 320: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 319

Algoritmos de complejidad polinomial

• Un algoritmo se dice que tiene tiempo de ejecución polinomial (no confundir con lineal) si éste depende polinómicamente del tamaño de la entrada.

• Si la entrada es de tamaño n y t es un entero, el número de operaciones bit será O(logt n).

Si t = 1, el sistema es lineal Suma

Si t = 2, el sistema es cuadrático Producto

Si t = 3, el sistema es cúbico Máximo ComúnDivisor (Euclides)

Ejemplos

Page 321: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 320

Ejemplo de complejidad polinomial

Pregunta: El tiempo de ejecución de un algoritmo es O(log3 n). Si doblamos el tamaño de la entrada, ¿en cuánto aumentará este tiempo?

Solución: En el primer caso el tiempo es O(log3 n) y en el segundo O(log3 2n). Para este sistema polinomial, el tiempo se incrementará sólo en log3 2 operaciones bit.

Estos son los denominados problemas fáciles y son los que involucrarán un proceso de cifra y descifrado (o firma) por parte del o de los usuarios autorizados.

Page 322: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 321

Algoritmos de complejidad no determinista

• Un algoritmo se dice que tiene tiempo de ejecución polinomial no determinista (en este caso exponencial) si éste depende exponencialmente del tamaño de la entrada.

• Si la entrada es de tamaño n y t es un entero, el número de operaciones bit será O(nt).

Para t = 2, será exponencial de orden 2

Para t = 3, será exponencial de orden 3

n!Ejemplo

Page 323: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 322

Ejemplo de complejidad no determinista

Pregunta: El tiempo de ejecución de un algoritmo es O(n3). Si doblamos el tamaño de la entrada, ¿en cuánto aumentará este tiempo?

Solución: En el primer caso el tiempo es O(n3) y en el segundo O((2n)3) = O(8n3). El tiempo para este sistema exponencial, se incrementará en 8 operaciones bit.

Estos son los denominados problemas difíciles y son a los que deberá enfrentarse un criptoanalista o atacante que desea romper una cifra o la clave de un usuario.

Page 324: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 323

Comparativas de complejidad

• Los algoritmos polinómicos y exponenciales se comparan por su complejidad O(nt).

– Polinómico constante ⇒ O(1)– Polinómico lineal ⇒ O(n)– Polinómico cuadrático ⇒ O(n2)– Polinómico cúbico ⇒ O(n3) ... etc.– Exponencial ⇒ O(dh(n))

donde d es una constante y h(n) un polinomio

Si suponemos un ordenador capaz de realizar 109

instrucciones por segundo obtenemos este cuadro:

Page 325: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 324

Tabla comparativa de tiempos

Entrada O(n) O(n2) O(n3) O(2n)

n = 10 10-8 seg 10-7 seg 10-6 seg 10-6 seg

n = 102 10-7 seg 10-5 seg 10-3 seg 4∗1013 años

n = 103 10-6 seg 10-3 seg 1 seg Muy grande

Incrementos de un orden de magnitud

Computacionalmente imposible

Entrada/109: Para n = 100 ⇒ O(n2) = 1002/109 = 10-5 seg

Page 326: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 325

Problemas de tipo NP

En criptografía nos interesan las funciones f(x) de un solo sentido, es decir:

Fácil calcular f(x) pero muy difícil calcular f-1(x) salvo que conozcamos un secreto o trampa.

Porque dan lugar a problemas de tipo NP, polinomiales no deterministas, computacionalmente difíciles de tratar:

Problema de la mochilaProblema de la factorizaciónProblema del logaritmo discretoProblema logaritmo discreto en curvas elípticasOtros

Definición del problema y ejemplos

Page 327: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 326

Enunciado:

Dada una mochila de determinadas dimensiones de alto, ancho y fondo, y un conjunto de elementos de distintos tamaños menores que ella y de cualquier dimensión, ... ¿es posible llenar la mochila (completa) con distintos elementos de ese conjunto sin repetir ninguno de ellos?

El problema de la mochila

• Es un problema de tipo NP en el que el algoritmo debe realizar en cada paso una selección iterativa entre diferentes opciones.

http://en.wikipedia.org/wiki/Knapsack_problem

Page 328: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 327

S1 = a1+a2+a3 S2 = a1+a2 S3 = a1+a3 S4 = a1

S5 = a2+a3 S6 = a2 S7 = a3 S8 = ∅

S = a1 + a2 + a3 A = {a1, a2, a3}

¿Se incluye a1 en la suma S?

Sí No

¿Se incluye a2 en la suma?

Sí No Sí No

¿Se incluye a3?

Sí No Sí No Sí No Sí No

S1 S2

a1

a3 a3

a2

S3 S4 S7 S8S5 S6

a3a3

a2

Sea una mochila con 4 elementos

{2, 4, 9, 10}

¿Cuántas sumas posibles hay?

Solución: 24 = 16∅, 2, 4, 6,9, 10, 11, 12,13, 14, 15, 16,19, 21, 23, 25.

Los resultados son todos distintos: una casualidad

Repítalo con {2, 4, 6, 10}

Ejemplo del problema de la mochila

Hemos tenido que evaluar 23 = 8 valores ⇒ (carácter exponencial)

Page 329: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 328

Interés de las mochilas en criptografía

¿Por qué tiene interés este problema en criptografía?

a) Es de tipo NP completo: su resolución por lo general implica una complejidad exponencial. Luego, serádifícil de atacar o criptoanalizar.

b) Existe un caso en el que su resolución es lineal y, si la solución existe, ésta será única. Este caso se dará cuando A = {a1, a2, a3, .., an} está ordenado de menor a mayor de forma que ai es mayor que la suma de los aj que le preceden: a2 > a1; a3 > a1 + a2; a4 > a1 + a2 + a3; etc.

Esto dará lugar a los criptosistemas de mochila tramposa que veremos en un próximo capítulo.

Page 330: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 329

Problemas usados en criptografía asimétrica

Los problemas más usados en la criptografía asimétrica o de clave pública actualmente son:- El problema de la factorización de números grandes PFNG- El problema del logaritmo discreto PLD

En estos casos, cuando los números son del orden de mil bits (unos 310 dígitos) su cálculo se vuelve computacionalmente imposible debido al tiempo que deberíamos emplear.Si lo desea, puede comprobar los ejemplos de las siguientes diapositivas usando el software de prácticas Fortaleza de libre distribución y que puede descargarlo desde esta dirección.

http://www.criptored.upm.es/software/sw_m001e.htm

Page 331: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 330

El problema de la factorización PFNG

Dado un número n que es el resultado del producto de dos o más primos, se pide encontrar estos factores.Por ejemplo, cuando el valor n = p∗q es muy grande, el Problema de la Factorización de Números Grandes PFNG se vuelve computacionalmente intratable.No obstante, el caso inverso, dado dos números primos p y q, encontrar el resultado p∗q = n, se trata de un problema de tipo polinomial.Este problema se usará en la generación del par de claves del sistema de cifra con clave pública RSA.

http://home.netcom.com/~jrhowell/math/factor.htm

Page 332: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 331

Compruebe lo que significa el PFNG

Cálculo fácil o polinomial (función directa)Calcule “a mano” los siguientes productos de dos primos y tome el tiempo aproximado que tarda en la operación:

a) 13∗31 b) 113∗131 c) 1.013∗1.031 calcule...☺

Cálculo difícil o no polinomial (función inversa)Usando la criba de Eratóstenes, factorice en dos primos los siguientes números y vuelva a tomar el tiempo empleado:a) 629 b) 17.399 c) 1.052.627 calcule...

En el caso a) son primos de 2 dígitos, en b) de 3 y en c) de 4.

No vale usar calculadora...

¿Qué puede concluir de estos cálculos?

Page 333: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 332

Solución al ejemplo anterior

Dificultad polinomial (rápido)a) 13∗31 = 403 b) 113∗131 = 14.803 c) 1013∗1031 = 1.044.403

A medida que aumenta el tamaño de la entrada, el tiempo de cálculo aumenta proporcionalmente con el número de dígitos.

Dificultad no determinista (lento)a) 629 b) 17.399 c) 1.052.627

Da igual que el algoritmo sea éste muy elemental u otro más eficaz; aquí resulta evidente que el tiempo de cálculo aumenta mucho al incrementar en un dígito los números en cuestión. Es no lineal.Solución: Los resultados a), b) y c) son el producto de los números primos inmediatamente superiores a los que se usaron en el cálculo polinomial es decir 17*37; 127*137; 1019*1033.

Paciencia, un computador va a sufrir lo mismo ...

Page 334: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 333

El problema del logaritmo discreto PLD

Dado un par de enteros α y β que pertenecen al Campo de Galois GF(p), se pide encontrar un entero x de forma tal que x = logα β mod p.

Si el valor p es muy grande, el Problema del Logaritmo Discreto PLD es computacionalmente intratable.

No obstante, el caso inverso, dado dos números α y x, encontrar β = αx mod p es un problema polinomial.

Este problema se usará, entre otros, en la creación de las claves del sistema de cifra con clave pública ElGamal y en el protocolo de intercambio de clave de Diffie y Hellman.

http://en.wikipedia.org/wiki/Discrete_logarithm

Page 335: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 334

El PLD en su función directa o fácil

Cálculo fácil o polinomial (función directa)Calcule “a mano” las siguientes exponenciaciones mod p y tome el tiempo aproximado que tarda en la operación:

a) 54 mod 7 b) 817 mod 41 c) 9211 mod 25154 = 625817 = 2.251.799.813.685.248

9211 = 3.996.373.778.857.415.671.808 Solución:54 mod 7 = 2817 mod 41 = 399211 mod 251 = 217

Haciendo uso de la propiedad de reducibilidadvista en el apartado de matemáticas discretas, podrá bajar significativamente el tiempo de cálculo. Este tiempo será de tipo polinomialsegún el tamaño de la entrada.

Page 336: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 335

El PLD y su función inversa o difícil

Cálculo difícil o no determinista (función inversa)Aunque existen varios algoritmos para este tipo de cálculos (al igual que para la factorización) use la fuerza bruta que se explica a continuación para encontrar los siguientes valores y vuelva a tomar el tiempo empleado:a) log5 2 mod 7 b) log8 39 mod 41 c) log92 217 mod 251

Aplicando fuerza bruta en el 1er caso (la base elevada a todos los restos de p) al final se obtiene que log5 2 mod 7 = 4.

51 mod 7 = 5 52 mod 7 = 4 53 mod 7 = 654 mod 7 = 2 55 mod 7 = 3 56 mod 7 = 1

En término medio deberá recorrer la mitad del espacio de valores para encontrarlo ...

Solución:log5 2 mod 7 = 4log8 39 mod 41 = 17log92 217 mod 251 = 11

Page 337: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 336

Logaritmo discreto con α generador

En el cuerpo p = 13, el 2 es un generador, luego:log2 1 mod 13 = 0 log2 2 mod 13 = 1 log2 3 mod 13 = 4log2 4 mod 13 = 2 log2 5 mod 13 = 9 log2 6 mod 13 = 5log2 7 mod 13 = 11 log2 8 mod 13 = 3 log2 9 mod 13 = 8log2 10 mod 13 = 10 log2 11 mod 13 = 7 log2 12 mod 13 = 6

21 mod 13 = 2 22 mod 13 = 4 23 mod 13 = 824 mod 13 = 3 25 mod 13 = 6 26 mod 13 = 1227 mod 13 = 11 28 mod 13 = 9 29 mod 13 = 5210 mod 13 = 10 211 mod 13 = 7 212 mod 13 = 1

Es decir

Se cumplirá siempre que a0 mod p = ap-1 mod p = 1.

Page 338: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 337

Logaritmo discreto con α no generador

En p=13 el 2 era generador, pero no así el número 3...

Luego

30 mod 13 = 1 31 mod 13 = 3 32 mod 13 = 933 mod 13 = 1 34 mod 13 = 3 35 mod 13 = 936 mod 13 = 1 37 mod 13 = 3 38 mod 13 = 939 mod 13 = 1 310 mod 13 = 3 311 mod 13 = 9

log3 1 mod 13 = 0 log3 2 mod 13 = NE log3 3 mod 13 = 1log3 4 mod 13 = NE log3 5 mod 13 = NE log3 6 mod 13 = NElog3 7 mod 13 = NE log3 8 mod 13 = NE log3 9 mod 13 = 2log3 10 mod 13 = NE log3 11 mod 13 = NE log3 12 mod 13 = NE

NE: no existe el logaritmo discreto en ese cuerpo

Page 339: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 338

¿Hay más funciones NP?

Existen otros muchos problemas matemáticos que dan lugar a problemas del tipo NP, algunos de ellos basados en estas funciones unidireccionales one-way functions que tanto interesan en criptografía.

Las dos últimas funciones vistas, la factorización de números grandes y el logaritmo discreto, son las que más uso tienen de momento en la criptografía actual.

En la siguiente página Web encontrará una interesante lista con 88 problemas de tipo NP.

http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html

Fin del capítulo

Page 340: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 339

Cuestiones y ejercicios (1 de 2)

1. Deseamos sumar de forma binaria el número 15 (1111) y el número 10 (1010), ambos de k = 4 bits. Haga la suma binaria y verifiqueque el número de operaciones bit desarrolladas es k = 4.

2. Si multiplicamos en binario 1010∗11, donde k = 4 bits y h = 2 bits, compruebe que el número de operaciones bit realizadas es 2∗k∗h.

3. ¿Por qué son interesantes los problemas de tipo NP en criptografía?4. Defina el problema de la mochila y su posible utilización en un

sistema de cifra.5. ¿Es siempre única la solución de una mochila? Piense sobre el

particular y su trascendencia si las utilizamos sin ningún control en sistemas de cifra.

6. Factorice mentalmente el valor n = 143. Intente hacer lo mismo para n = 1.243. ¿Qué opina ahora del problema de la factorización?

Page 341: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 340

Cuestiones y ejercicios (2 de 2)

7. ¿Se le ocurre alguna forma de utilizar este problema de un solo sentido para cifrar información?

8. A partir de la ecuación β = xα mod p, defina el problema del logaritmo discreto.

9. Calcule 713 mod 31 = C usando la propiedad de reducibilidad. Compruebe con Fortaleza que el exponente 13 = log7 C mod 31.

10. ¿Qué utilidad le encuentra a este problema en criptografía?11. ¿Qué relación existe entre generadores de un cuerpo, el conjunto

completo de restos y el cálculo del logaritmo discreto?12. ¿Qué sucede si deseamos encontrar un logaritmo discreto que no

existe, por ejemplo log5 19 mod 31?Nota: si usa el software Fortaleza, deberá detener la operación al no contemplarse en su código este hecho .

Page 342: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 341

Prácticas del tema 8 (1/2)Software Fortaleza: http://www.criptored.upm.es/software/sw_m001e.htm

1. Encuentre el tiempo que tarda el programa en calcular los siguientes productos de primos: 23x61; 281x829; 3001x5477; 26317x63901.

2. Encuentre cuánto tarda el programa en realizar un producto de dos números de 300 dígitos cada uno.

3. Factorice por Pollard Rho los siguientes productos y encuentre el tiempo que tarda el programa: 1403; 232949; 16436477; 1681682617.

4. Factorice por Pollard Rho los números de 16 dígitos que se indican y observe el tiempo empleado: 3745667802664727; 4044773133465121; 3907781049017851; 41710432708253. Saque conclusiones.

5. ¿Cuánto tarda el programa en demostrar la primalidad de estos números 50000000000000000059; 500000000000000000000000000009; 5000000000000000000000000000000000000021; de 20, 30 y 40 dígitos? Compárelos con los tiempos de factorización y saque conclusiones.

Page 343: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 8: Teoría de la Complejidad Algorítmica Página 342

Prácticas del tema 8 (2/2)

6. Encuentre el tiempo que tarda el programa en calcular las siguientes potencias modulares: 351215 mod 3456; 782487652456 mod 34654783; 891278265367876254356758778234002462 mod 762488740981009687272345.

7. Si d = dígitos, ¿cuánto tiempo tarda el programa en calcular una potencia en los siguientes rangos de valores: 50d100d mod 100d; 50d100d mod 150d, 50d100d mod 200d, 50d100d mod 250d? Saque conclusiones.

8. Si d = dígitos, ¿cuánto tiempo tarda el programa en calcular una potencia en los siguientes rangos de valores: 50d25d mod 200d; 50d50d mod 200d, 50d75d mod 200d, 50d100d mod 200d? Saque conclusiones.

9. Compruebe las siguientes potencias y luego mediante los algoritmos de Búsqueda Exhaustiva, Paso Gigante - Paso Enano y Pohlig - Hellman, calcule el correspondiente logaritmo discreto. El módulo p es primo y α es un generador en p. Observe los tiempos de ejecución y saque conclusiones. - 401357 mod 87211 = 31211 ⇒ log401 31211 mod 87211 = 357.- 2468924 mod 384773 = 67350 ⇒ log246 67350 mod 384773 = 8924.

Page 344: Seguridad Informatica

Capítulo 9Sistemas de Cifra Clásicos

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 41 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 345: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 344

¿Le interesa la historia?Si le interesa el tema de la historia de la criptología así como aquellas máquinas que se usaban desde tiempos remotos hasta mediados del siglo XX, un tema verdaderamente apasionante, anexo a este libro electrónico encontrará el documento de libre distribución “Criptografía Clásica” en formato Word y PDF, con más de 100 páginas y 70 ejemplos resueltos.

Aunque su interés actual es mínimo, en estas diapositivas se ha incluido, a modo de resumen, lo más interesante de este tipo de cifra, lo que podrá servirle al menos como cultura general.Encontrará más información y algunos sencillos ejemplos de cifra básica en el software que puede descargar desde la página Web:

http://www.criptored.upm.es/guiateoria/gt_m001a.htm

http://www.abcdatos.com/tutoriales/tutorial/l10448.html

Page 346: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 345

Cifradores e información en Web

Existe una gran cantidad de sistemas y cifradores de los denominados clásicos.En este capítulo sólo se presentan la Escítala, Polybios, César, Afín, Vigenère, Playfair, Hill y Vernam, así como los ataques según métodos de Kasiski y Gauss Jordan.

Puede ampliar información y ver una interesante galería de fotografías sobre estas máquinas y pioneros de la criptografía en la página Web de la NSA, National Security Agency

Y la descripción de varios algoritmos en el siguiente enlace:

http://www.nsa.gov/public/publi00007.cfm

http://library.thinkquest.org/27158/concept1_1.html

Page 347: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 346

Clasificación histórica de criptosistemas

La clasificación actual de los sistemas de cifra se basa en el tratamiento de la información (cifrado en bloque vs cifrado en flujo) o bien en el tipo de clave utilizada en la cifra (sistemas de clave secreta v/s sistemas de clave pública), pero según su relación con la historia de la criptografía podríamos clasificarlos como:

Sistemas de Cifra Clásicos versus Sistemas de Cifra Modernos

Esta no es ni mucho menos la mejor clasificación desde el punto de vista de la ingeniería y la informática ... pero permitirá comprobar el desarrollo de estas técnicas de cifra, hoy en día rudimentarias y simples, desde una perspectiva histórica y culturalmente interesante para un ingeniero. Además, nos permitirá criptoanalizar con cierta facilidad prácticamente todos estos sistemas y comprobar tambiénlas teorías de Shannon sobre las estadísticas del lenguaje.

Page 348: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 347

Una primera aproximación histórica

• El uso de técnicas criptográficas es casi tan antiguo como las culturas de los primeros pueblos de nuestro planeta.

• Ya en el siglo V antes de J.C. un pueblo griego usaba técnicas elementales de cifra para proteger su información.

• Se pretendía garantizar en aquellos días sólo la confidencialidad y la autenticidad de los mensajes. A finales del siglo XX se han añadido la disponibilidad y, últimamente, el no repudio.

• Los mayores avances se logran en la Primera y Segunda Guerra Mundiales, especialmente durante y después de esta última. Los países en conflicto poseían verdaderas empresas con un gran número de matemáticos, cuya función era romper los mensajes cifrados de los teletipos intercambiados por sus enemigos.

Page 349: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 348

Herramientas de la criptografía clásica• Tanto máquinas, artilugios de cifra, como los algoritmos

que trabajaban matemáticamente dentro de un cuerpo finito n, hacen uso de dos técnicas básicas orientadas a caracteres y que, muchos siglos después, las propondrá Shannon como herramientas para fortalecer la cifra:• Técnicas de sustitución: Los caracteres o letras del mensaje

en claro se modifican o sustituyen por otros elementos o letras en la cifra. El criptograma tendrá entonces caracteres distintos a los que tenía el mensaje en claro.

• Técnicas de transposición o permutación: los caracteres o letras del mensaje en claro se redistribuyen sin modificarlos y según unas reglas, dentro del criptograma. El criptograma tendrá entonces los mismos caracteres del mensaje en claro pero con una distribución o localización diferente.

Page 350: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 349

Clasificación de los criptosistemas clásicosy algunosejemplos...

TRANSPOSICIÓN SUSTITUCIÓN

MONOGRÁMICA POLIGRÁMICA NO PERIÓDICA PERIÓDICA

ALFABETOESTÁNDAR

ALFABETO MIXTO

DIGRÁMICA N-GRÁMICALINEALES PROGRESIVOS

CÉSAR

PLAYFAIR HILL

VERNAM

ENIGMA

VIGENÈREAFÍN

OTROS

ALFABETOESTÁNDAR

ALFABETOMIXTO

OTROS

COLUMNAS

FILAS

SERIES

GRUPOS MONOALFABÉTICA POLIALFABÉTICA

ESCÍTALA

Page 351: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 350

Hitos históricos en la criptografía• La criptografía clásica abarca desde tiempos inmemoriales

hasta la mitad del siglo XX.• El punto de inflexión en esta clasificación la marcan tres

hechos relevantes:– En el año 1948 se publica el estudio de Claude Shannon

sobre la Teoría de la Información.– En 1974 aparece el estándar de cifra DES.– Y en el año 1976 se publica el estudio realizado por

Whitfield Diffie y Martin Hellman sobre la aplicación de funciones matemáticas de un solo sentido a un modelo de cifra, denominado cifrado con clave pública.

CIFRADO

DIGITAL

http://www.cs.jhu.edu/~rubin/courses/sp03/papers/diffie.hellman.pdf

Page 352: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 351

Primer cifrador por transposición: escítala

• La escítala era usada en el siglo V a.d.C. por el pueblo griego de los lacedemonios. Consistía en un bastón en el que se enrollaba una cinta de cuero y luego se escribía en ella el mensaje de forma longitudinal.

• Al desenrollar la cinta, las letras aparecerán desordenadas. • Para descifrar el criptograma y recuperar el mensaje en

claro habrá que enrollar dicha cinta en un bastón con el mismo diámetro que el usado en el extremo emisor y leer el mensaje de forma longitudinal. La clave del sistema se encuentra en el diámetro del bastón. Se trata de una cifra por transposición pues los caracteres del criptograma son los mismos que en el texto en claro pero están distribuidos de otra forma dentro del criptograma.

Page 353: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 352

Método de cifra de la escítalaBastón y cinta para cifrar

A S I C I F R A B

A N C O N L A E S

C I T A L A

El texto en claro es:

M = ASI CIFRABAN CON LA ESCITALA

El texto cifrado o criptograma será:

C = AAC SNI ICT COA INL FLA RA AE BS

En ese bastón residía la fortaleza de un pueblo.

Por ello, y como símbolo de poder, el bastón de mando que se le entrega al alcalde de una ciudad en la ceremonia de su

nombramiento, proviene de estos tiempos tan remotos.

Page 354: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 353

Primer cifrador por sustitución: PolybiosEs el cifrador por sustitución de caracteres más antiguo que se conoce (siglo II a.d.C.) pero como duplica el tamaño del texto en claro, con letras o números, ... no fue tan buena la idea.

A B C D E 1 2 3 4 5

A A B C D E 1 A B C D E B F G H IJ K 2 F G H IJ K C L M N O P 3 L M N O P D Q R S T U 4 Q R S T U E V W X Y Z 5 V W X Y Z

M1 = QUÉ BUENA IDEA

C1 = DA DE AE AB DE AE

CC AA BD AD AE EA

M2 = LA DEL GRIEGO

C2 = 31 11 14 15 31 22

42 24 15 22 34

Page 355: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 354

El cifrador del César

En el siglo I a.d.C., Julio César usaba este cifrador. El algoritmo consiste en el desplazamiento de tres espacios hacia la derecha de los caracteres del texto en claro. Es un cifrador por sustitución monoalfabético en el que las operaciones se realizan módulo n, siendo n el número de elementos del alfabeto (en aquel entonces el latín).

Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Alfabeto de cifrado del César para castellano mod 27

Page 356: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 355

Ejemplo de cifra del César en mod 27 M i A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z C i D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C

Cifrado: Ci = Mi + 3 mod 27 Descifrado: Mi = Ci - 3 mod 27

M = EL PATIO DE MI CASA ES PARTICULAR

C = HÑ SDWLR GH OL FDVD HV SDUWLFXÑDU

Cada letra se cifrará siempre igual. Es una gran debilidad y hace que este sistema sea muy vulnerable y fácil de atacar, simplemente usando las estadísticas del lenguaje. Puede ver la tabla de frecuencias típicas del lenguaje castellano en el capítulo 21 de este libro.

Page 357: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 356

Criptoanálisis del cifrador por sustituciónA B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Cifrado: Ci = (Mi + b) mod 27 Descifrado: Mi = (Ci – b) mod 27

La letra más frecuente del criptograma la hacemos coincidir con la más frecuente del lenguaje, la letra E, y encontramos así b.

C = LZAHL ZBTHW YBLIH XBLKL ILYOH ZLYCH ROKHFrecuencias observadas en el criptograma: L (7); H (6); Z (3); B (3); Y (3); I (2); K (2); O (2); A (1); T (1); W (1); X (1); C (1); R (1).Es posible que la letra E del lenguaje se cifre como L. Comprobamos además si la letra A (segunda más frecuente) se cifra como H:E + b mod 27 = L ⇒ b = L - E mod 27 = 11 – 4 mod 27 = 7 A + b mod 27 = H ⇒ b = H - A mod 27 = 7 – 0 mod 27 = 7

M = ESTA ES UNA PRUEBA QUE DEBERIA SER VALIDA

Page 358: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 357

Cifrador por sustitución afín mod 27

Cifrado: Ci = a∗Mi + b mod 27

Descifrado: Mi = (Ci – b) ∗ a-1 mod 27 donde a-1 = inv (a, 27)

• El factor de multiplicación a deberá ser primo relativo con el cuerpo n (en este caso 27) para que exista el inverso a-1.

• El factor de desplazamiento puede ser cualquiera: 0 ≤ b ≤ 26.

El ataque a este sistema es también muy elemental. Se relaciona el elemento más frecuente del criptograma a la letra E y el segundo a la letra A, planteando un sistema de 2 ecuaciones. Si el texto tiene varias decenas de caracteres este ataque prospera; caso contrario, podría haber ligeros cambios en esta distribución de frecuencias.

Page 359: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 358

Criptoanálisis a la cifra afín mod 27C: NAQÑF EKNDP NCIVU FPUAN EJUIP FCNER NFRÑF UNPLN

AFPFQ TFPEI JRTÑE FPKÑI KTAPF LIKIÑ AIPÑU RCUJI PCIVU CUNER IRLNP TJIAF NEOIÑ CFLNC NLUFA TEF

Caracteres más frecuentes en el criptograma: F = 14; N = 13; I = 12

Con E y A las más frecuentes, el ataque falla. En un segundo intento suponemos la letra A más frecuente que la E, luego:F = (a∗A + b) mod 27 ⇒ (a∗0 + b) mod 27 = 5 ⇒ b = 5N = (a∗E + b) mod 27 ⇒ (a∗4 + 5) mod 27 = 13 Entonces a = (13-5) ∗ inv (4, 27) mod 27 = 8 ∗ 7 mod 27 = 2

Ci = (2∗Mi + 5) mod 27 ⇒ Mi = (Ci – 5)∗inv (2, 27) = (Ci – 5)∗14 mod 27

M: EL GRAN PEZ SE MOVÍA SILENCIOSAMENTE A TRAVÉS DE LAS AGUAS NOCTURNAS, PROPULSADO POR LOS RÍTMICOS MOVIMIENTOS DE SU COLA EN FORMA DE MEDIA LUNA.(Comienzo de la novela Tiburón de Peter Benchley)

Page 360: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 359

El cifrador de VigenèreEste cifrador polialfabético soluciona la debilidad del cifrado del César en que una letra se cifra siempre igual. Se usa una clave K de longitud L y se cifra carácter a carácter sumando módulo n el texto en claro con los elementos de esta clave.

Ci = Mi + Ki mod 27

Sea K = CIFRA y el mensaje M = HOLA AMIGOSM = H O L A A M I G O S K = C I F R A C I F R A sumando mod 27...C = J W P R A Ñ P L G S Más de un alfabeto: la letra

O se cifra de forma distinta.Observe que el criptograma P se obtiene de un texto L y de un texto I.

Page 361: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 360

¿Es Vigenère un algoritmo seguro?Si la clave de Vigenère tiene mas de 6 caracteres distintos, se logra una distribución de frecuencias en el criptograma del tipo normal, es decir más o menos plana, por lo que se logra difuminar la redundancia del lenguaje.Aunque pudiera parecer que usando una clave larga y de muchos caracteres distintos, y por tanto varios alfabetos de cifrado, Vigenère es un sistema de cifra seguro, esto es falso.La redundancia del lenguaje unido a técnicas de criptoanálisis muy sencillas, como los métodos de Kasiski y del Índice de Coincidencia, permiten romper la cifra y la clave de una manera muy fácil y con mínimos recursos. En la siguiente diapositiva veremos un ataque por el método de Kasiski.

Page 362: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 361

Ataque por el método de Kasiski• El método de Kasiski consiste en buscar repeticiones de cadenas de

caracteres en el criptograma. Si estas cadenas son mayores o iguales a tres caracteres y se repiten más de una vez, lo más probable es que esto se deba a cadenas típicas del texto en claro (trigramas, tetragramas, etc., muy comunes) que se han cifrado con una misma porción de la clave.

• Si se detectan estas cadenas, la distancia entre las mismas será múltiplo de la longitud de la clave. Luego, el máximo común divisor entre esas cadenas es un candidato a ser la longitud de la clave, digamos L.

• Dividimos el criptograma en L subcriptogramas que entonces han sido cifrados por una misma letra de la clave y en cada subcriptograma hacemos un ataque simple ahora de tipo estadístico monoalfabético.

• La idea es buscar ahora a través de los tres caracteres más frecuentes en cada subcriptograma las posiciones relativas de las letras A, E y O que en castellano están separadas por 4 y 11 espacios. La letra de la posición que ocupe la letra A (A = 0) será entonces la letra clave correspondiente.

Page 363: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 362

Cadenas repetidas en ataque de KasiskiSea el criptograma C de 404 caracteres que vamos a criptoanalizar el siguiente:PBVRQ VICAD SKAÑS DETSJ PSIED BGGMP SLRPW RÑPWY EDSDE ÑDRDP CRCPQ MNPWKUBZVS FNVRD MTIPW UEQVV CBOVN UEDIF QLONM WNUVR SEIKA ZYEAC EYEDS ETFPHLBHGU ÑESOM EHLBX VAEEP UÑELI SEVEF WHUNM CLPQP MBRRN BPVIÑ MTIBV VEÑIDANSJA MTJOK MDODS ELPWI UFOZM QMVNF OHASE SRJWR SFQCO TWVMB JGRPW VSUEXINQRS JEUEM GGRBD GNNIL AGSJI DSVSU EEINT GRUEE TFGGM PORDF OGTSS TOSEQOÑTGR RYVLP WJIFW XOTGG RPQRR JSKET XRNBL ZETGG NEMUO TXJAT ORVJH RSFHVNUEJI BCHAS EHEUE UOTIE FFGYA TGGMP IKTBW UEÑEN IEEU.

Entre otras, se observan las siguientes cadenas (subrayadas) en el criptograma:3 cadenas GGMP, separadas por 256 y 104 posiciones.2 cadenas YEDS, separadas por 72 espacios.2 cadenas HASE, separadas por 156 espacios.2 cadenas VSUE, separadas por 32 espacios.

Luego el período de la clave puede ser mcd (256, 104, 72, 156, 32) = 4. La clave tendrá cuatro caracteres, por lo tanto tomaremos del criptograma el carácter 1º, el 5º, el 9º, etc. para formar el primer subcriptograma CA; luego el 2º, el 6º, el 10º, etc. para formar el subcriptograma CB, y lo mismo para subcriptogramas CC y CD.

Page 364: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 363

Paso a cifrado monoalfabético en KasiskiTenemos ahora 4 subcriptogramas de sólo 101 letras c/u (muy importante tenerlo en cuenta en las estadísticas) que han sido cifrados con la misma letra de la clave:

CA = PQAAEPDMRÑEEDCNUSRIECNIONSAAETLUOLAUIEULMNIIEAAOOLUMNARSOMRSISERNAISIRTMDTOORLIORRENENOAVSNIAEOFAMTEI

CB = BVDÑTSBPPPDÑPPPBFDPQBUFNUEZCDFBÑMBEÑSFNPBBÑBÑNMKDPFQFSJFTBPUNJMBNGDUNUFPFSSÑRPFTPJTBTETTJFUBSUTFTPBÑE

CC = VISSSIGSWWSDCQWZNMWVOEQMVIYESPHEEXEEEWMQRPMVISTMSWOMOEWQWJWEQEGDISSETEGOOSETYWWGQSXLGMXOHHECEEIGGIWEE

CD = RCKDJEGLRYDRRMKVVTUVVDLWRKEYEHGSHVPLVHCPRVTVDJJDEIZVHSRCVGVXRUGGLJVEGEGRGTQGVJXGRKRZGUJRRVJHHUEYGKUNU

La frecuencia relativa observada en cada uno de los subcriptogramas es:A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

12 0 2 3 12 1 0 0 11 0 0 5 6 9 1 10 2 1 9 7 4 5 1 0 0 0 0

0 14 1 6 4 12 1 0 0 4 1 0 3 6 8 0 14 2 1 6 9 7 1 0 0 0 1

0 0 2 2 18 0 7 3 7 1 0 1 7 1 0 6 2 6 1 12 3 0 4 12 3 2 1

0 0 3 5 7 0 12 6 1 7 5 4 1 1 0 0 2 1 13 2 3 6 14 1 2 3 2

CACBCCCD

Luego, la letra más frecuente del subcriptograma debería corresponder a la letra E del texto en claro, la segunda a la letra A y la tercera a la letra O.

Page 365: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 364

La regla AEO en el ataque de Kasiski• Si la posición relativa de la letra A es el valor 0, entonces la letra E está

cuatro espacios a la derecha de la A (m+4 mod 27) y la letra O está 15 espacios a la derecha de la letra A (m+15 mod 27) y a 11 de la letra E.

• Buscaremos en cada subcriptograma Ci las tres letras más frecuentes y que cumplan además con esa distribución: 0 → +4 → +11 mod 27.

• Es suficiente contar con estas tres letras para que el ataque prospere. No obstante, podemos afinar un poco más el ataque si tomamos en cuenta la siguiente letra frecuente en castellano S, en la posición (m+19) mod 27.

En el ejemplo para CA se observa que la única solución que cumple con esto es la que coincide la AEO (12, 12, 10) luego la letra clave sería la A. Para CB elegimos BFP (14, 12, 14) por lo que la letra clave sería B. Para CC elegimos EIS (18, 7, 12) por lo que la letra clave sería E. Para CDelegimos RVG (13, 14, 12) por lo que la letra clave sería R.Con la clave K = ABER obtenemos “Para que la cosa no me sorprenda...”. Al ser éste un texto largo y con sentido, hemos encontrado la clave . (artículo del periodista Andrés Aberasturi sobre la Navidad, España, año 1995)

Page 366: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 365

El índice de coincidencia IC

El estudio del índice IC queda fuera del contexto de estos apuntes. Si bien tiene relación con el número de alfabetos, no es efectivo como Kasiski.

26IC = Σ pi

2 para castellano mod 27: IC = pA2 + pB

2 + ... + pZ2 = 0,072

i=0

Si el IC es menor que 0,5 es muy probable que no se trate de un cifradormonoalfabético sino polialfabético con un periodo 2 o mayor. Así, cuando encontramos una longitud L de la clave por el método de Kasiski y rompemos el criptograma en L subcriptogramas, aplicando el concepto del índice de coincidencia IC podemos comprobar que cada uno de ellos se trata efectivamente de un cifrado monoalfabético cuando para cada subcriptograma este valor se acerca a 0,072 o lo supera. En el ejemplo anterior, una vez roto el criptograma en cuatro tenemos: ICCA = 0,080; ICCB = 0,091; ICCC = 0,083; ICCD = 0,082 ... perfecto

Page 367: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 366

Cifrador poligrámico de PlayfairLos cifrados anteriores se hacían carácter a carácter, es decir eran monográmicos. Para aumentar la seguridad de la cifra y romper las estadísticas, podemos cifrar por poligramas, bloques de caracteres.Un cifrador inventado a finales del siglo XIX es el de Playfair que trabaja con una matriz de 5x5 letras, cifrando por digramas. Si el texto en claro tiene un número impar de elementos, se rellena con una letra preestablecida, por ejemplo la letra X.

ZYXWVUTSRQPON/ÑMLKI/JHGFEDCBA • Si M1M2 están en la misma fila, C1C2

son los dos caracteres de la derecha.• Si M1M2 están en la misma columna,

C1C2 son los dos caracteres de abajo.• Si M1M2 están en filas y columnas

distintas, C1C2 son los dos caracteres de la diagonal, desde la fila de M1.

Page 368: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 367

Ejemplo de cifra con Playfair

Si la clave K = BEATLES y eliminamos la letra Ñ (inglés), cifre el mensaje M = WITH A LITTLE HELP FROM MY FRIENDS.

ZYXWVURQPONMKI/JHGFDCSLTAEB

M = WI TH AL IT TL EH EL PF RO MX MY FR IE ND SXC = EP BM TB ME LB BI AB RC UP KY RT MY PC KG DV

Estos sistemas también son criptoanalizables pues en el criptograma C persisten algunas propiedades del lenguaje; en este caso la distribución de digramas típicos; por ejemplo en el castellano en, de, mb, etc.

Se rompe la doble MM agregando una

X y se rellena al final también con X

Page 369: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 368

El cifrador de matrices de Hill

En 1929 el matemático Lester Hill propone un sistema de cifra usando una matriz como clave, cifrando Ngramas de forma que:

C1 k11 k12 k13 ... k1N M1C2 k21 k22 k23 ... k2N M2C3 k31 k32 k33 ... k3N M3.. .. .. .. .. ..CN kN1 kN2 kN3 ... kNN MN

= X mod n

La matriz clave K debe tener inversa K-1 en el cuerpo de cifra n. Luego, como K-1 = TADJ(K)/|K| mod n, en donde ADJ(K) es la matriz adjunta, T es la traspuesta y |K| el determinante, este último valor |K| no podrá ser cero ni tener factores en común con n puesto que está en el denominador (concepto de inverso ya visto).Si el texto en claro no es múltiplo del bloque N, se rellena concaracteres predeterminados, por ejemplo la letra X o la Z.

Page 370: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 369

Ejemplo de cifrado de Hill

Sea M = AMIGO CONDUCTOR y la clave K la que se muestra:C1 16 4 11 0C2 8 6 18 12C3 15 19 15 8

= X mod 27

M = AMI GOC OND UCT ORZC1 = (16∗0 + 4∗12 + 11∗8) mod 27 = 136 mod 27 = 1 = BC2 = (8∗0 + 6∗12 + 18∗8) mod 27 = 216 mod 27 = 0 = AC3 = (15∗0 + 19∗12 + 15∗8) mod 27 = 348 mod 27 = 24 = XC = BAX PMA BJE XAF EUM (compruebe Ud. los demás trigramas)

K = PELIGROSO será la clave simbólica. Se cifrará el primer trigrama: AMI = 0, 12, 8.

Para descifrar encontramos K-1 = inv (K, 27) = K-1 = TADJ(K)/|K| mod n|K| = 16(6∗15 - 19∗18) – 4(8∗15 - 15∗18) + 11 (8∗19 - 15∗6) mod 27 = 4Encontramos luego la matriz adjunta de K, la trasponemos cambiando filas por columnas y la multiplicamos por inv (|K|, 27) = inv (4, 27) = 7 con lo que se obtiene la matriz que se indica (hágalo Ud.)

Page 371: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 370

Ejemplo de descifrado de Hill

18 26 15M = K-1 x C mod n y K-1 = 24 6 13

11 24 10

C = BAX PMA BJE XAF EUM y la clave K-1 es la que se muestra:M1 18 26 15 1M2 24 6 13 0M3 11 24 10 24

= X mod 27 Descifrado del primer trigramadel criptograma: BAX = 1, 0, 24.

C = BAX PMA BJE XAF EUMM1 = (18∗1 + 26∗0 + 15∗24) mod 27 = 378 mod 27 = 0 = AM2 = (24∗1 + 6∗0 + 13∗24) mod 27 = 336 mod 27 = 12 = MM3 = (11∗1 + 24∗0 + 10∗24) mod 27 = 251 mod 27 = 8 = IM = AMI GOC OND UCT ORZ (compruebe Ud. los demás trigramas)

Page 372: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 371

¿Es seguro el cifrador de Hill?

Si con el sistema de Hill se cifran bloques de 8 caracteres, incluso en un cuerpo tan pequeño como n = 27 el espacio de claves aumenta de forma espectacular, comparable con DES.Si el módulo de cifra es un primo p, entonces el número de claves válidas es cercano al máximo posible: px donde x = d2, con d el tamaño de N-grama o de la matriz clave.No obstante, el sistema no es seguro. Debido a su linealidad será muy fácil hacer un ataque con texto claro conocido según el método de Gauss Jordan y encontrar así la matriz clave K.Esto es debido a que aparecen los llamados vectores unitarios en el criptograma o en el texto en claro, o bien los obtenemos aplicando este método.

Page 373: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 372

Ataque al cifrado de Hill por Gauss JordanEl método consiste en escribir una matriz 2N-grámica con los elementos del texto en claro y los elementos del criptograma. En esta matriz realizamos operaciones lineales (multiplicar filas por un número y restar filas entre sí) con el objeto de obtener los vectores unitarios.Por ejemplo podemos romper la matriz clave K teniendo:M = ENU NLU GAR DEL AMA NCH ADE CUY ONO ...C = WVX IDQ DDO ITQ JGO GJI YMG FVC UÑT ...

E N U W V X 4 13 21 23 22 24N L U I D Q 13 11 21 8 3 17G A R D D O 6 0 18 3 3 15D E L I T Q 3 4 11 8 20 17A M A J G O = 0 12 0 9 6 15N C H G J I 13 2 7 6 9 8A D E Y M G 0 3 4 25 12 6C U Y F V C 2 21 25 5 22 2O N O U Ñ T 15 13 15 21 14 20

Page 374: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 373

Operaciones en la matriz de Gauss Jordan

Vamos a dejar en la primera columna un número uno en la fila primera y todas las demás filas un cero. Luego multiplicamos el vector (4 13 21 | 23 22 24) por el inv (4, 27) = 7. Así obtenemos 7(4 13 21 | 23 22 24) mod 27 = (1 10 12 | 26 19 6). Si esto no se puede hacer con la primera fila movemos los vectores. Hecho estovamos restando las filas respecto de esta primera como se indica:

a) 2ª fila = 2ª fila – 13∗1ª fila mod 27b) 3ª fila = 3ª fila – 6∗1ª fila mod 27c) 4ª fila = 4ª fila – 3∗1ª fila mod 27d) 5ª fila ya tiene un 0 e) 6ª fila = 6ª fila – 13∗1ª fila mod 27f) 7ª fila ya tiene un 0g) 8ª fila = 8ª fila – 2∗1ª fila mod 27h) 9ª fila = 9ª fila – 15∗1ª fila mod 27

4 13 21 23 22 2413 11 21 8 3 176 0 18 3 3 153 4 11 8 20 170 12 0 9 6 1513 2 7 6 9 80 3 4 25 12 62 21 25 5 22 215 13 15 21 14 20

Page 375: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 374

Matriz clave de Hill criptoanalizadaRepetimos este procedimiento ahora para algún vector en cuya segunda columna tenga un número con inverso en 27 y lo mismo para la tercera columna, moviendo si es preciso los vectores.

Como la mitad izquierda de la matriz 2N era el texto el claro, la parte derecha de la matriz con vectores unitarios corresponderá a la traspuesta de la clave.

1 0 0 2 5 70 1 0 3 5 80 0 1 4 6 90 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

2 3 4K = 5 5 6

7 8 9⇒

Compruebe que la clave es la utilizada en este cifrado.

Page 376: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 375

El cifrador de Vernam• En 1917 Gilbert Vernam propone un cifrador por sustitución binaria con

clave de un solo uso (one-time pad) basado en el código Baudot de 5 bits:– La operación de cifra es la función XOR.– Usa una secuencia cifrante binaria y aleatoria S que se obtiene a

partir de una clave secreta K compartida por emisor y receptor.– El algoritmo de descifrado es igual al de cifrado por la involución de

la función XOR.– La clave será tan larga o más que el mensaje y se usará una sola vez.

Criptograma MM

SS

Clave K Clave K

AlgoritmoDeterminístico

AlgoritmoDeterminístico⊕ ⊕

secuencia cifrante

MENSAJE MENSAJE

C

Page 377: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 376

Ejemplo de cifrado de Vernam

Usando el código Baudot (vea los códigos en la tabla de Baudot que encontrará en el Capítulo 21) se pide cifrar:M = BYTESK = VERNAMSolución:B⊕V = 11001⊕11110 = 00111 = UY⊕E = 10101⊕00001 = 10100 = HT⊕R = 10000⊕01010 = 11010 = GE⊕N = 00001⊕01100 = 01101 = FS⊕A = 00101⊕00011 = 00110 = IC = UHGFI

El esquema de Vernam es el único cifrador matemáticamenteseguro y, por tanto, imposible de criptoanalizar pues la clave K se usa una sola vez (one-time pad), es aleatoria y tanto o más larga que el propio mensaje. En este caso, no cabe ningún ataque por estadísticas del lenguaje o por correlación de bits.

http://www.pro-technix.com/information/crypto/pages/vernam_base.html

Fin del capítulo

Page 378: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 377

Cuestiones y ejercicios (1 de 3)LAS SIGUIENTES PREGUNTAS ESTÁN RELACIONADAS CON ESTOS APUNTES, EL LIBRO ELECTRÓNICO DE CRIPTOGRAFÍA CLÁSICA Y EL SOFTWARE DE PRÁCTICAS CRIPTOCLÁSICOS QUE SE HA COMENTADO.

1. ¿Qué significa cifrar por sustitución y qué por transposición?2. ¿Por qué que el método escítala es un cifrado por permutación?3. ¿Cuál es la peor debilidad que tiene el sistema de cifra del César?4. Ciframos el mensaje M = HOLA QUE TAL con un desplazamiento

de 6 caracteres, ¿cuál es el criptograma? ¿Y si desplazamos 27?5. ¿Por qué no podemos cifrar en el cuerpo n = 27 con la función de

cifra C = (12M + 5) mod n? ¿Qué condición deberá cumplirse?6. ¿Cómo podríamos atacar un sistema de cifra tipo César? ¿Y si la

cifra es de tipo afín como el de la pregunta anterior?

Page 379: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 378

Cuestiones y ejercicios (2 de 3)

7. Cifre el mensaje M = VAMOS A VERLO con un sistema afín siendo el valor a = 5 y b = 2, usando sólo operaciones modulares.

8. En un sistema de cifra de Vigenère la clave a usar puede ser CEROo bien COMPADRE, ¿cuál de las dos usaría y por qué?

9. Cifre según Vigenère el mensaje M = UN VINO DE MESA con la clave K = BACO sin usar la tabla, sólo con operaciones modulares.

10. ¿Por qué se dice que Vigenère es un cifrador polialfabético?11. ¿Cómo podríamos atacar un cifrado polialfabético periódico?12. Cifre con el método de Vernam binario en mensaje M = VIDA y

clave K = TACOS suponiendo texto ASCII. ¿Y si la clave es ahora K = TACO? ¿Cómo se comporta este cifrador si K es aleatoria?

13. ¿Qué significa cifrar por homófonos? ¿Qué es el cifrado de Beale?

Page 380: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 379

Cuestiones y ejercicios (3 de 3)

14. Nombre dos máquinas de cifrar que se usaron en la Segunda GuerraMundial y diga de forma sencilla cómo funcionaban.

15. Se cifra por permutaciones usando para ello una distribución en columnas con clave. ¿Qué similitud tendrá luego este sistema de cifra con algunas operaciones hechas en el DES?

16. Cifre con Hill digrámico el mensaje mod 27 M = ADIOS AMIGO. ¿Qué matriz simbólica puede usar: GATO, GOTA, MISA o MESA?

17. Cifre y descifre con la matriz trigrámica simbólica PELIGROSO el mensaje HOY ES UN HERMOSO DIA.

18. Si K puede ser tan grande, ¿por qué no es segura la cifra de Hill?19. ¿Qué significan los vectores unitarios? ¿Es fácil encontrarlos?20. ¿Cómo funciona el ataque de Gauss Jordan? Obtenga la matriz clave

del ejercicio 17 mediante Gauss Jordan.

Page 381: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 380

Prácticas del tema 9 (1/4)Software CripClas: http://www.criptored.upm.es/software/sw_m001c.htm

1. Con el algoritmo del César, b = 3, cifre, descifre y criptoanalice el mensaje M = En el cifrado del César el criptoanálisis es muy elemental.

2. Con el algoritmo de cifra por multiplicación (decimación) con a = 5, cifre, descifre y criptoanalice, según estadísticas del lenguaje, el mensaje M = El cifrado por multiplicación exige la existencia del inverso en el cuerpo.

3. Con el algoritmo de cifra afín (a = 7, b = 10) cifre, descifre y criptoanalice, según estadísticas del lenguaje, el mensaje M = Si tenemos un texto de unos cuantos caracteres, el ataque al criptograma es muy sencillo.

4. Con el algoritmo de Vigenère cuya clave es K = GOL, cifre, descifre y criptoanalice el mensaje M = El jugador se adentró al área y de un golpe preciso introdujo el balón en la portería de aquel desgraciado portero. Era el presagio de lo que iba a ser aquella fatídica tarde para Manolo, justo en el día en que debutaba en aquel estadio.

Page 382: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 381

Prácticas del tema 9 (2/4)

5. Cifre y descifre en modo clave continua el mensaje M = Aquí se suma carácter a carácter la cadena de entrada con la clave siendo K = La clave será un texto de longitud igual o mayor que el texto en claro.

6. Cifre con Vernam el mensaje M con la clave numérica K. M = Una cifra muy interesante. K = 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0. Al copiar la clave, respete los espacios en blanco.

7. Cifre con Vernam binario el mensaje M de 18 caracteres con la clave K de 26 caracteres. M = una cifra por bits. K = CIFRADOR BINARIO DE VERNAM. Compruebe la cifra del los tres primeros caracteres.

8. Cifre con Playfair el mensaje M usando la clave K. M = Un cifrador digrámico. K = JUEGO LIMPIO. Se eliminan K y W de la matriz. Observe la matriz de cifra. Descifre el criptograma y observe el relleno.

9. Cifre con Hill digrámico mod 27 el mensaje M = UN CIFRADO DE HILLcon la clave k11 = 7; k12 = 4; k21 = 13; k22 = 17. Descifre el criptograma.

Page 383: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 382

Prácticas del tema 9 (3/4)Software Hill: http://www.criptored.upm.es/software/sw_m001i.htm

1. Calcule el determinante y la inversa para comprobar si las siguientes matrices digrámicas son válidas para cifrar en el cuerpo 27:

k11 = 7; k12 = 10; k21 = 12; k22 = 19.k11 = 8; k12 = 5; k21 = 2; k22 = 8.k11 = 18; k12 = 15; k21 = 7; k22 = 8.

2. Calcule el determinante y la inversa para comprobar si las siguientes matrices trigrámicas son válidas para cifrar en el cuerpo 27:

k11 = 4; k12 = 12; k13 = 9; k21 = 5; k22 = 0; k23 = 13; k31 = 6; k32 = 8; k33 = 3.k11 = 3; k12 = 12; k13 = 9; k21 = 5; k22 = 0; k23 = 13; k31 = 6; k32 = 8; k33 = 3.

3. Calcule la inversa de la siguiente matriz pentagrámica en modulo 27: k11 = 3; k12 = 2; k13 = 1; k14 = 0; k15 = 2; k21 = 5; k22 = 5; k23 = 3; k24 = 7;k25 = 1; k31 = 8; k32 = 7; k33 = 6; k34 = 5; k35 = 5; k41 = 4; k42 = 9; k43 = 6;k44 = 8; k45 = 3; k51 = 3; k52 = 9; k53 = 8; k54 = 7; k55 = 3.

Page 384: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 9: Sistemas de Cifra Clásicos Página 383

Prácticas del tema 9 (4/4)

4. Para la matriz del ejercicio anterior, calcule el determinante y la inversa al trabajar en módulo 37 y en módulo 191.

5. Guarde la matriz clave que se indica con el nombre pract14libro.mtr. Abra ahora el editor del programa y guarde como pract14libro.txt el siguiente texto M = AHORA VAMOS A CIFRAR POR TRIGRAMAS.k11 = 1; k12 = 1; k13 = 1; k21 = 3; k22 = 5; k23 = 7; k31 = 2; k32 = 1; k33 = 2.

6. Descifre el criptograma anterior. Observe el relleno introducido.7. Criptoanalice la matriz de cifra anterior mediante Gauss-Jordan, indicando

que desea crear un archivo de seguimiento con nombre pract14libroataque. Una vez que haya encontrado la matriz clave de cifra, abra este archivo y observe las operaciones que el programa ha tenido que hacer para ello.

8. Cree matrices clave y documentos para cifrar, descifrar y criptoanalizar en módulo 191 y observe las opciones que le entrega el programa.

Page 385: Seguridad Informatica

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 35 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Curso de Seguridad Informática y Criptografía © JRA

v 4.1

Capítulo 10Introducción a la Cifra Moderna

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Page 386: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 385

• Los criptosistemas modernos, cuya cifra en bits está orientada a todos los caracteres ASCII o ANSI, usan por lo general una operación algebraica en Zn, un cuerpo finito, sin que necesariamente este módulo deba corresponder con el número de elementos del alfabeto o código utilizado. Es más, nunca coinciden: siempre será mucho mayor el cuerpo de trabajo que el alfabeto usado.

• Su fortaleza se debe basar en la imposibilidad computacional de descubrir una clave secreta única, en tanto que el algoritmo de cifra es (o al menos debería serlo) público.

• En la siguiente dirección web, encontrará un amplio compendio desistemas de cifra y criptografía.

Un par de ideas básicas

Conceptos elementales

http://en.wikipedia.org/wiki/Category:Cryptography

Page 387: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 386

Clasificación de los criptosistemasMÉTODOS DE CIFRA MODERNAMÉTODOS DE CIFRA MODERNA

CIFRADO EN FLUJO CIFRADO EN BLOQUE

A5; RC4CLAVE SECRETACLAVE PÚBLICA

DES; T-DES; CAST;IDEA; AES; RC5 ...EXPONENCIACIÓN SUMA/PRODUCTO

Cifrado propio de la información en una

sesión en Internet o en una red. También se usa en cifrado local.

Uso en intercambio de clave y en firma digital.

CE: intercambio clave y firma digital. Mochilas: protección de SW mediante dispositivo HW.

Telefonía móvil, Internet y WLAN.

y algunos ejemplos...

RSA; ElGamal Curvas Elípticas/Mochilas

Page 388: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 387

Usa el concepto de cifra propuesto por Vernam, que cumple con las ideas de Shannon sobre sistemas de cifra con secreto perfecto, esto es:

a) El espacio de las claves es igual o mayor que el espacio de los mensajes.

b) Las claves deben ser equiprobables.c) La secuencia de clave se usa una sola vez y luego

se destruye (sistema one-time pad).

Una duda: ¿Será posible satisfacer la condición a)?

Introducción al cifrado de flujo

Page 389: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 388

¿Espacio de Claves ≥ Espacio de Mensajes?

1) La secuencia de bits de la clave deberá enviarse al destinatario a través de un canal que sabemos es inseguro (recuerde que aún no conoce el protocolo de intercambio de clave de Diffie y Hellman).

2) Si la secuencia es “infinita”, desbordaríamos la capacidad del canal de comunicaciones.

Espacio de claves y del mensaje

¿Qué solución damos a este problema?

Page 390: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 389

La solución está en generar una secuencia pseudoaleatoriacon un algoritmo determinístico a partir de una semilla de n bits. Podremos generar así secuencias con períodos de 2n

bits, un valor ciertamente muy alto puesto que n debe ser del orden de las centenas. Esta semilla es la que se enviará al receptor mediante un sistema de cifra de clave pública y un algoritmo de intercambio de clave que veremos en próximos capítulos y así no sobrecargamos el canal.

El concepto de semilla en un generador

Si por un canal supuestamente seguro enviamos esa clave secreta tan larga ... ¿por qué no enviamos directamente el mensaje en claro y nos dejamos de historias? ☺

Page 391: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 390

El mensaje en claro se leerá bit a bit.Se realizará una operación de cifra, normalmente la función XOR, con una secuencia cifrante de bits Si que debe cumplir ciertas condiciones:

– Tener un período muy alto (ya no infinito)– Tener propiedades pseudoaleatorias (ya no aleatorias)

XOR

Secuencia cifrante Si

Mensaje MBits del Criptograma

XOR Mensaje M

Secuencia cifrante Si

C C

Técnica de cifra en flujo

Page 392: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 391

El mensaje se agrupa en bloques, por lo general de 8 ó 16 bytes (64 ó 128 bits) antes de aplicar el algoritmo de cifra a cada bloque de forma independiente con la misma clave.

Introducción a la cifra en bloque

Cifrado con Clave Secreta

Hay algunos algoritmos muy conocidos por su uso en aplicaciones bancarias (DES), correo electrónico (IDEA, CAST), comercio electrónico (Triple DES) y el nuevo estándar (AES Rijndael).

Page 393: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 392

Si el bloque fuese muy pequeño, por ejemplo uno o dos bytes, esto facilitaría un ataque por estadísticas del lenguaje. Se trataría de un cifrado por monogramas o digramas muy débil.

¿Qué tamaño de bloque usar?

Pero si el bloque fuese muy grande, por ejemplo cientos de bytes, el sistema sería lento en el tratamiento del texto en claro y no sería bueno su rendimiento.

Los valores indicados de 64 y 128 bits son un término medio que satisface ambas condicionantes: es la típica situación de compromiso que tanto vemos en ingeniería.

Page 394: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 393

a) Mala gestión de claves. Crece el número de claves secretas en una proporción igual a n2 para un valor n grande de usuarios lo que imposibilita usarlo .

b) Mala distribución de claves. No existe posibilidad de enviar, de forma segura y eficiente, una clave a través de un medio o canal inseguro .

c) No tiene firma digital. Aunque sí será posible autenticar el mensaje mediante una marca, no es posible firmar digitalmente el mensaje, al menos en un sentido amplio y sencillo .

Tres debilidades en la cifra simétrica

Page 395: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 394

a) Mala gestión de clavesb) Mala distribución de clavesc) No permite firma digital

¿Tiene algo de bueno la cifra en bloque con clave secreta?

Sí: la velocidad de cifra es muy alta y por ello se usarápara realizar la función de cifra de la información. Además, con claves de sólo unas centenas de bits obtendremos una alta seguridad pues la no linealidad del algoritmo hace que en la práctica el único ataque factible sea por fuerza bruta.

¿Por qué usamos entonces clave secreta?

Page 396: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 395

• Comienza a ser ampliamente conocido a través de su aplicación en los sistemas de correo electrónico seguro (PGP y PEM) permitiendo cifrar e incluir una firma digital adjunta al documento o e-mail enviado y también en los navegadores Web.

• Cada usuario tendrá dos claves, una secreta o privada y otra pública, inversas entre sí dentro de un cuerpo.

• Usan las funciones unidireccionales con trampa.

Cifrado asimétrico

Page 397: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 396

Son funciones matemáticas de un solo sentido (one-way functions) y que nos permiten usar la función en sentido directo o de cálculo fácil para cifrar y descifrar (usuarios legítimos) y fuerza el sentido inverso o de cálculo difícil para aquellos impostores, hackers, etc. que lo que desean es atacar o criptoanalizar la cifra.

f (M) = C es siempre fácil.f -1(C) = M es difícil salvo que se tenga la trampa.

Funciones unidireccionales con trampa

Page 398: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 397

Cálculo directo: producto de dos primos grandes p∗q = nCálculo inverso: factorización de número grande n = p∗q

Problema de la factorizaciónProblema de la factorización

Problema del logaritmo discretoProblema del logaritmo discreto

Cálculo directo: exponenciación discreta β = αx mod nCálculo inverso: logaritmo discreto x = logα β mod n

Funciones con trampa más usadas

Page 399: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 398

Problema de la mochilaProblema de la mochila

Cálculo directo: sumar elementos de mochila con trampaCálculo inverso: sumar elementos de mochila sin trampa

Problema de la raíz discretaProblema de la raíz discreta

Cálculo directo: cuadrado discreto x = a∗a mod nCálculo inverso: raíz cuadrada discreta a = √x mod n

Otras funciones con trampa

Page 400: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 399

Claves: eB, nB, dBClaves: eB, nB, dBClaves: eA, nA, dAClaves: eA, nA, dA

Benito Adela

C = EeA(N) mod nA

eB, nB: públicas

dB: privada

eA, nA: públicas

dA: privada

ESTOS SERÁN NUESTROS PROTAGONISTAS

Si Benito realiza la operación con las claves públicas de Adela (eA, nA), la

información que se transmite mantiene la

confidencialidad: sólo ella puede verla.

Cifrado con clave pública de destino

eB y dB son inversas dentro de un cuerpo nB

eA y dA son inversas dentro de un cuerpo nA

Origen Destino

¿A qué es mucho más lógico y familiar usar estos nombres y no Alice y Bob?

Page 401: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 400

Cifrado: Benito envía un valor N cifrado a Adela

Claves: eB, nB, dB Claves: eA, nA, dA

Benito AdelaC = EeA(N) mod nA

Descifrado:N = EdA[EeA(N)] mod nA EdA y EeA son inversos

Se obtiene confidencialidad del mensaje

Operación de cifra con clave de destino

Claves públicas

Clave privada

Page 402: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 401

Si en vez de utilizar la clave pública de destino, el emisor usa su propia clave pública, la cifra no tiene sentido bajo el punto de vista de sistemas de clave pública ya que sólo él o ella sería capaz de descifrar el criptograma (deshacer la operación de cifra) con su propia clave privada.

¿Y si usamos la clave pública de origen?

Esto podría usarse para cifrar de forma local uno o varios ficheros, por

ejemplo, pero para ello ya están los sistemas de clave secreta, mucho más

rápidos y, por tanto, más eficientes.

Page 403: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 402

Si ahora el emisor usa su clave privada en la cifra sobre el mensaje, se obtiene una firma digital que le autentica como emisor ante el destinatario y, además, a este último le permitirá comprobar la integridad del mensaje.

¿Y si usamos la clave privada de origen?

Obviamente, el emisor nunca podrá realizar la cifra del mensaje M con la clave privada del receptor.

Veamos antes un ejemplo de algoritmo que usa un par de claves entre dos usuarios...

Page 404: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 403

PROTOCOLO: A envía a B un mensaje M

1 A pone el mensaje M en la caja, la cierra con su llave azul y la envía a B.

2 B recibe la caja, la cierra con su llave roja y envía a A la caja con las dos cerraduras .

3 A recibe la caja, quita su llave azul y devuelve a B la caja sólo con la cerradura de roja .

4 B recibe la caja, quita su cerradura roja y puede ver el mensaje M que A puso en su interior.

El algoritmo del mensaje en la caja

Page 405: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 404

¿Va todo bien en el algoritmo de la caja?

Durante la transmisión, el mensaje está protegido de cualquier intruso por lo que existe integridad del mensaje y hay protección contra una ataque pasivo.

Pero el usuario B no puede estar seguro si quien le ha enviado el mensaje M es el usuario A o un impostor. Por lo tanto el algoritmo así implementado no nos permite comprobar la autenticidad del emisor pues no detecta la suplantación de identidad. No obstante...

Modificando un poco el algoritmo anterior, sí podremos asegurar

tanto la integridad del mensaje como la

autenticidad de emisor.

Page 406: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 405

Claves: eB, nB, dBClaves: eB, nB, dBClaves: eA, nA, dAClaves: eA, nA, dA

Benito Adela

C = EdB(N) mod nB

eB, nB: públicas

dB: privada

eA, nA: públicas

dA: privada

Si ahora Benito realiza la operación de cifra con su clave privada dB en el

cuerpo nB Adela será capaz de comprobar esa cifra ya que posee (entre otras) la clave pública de Benito. Comprueba así

tanto la autenticidad del mensaje como del autor.

Cifrado con clave privada del origen

eB y dB son inversas dentro de un cuerpo nB

eA y dA son inversas dentro de un cuerpo nA

Origen Destino

Page 407: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 406

Firma digital: Benito firma un valor N que envía a Adela

Claves: eB, nB, dB Claves: eA, nA, dA

Benito AdelaC = EdB(N) mod nB

Comprobación:N = EeB[EdB(N)] mod nB EdB y EeB son inversos

Se comprueba la integridad del origen

Operación de cifra con clave de origen

Clave privada

Claves públicas

Page 408: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 407

Uso de la criptografía asimétrica

• Estas dos operaciones de cifra son posibles debido a la característica intrínseca de los sistemas de clave pública: el uso de una clave privada (secreta) inversa de una pública.¿Qué aplicación tendrán entonces los sistemas de criptografía de clave pública o asimétrica?

• Usando la clave pública del destino se hará el intercambio de claves de sesión de una cifra con sistemas simétricos (decenas acentenas de bits).

• Usando la clave privada de origen, se firmará digitalmente un resumen (centenas de bits) del mensaje obtenido con una función hash.

• Observe que se hace hincapié en las “centenas de bits” dado que estos sistemas son muy lentos comparados con los simétricos.

Page 409: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 408

Gestión de clavesClave Secreta Clave PúblicaHay que memorizar Sólo es necesarioun número muy alto memorizar la clavede claves: → n2. privada del emisor.

En cuanto a la gestión de claves, serán mucho más eficientes los sistemas de cifra asimétricos pues los simétricos no

permiten una gestión lógica y eficiente de estas claves: en los asimétricos sólo es necesario memorizar la frase o

palabra de paso para acceder a la clave privada.

Comparativa: la gestión de claves

Page 410: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 409

Longitud y espacio de clavesClave Secreta Clave PúblicaDebido al tipo de Por el algoritmo usadocifrador usado, la en la cifra, la claveclave será del orden será del orden de milesde centenas de bits. de bits.

En cuanto al espacio de claves, no son comparables los sistemas simétricos con los asimétricos. Para atacar un sistema asimétrico no se buscará en todo el espacio de

claves como debería hacerse en los sistemas simétricos.

≥ 128 ≥ 1.024

Comparativa: el espacio de claves

Page 411: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 410

Vida de una claveClave Secreta Clave PúblicaLa duración es muy La duración de la clavecorta pues casi pública, que la entregasiempre se usa como y gestiona un tercero,clave de una sesión. suele ser larga.

En cuanto a la vida de una clave, en los sistemas simétricos ésta es muchísimo menor que las usadas en los asimétricos. La clave de sesión es aleatoria,

en cambio la asimétrica es propia del usuario.

Segundos o minutos

Meses o un año

Comparativa: la vida de las claves

Page 412: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 411

Si en un sistema de clave secreta, ésta se usa como clave de una sesión que dura muy poco tiempo...

y en este tiempo es imposible romperla... ¿para qué preocuparse entonces?

La confidencialidad de la información tiene una caducidad. Si durante este tiempo alguien puede tener el criptograma e intentar un ataque por fuerza bruta, obtendrá la clave (que es lo menos importante) ...¡pero también el mensaje secreto!

Vida de la clave y principio de caducidad

... puede ser muy peligroso.Lo mismo ocurrirá si usamos la cifra simétrica para proteger algún archivo o archivos en nuestro computador.

Page 413: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 412

Condiciones de la autenticidad:

a) El usuario A deberá protegerse ante mensajes dirigidos a B que un tercer usuario desconocido Cintroduce por éste. Es la suplantación de identidad o problema de la autenticación del emisor.

b) El usuario A deberá protegerse ante mensajes falsificados por B que asegura haberlos recibido firmados por A. Es la falsificación de documento o problema de la autenticación del mensaje.

El problema de la autenticación

Page 414: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 413

AutenticaciónClave Secreta Clave PúblicaSe puede autenticar Al haber una claveel mensaje pero no pública y otra privada,al emisor de forma se podrá autenticar elsencilla y eficiente. mensaje y al emisor.

En cuanto a la autenticación, los sistemas simétricos tienen unaautenticación más pesada y con una tercera parte de confianza.

Los asimétricos permiten una firma digital verdadera, eficiente y sencilla, en donde la tercera parte de confianza es sólo presencial.

Comparativa: la autenticación de emisor

Page 415: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 414

Velocidad de cifraClave Secreta Clave PúblicaLa velocidad de La velocidad de cifracifra es muy alta. es muy baja. Se usaEs el algoritmo de para el intercambio decifra del mensaje. clave y la firma digital.

En cuanto a la velocidad de cifra, los sistemas simétricos son de 100 a 1.000 veces más rápidos que los asimétricos.

En SW la velocidad de cifra es más baja.

Cientos deM Bytes/seg

en HW

Cientos deK Bytes/seg

en HW

Comparativa: la velocidad de cifra

Page 416: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 415

• Confidencialidad• Autenticación parcial• Sin firma digital• Claves:

– Longitud pequeña– Vida corta (sesión)– Número elevado

• Velocidad alta

• Confidencialidad• Autenticación total• Con firma digital• Claves:

– Longitud grande– Vida larga– Número reducido

• Velocidad baja

Resumen comparativo de estas cifras

Cifrado Simétrico Cifrado Asimétrico

Page 417: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 416

La criptografía simétrica o de clave secreta usa una única clavepara cifrar en emisión y descifrar en destino.

La seguridad del sistema reside entonces en cuán segura sea dicha clave.

En la criptografía asimétrica cada usuario se crea un par de claves llamadas pública y privada, inversas entre sí dentro de un cuerpo finito, de forma que lo que hace una la otra lo deshace. Para cifrar se usa, por ejemplo, la clave pública de destino y para descifrar el destinatario hará uso de su clave privada.

La seguridad del sistema reside ahora en la dificultad computacional de encontrar la clave privada a partir de la clave pública.

Seguridad en la cifra simétrica y asimétrica

Fin del capítulo

Page 418: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 417

Cuestiones y ejercicios (1 de 2)

1. En un sistema de cifra se usa un cuerpo de trabajo n. ¿Cómo es el tamaño de ese cuerpo comparado con el tamaño del alfabeto usado?

2. ¿Cómo se clasifican los criptosistemas en función del tratamiento que hacemos del mensaje a cifrar?

3. ¿Cómo se clasifican los criptosistemas en función de tipo de clave que se usa en ambos extremos, emisor y receptor?

4. ¿Por qué se dice que un sistema es simétrico y el otro asimétrico?5. ¿Es posible cumplir 100% con la condición de cifrado de Vernam? 6. ¿Por qué en los cifradores de flujo se usa la misma función XOR en

el extremo emisor y en el extremo receptor? ¿Son inversas aquí las claves usadas para cifrar y descifrar?

7. Nombre y comente algunas debilidades de los sistemas de cifra enbloque con clave secreta.

Page 419: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 10: Introducción a la Cifra Moderna Página 418

Cuestiones y ejercicios (2 de 2)

8. Si ciframos un número con la clave pública del usuario receptor,¿qué cree Ud. que estamos haciendo?

9. ¿Por qué decimos que en un sistema asimétrico la gestión de claves es mucho mejor que en un sistema simétrico?

10. Nos entregan un certificado digital (certificación de clave pública) de 512 bits. ¿Es hoy en día un valor adecuado? ¿Por qué sí o no?

11. ¿Por qué decimos que con un sistema asimétrico es muy fácil generar una firma digital en emisión y comprobarla en destino?

12. Compare los sistemas simétricos y asimétricos en cuanto a su velocidad de cifra.

13. ¿Qué es un cifrado híbrido? ¿Por qué y cómo se usa la cifra híbrida en el intercambio de información segura por ejemplo en Internet?

14. ¿Qué relación hay entre vida de una clave y principio de caducidad?

Page 420: Seguridad Informatica

Capítulo 11Sistemas de Cifra en Flujo

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 51 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 421: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 420

Cifrador de flujo básico

• Recordando la propuesta de cifrador hecha por Vernam en 1917, los cifradores de flujo (sistemas con clave secreta) usarán:

– Un algoritmo de cifra basado en la función XOR.– Una secuencia cifrante binaria y pseudoaleatoria denominada

S y que se obtiene a partir una clave secreta K compartida por emisor y receptor, y un algoritmo generador determinístico.

– El mismo algoritmo para el descifrado debido el carácter involutivo de la función XOR.

Clave K Clave K

AlgoritmoDeterminístico

AlgoritmoDeterminístico⊕ ⊕

secuencia cifrante

MM

SS

MENSAJE MENSAJE

C

Operaciones ⊕ con bits

Page 422: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 421

Características de la secuencia cifrante SCondiciones para una clave binaria segura

• Período:– La clave deberá ser tanto o más larga que el mensaje. En la

práctica se usará una semilla K de unos 120 a 250 bits en cada extremo del sistema para generar períodos superiores a 1035.

• Distribución de bits:– La distribución de bits de unos (1s) y ceros (0s) deberá ser

uniforme para que represente a una secuencia pseudoaleatoria. Para ello deberá cumplir los postulados de Golomb:

Rachas de dígitos: uno o más bits entre dos bits distintos.Función de autocorrelación fuera de fase AC(k): desplazamiento de k bits sobre la misma secuencia Si.

http://ee.usc.edu/faculty_staff/bios/golomb.html

Page 423: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 422

Rachas de dígitos en una secuenciaRachas de una secuencia S de período T = 15

1 1 1 1 0 1 0 1 1 0 0 1 0 0 01 1 1 1 0 1 0 1 1 0 0 1 0 0 0

Rachas de 0s

Racha de 00s

Rachas de 1s

El próximobit será un 1

El bit anteriorera un 0

0 entre dos 1s

1 entre dos 0s

Racha de 1111s

Esta distribución tan particular se comentará más adelante...

11 entre dos 0s Racha de 000s

00 entre dos 1sRacha de 11s1111 entre dos 0s

000 entre dos 1s

Page 424: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 423

Distribución de las rachas de dígitos

Las rachas, es decir la secuencia de dígitos iguales entre dos dígitos distintos, deberán seguir una distribución estadística de forma que la secuencia cifrante Si tenga un comportamiento de clave aleatoria o pseudoaleatoria.

Para que esto se cumpla, es obvio que habrá mayor número de rachas cortas que de rachas largas como se observa en el ejemplo anterior.

Como veremos más adelante, esta distribución seguirá una progresión geométrica. Por ejemplo una secuencia Sipodría tener 8 rachas de longitud uno, 4 de longitud dos, 2 de longitud tres y 1 de longitud cuatro.

Page 425: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 424

Autocorrelación fuera de fase AC(k)

Función de autocorrelación:– Autocorrelación AC(k) fuera de fase de una secuencia

Si de período T desplazada k bits a la izquierda: AC(k) = (A - F) / T

Aciertos ⇒ bits iguales Fallos ⇒ bits diferentesEjemplo

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Si k = 1Si

1 1 1 0 1 0 1 1 0 0 1 0 0 0 1A = A=7; F=8

F = AC(1) = -1/15

Page 426: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 425

Autocorrelación fuera de fase constante

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0Si

Como ejercicio, compruebe que para esta secuencia cifrante Si la autocorrelación fuera de fase AC(k) para todos los valores de k (1 ≤ k ≤ 14) es constante e igual a -1/15. Esta característica seráimportante para que la clave sea considerada buena.

Es decir, para que una secuencia cifrante S podamos considerarlasegura y apropiada para una cifra, además de cumplir con la distribución de rachas vista anteriormente, deberá presentar una autocorrelación fuera de fase AC(k) constante.

Page 427: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 426

Imprevisibilidad e implementación de Si

• Imprevisibilidad:– Aunque se conozca una parte de la secuencia Si, la

probabilidad de predecir el próximo dígito no deberá ser superior al 50%.

– Esta característica se definirá a partir de la denominada complejidad lineal.

• Facilidad de implementación:– Debe ser fácil construir un generador de secuencia

cifrante con circuitos electrónicos y chips, con bajo coste, alta velocidad, bajo consumo, un alto nivel de integración, etc.

Page 428: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 427

Primer postulado de Golomb G1

Postulado G1:– Deberá existir igual número de ceros que de unos. Se

acepta como máximo una diferencia igual a la unidad.

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0S1

En la secuencia S1 de 15 bits, hay 8 unos y 7 ceros. Luego sí cumple con el postulado G1.

0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1S2

En la secuencia S2 de 16 bits, hay 7 unos y 9 ceros. Luego no cumple con el postulado G1.

Page 429: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 428

Significado del postulado G1

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0Si

¿Qué significa esto?

Si una secuencia Si como la indicada cumple con G1, quiere decir que la probabilidad de recibir un bit 1 es igual a la de recibir un bit 0, es decir un 50%.

Por lo tanto, a lo largo de una secuencia Si, independientemente de los bits recibidos con anterioridad, en media será igualmenteprobable recibir un “1” que un “0”, pues en la secuencia hay una mitad de valores “1” y otra mitad de valores “0”.

Page 430: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 429

Segundo postulado de Golomb G2

Postulado G2:– En un período T, la mitad de las rachas de Si serán de

longitud 1, la cuarta parte de longitud 2, la octava parte de longitud 3, etc.

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0Si

En la secuencia Si de 15 bits, había 4 rachas de longitud uno, 2 rachas de longitud dos, 1 racha de longitud tres y 1 racha de longitud cuatro. Este tipo de distribución en las rachas para períodos impares, es típica de las denominadas m-secuenciascomo veremos más adelante en el apartado generadores LFSR.

Las rachas de esta secuencia están en una diapositiva

anterior

Page 431: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 430

Significado del postulado G2

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0Si

¿Qué significa esto?

Si una secuencia Si como la indicada cumple con G2, quiere decir que la probabilidad de recibir un bit 1 o un bit 0, después de haber recibido un 1 o un 0 es la misma, es decir un 50%.Es decir, recibido por ejemplo un “1”, la cadena “10” deberá ser igual de probable que la cadena “11”. Lo mismo sucede con un 0 al comienzo, o bien un 00, 01, 10, 11, 000, 001, etc. Existirá así también una equiprobabilidad en función de los bits ya recibidos.Como comprobaremos más adelante, esto va a significar que la secuencia pasa por todos sus estados, es decir todos sus restos.

Page 432: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 431

Tercer postulado de Golomb G3 (1/2)

Postulado G3:– La autocorrelación AC(k) deberá ser constante

para todo valor de desplazamiento de k bits.

1 0 0 1 1 1 0 Secuencia originalSi

0 0 1 1 1 0 1 AC(1) = (3-7)/7 = -4/7

0 1 1 1 0 1 0

k = 1

AC(2) = (3-7)/7 = -4/7k = 2

k = 3 1 1 1 0 1 0 0 AC(3) = (3-7)/7 = -4/7

Desplazamiento de un bit a la izquierda

sigue

Page 433: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 432

Tercer postulado de Golomb G3 (2/2)

1 0 0 1 1 1 0 Secuencia original

1 1 0 1 0 0 1k = 4 AC(4) = (3-7)/7 = -4/7

1 0 1 0 0 1 1k = 5 AC(5) = (3-7)/7 = -4/7

0 1 0 0 1 1 1 AC(6) = (3-7)/7 = -4/7k = 6

1 0 0 1 1 1 0k = 7 Secuencia original en fase

La secuencia Si = 1001110 de 7 bits cumple con G3

Page 434: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 433

Autocorrelación no constante (1/2)

Secuencia originalSi 0 1 1 1 0 1 0 0

Desplazamiento de un bit a la izquierda

1 1 1 0 1 0 0 0 AC(1) = (4-4)/8 = 0k = 1

AC(2) = (4-4)/8 = 01 1 0 1 0 0 0 1k = 2

1 0 1 0 0 0 1 1 AC(3) = (2-6)/8 = -1/2k = 3

0 1 0 0 0 1 1 1k = 4 AC(4) = (4-4)/8 = 0

sigue

Page 435: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 434

Autocorrelación no constante (2/2)

0 1 1 1 0 1 0 0 Si Secuencia original

1 0 0 0 1 1 1 0 AC(5) = (2-6)/8 = -1/2k = 5

0 0 0 1 1 1 0 1k = 6 AC(6) = (4-4)/8 = 0

0 0 1 1 1 0 1 0 AC(7) = (4-4)/8 = 0k = 7

0 1 1 1 0 1 0 0 Secuencia original en fasek = 8

La secuencia Si = 01110100 de 8 bits no cumple con G3

Page 436: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 435

Significado del postulado G3

0 1 1 1 0 1 0 0 Si No cumple con G3

1 0 0 1 1 1 0 Si Sí cumple con G3

¿Qué significa esto?

Si una secuencia cumple con el postulado G3 quiere decir que, independientemente del trozo de secuencia elegido por el atacante, no habrá una mayor cantidad de información que en la secuencia anterior. Así, será imposible aplicar ataques estadísticos a la secuencia recibida u observada al igual como operábamos, por ejemplo y guardando las debidas distancias, con el sistema Vigenère y el ataque de Kasiski.

Page 437: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 436

Generador de congruencia lineal

xi+1 = (a∗xi ± b)(mod n) será la secuencia cifrante

• Los valores a, b, n caracterizan al generador y se utilizarán como clave secreta.

• El valor x0 se conoce como semilla; es el que inicia el proceso generador de la clave Xi.

• La secuencia se genera desde i = 0 hasta i = n-1.• Tiene como debilidad que resulta relativamente fácil

atacar la secuencia, de forma similar al criptoanálisis de los cifradores afines vistos en criptografía clásica.

Page 438: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 437

Ejemplo generador de congruencia lineal

xi+1 = (a∗xi ± b)(mod n)

x1 = (5∗10+1) mod 16 = 3 x9 = (5∗2+1) mod 16 = 11x2 = (5∗3+1) mod 16 = 0 x10 = (5∗11+1) mod 16 = 8x3 = (5∗0+1) mod 16 = 1 x11 = (5∗8+1) mod 16 = 9x4 = (5∗1+1) mod 16 = 6 x12 = (5∗9+1) mod 16 = 14x5 = (5∗6+1) mod 16 = 15 x13 = (5∗14+1) mod 16 = 7 x6 = (5∗15+1) mod 16 = 12 x14 = (5∗7+1) mod 16 = 4x7 = (5∗12+1) mod 16 = 13 x15 = (5∗4+1) mod 16 = 5x8 = (5∗13+1) mod 16 = 2 x16 = (5∗5+1) mod 16 = 10

Sea:a = 5 b = 1n = 16 x0 = 10

Sea:a = 5 b = 1n = 16 x0 = 10 Si = 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5

Pero...

Page 439: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 438

¿Algo falla en este tipo de generador?

¿Qué sucede sia = 11 b = 1n = 16 x0 = 7?

¿Qué sucede sia = 11 b = 1n = 16 x0 = 7?

xi+1 = (a∗xi ± b)(mod n) Ejercicios

¿Qué sucede sia = 5 b = 2n = 16 x0 = 10?

¿Qué sucede sia = 5 b = 2n = 16 x0 = 10?

¿Qué sucede sia = 5 b = 2n = 16 x0 = 1?

¿Qué sucede sia = 5 b = 2n = 16 x0 = 1?

¿Qué sucede sia = 4 b = 1n = 16 x0 = 10?

¿Qué sucede sia = 4 b = 1n = 16 x0 = 10?

Saque sus propias conclusiones. Como habrá comprobado, este tipo de generadores de secuencia

cifrante no son criptográficamente nada interesantes.Una vez hecho esto personalmente, pase a la siguiente diapositiva.

Page 440: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 439

Debilidad en este tipo de generadores

Si = (11∗7 + 1) mod 16Si = 15, 7

El período que se genera es sólo de tamaño dos ...

Si = (5∗10 + 2) mod 16Si = 4, 6, 0, 2, 12, 14, 8, 10

Si = (5∗1 + 2) mod 16Si = 7, 5, 11, 9, 15, 13, 3, 1

Se obtiene un período muy bajo y sólo valores pares e impares. El primer caso es igual que el de los apuntes pero con b = 2 ...

Si = (4∗10 + 1) mod 16Si = 9, 5, 5, ....

Peor aún, ya no se genera una secuencia ...

Page 441: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 440

Generador de secuencia cifrante con registros de desplazamiento

S1 S2 S3 S4 SnSn-1

g[a(t-1)a(t-2) ...a(t-n+1)]⊕a(t-n)

SiBit que se pierde

Desplazamiento

Realimentación

Conexiones de puertas

Genera una secuencia con un período máximo 2n

a(t-1) a(t-2) a(t-3) a(t-4) a(t-n+1) a(t-n)

Registros de Desplazamiento Realimentados No LinealmenteRegistros de Desplazamiento Realimentados Linealmente

NLFSR

LFSR

?

a(i) es el contenido de la celda i

Si es un bit 0 ó 1

Registros de desplazamiento

Por claridad se mantendrá la nomenclatura inglesa

Page 442: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 441

Introducción a los autómatas celulares

• Los registros de desplazamiento son un caso especial de los denominados autómatas celulares finitos unidimensionales.

• Este autómata celular finito es un sistema dinámico con un total de N células, dispuestas en un espacio unidimensional.

• Cada célula tendrá en cada instante un estado E y existiráuna función de transición f que, dependiendo de una vecindad establecida entre las células, hará que en cada instante de tiempo dicho autómata evolucione.

• En criptografía interesan los autómatas celulares que sean reversibles, es decir, que permitan la evolución hacia atrás.

http://www.criptored.upm.es/investigacion/tfc_m317a.htm

Page 443: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 442

Generadores NLFSR (1/2)

Un generador de cuatro celdas (n = 4)

S1 S2 S3 S4

AND

XOR

NOT

OR

Si

Sea la semilla: S1S2S3S4 = 0111

0 0

10

0 1 1 1

1 Este es el estado de las celdas y

las operaciones previas antes de

producirse el desplazamiento

de un bit hacia a la derecha.

Operaciones

S1 S2 S3 S4

Primera operación

Page 444: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 443

Generadores NLFSR (2/2)

S1 S2 S3 S4

AND

XOR

NOT

OR

Si

Semilla: S1S2S3S4 = 0111

0 0

10

0 1 1 1

1

11101

Observe que primero se transmite S4S3S2S1y luego S5S6S7 ... S12.

S1 S2 S3 S4

Si = 1110 1100 1010 0001; su período es máximo, Tmáx = 2n = 24 = 16. Se conoce como secuencia de De Bruijn. El contenido de las celdas pasará por todos los estados posibles: desde 0000 hasta 1111.

http://mathworld.wolfram.com/deBruijnSequence.html

Page 445: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 444

Generadores lineales LFSR

a(t) = C1a(t-1) ⊕ C2a(t-2) ⊕ C3a(t-3) ⊕ ... ⊕ Cna(t-n)Ci = {1,0} ⇒ conexión/no conexión celda Cn = 1

Función única: XOR Tmáx = 2n - 1Polinomio asociado:

f(x) = Cnxn + Cn-1xn-1 + .... + C2x2 + C1x + 1

S1 S2 S3 S4

XOR

Si

GeneradorLFSR de 4

etapas/celdas

GeneradorLFSR de 4

etapas/celdasC1 C2 C3 C4

Page 446: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 445

Tipos de generadores lineales LFSR

Observación: como la única función de realimentación de unLFSR es un XOR, no estará permitida la cadena de todos ceros.

En función del polinomio asociado tendremos:• LFSR con polinomios factorizables

• No serán criptográficamente interesantes. • LFSR con polinomios irreducibles

• No serán criptográficamente interesantes.• LFSR con polinomios primitivos

• Según los postulados de Golomb, este tipo de polinomio que genera todos los estados lineales posibles del cuerpo de trabajo n, será el que nos entregue una secuencia cifrante de interés criptográfico con período T = 2n –1.

Page 447: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 446

Generador LFSR con f(x) factorizable

Generador f(x) factorizable de cuatro celdas (n = 4)

S1 S2 S3 S4

⊕Sea f(x) = x4 + x2 + 1

f(x) es factorizable porque:Sea f(x1) = f(x2) = (x2+x+1)f(x) = f(x1) • f(x2)f(x) = (x2+x+1) • (x2+x+1)f(x) = x4+2x3+3x2+2x+1Tras la reducción módulo 2Luego f(x) = x4 + x2 +1

Si

T dependerá de la semillaT ≤ 2n - 1

Y además, habrá períodos secundarios divisores de T.

Problema

Page 448: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 447

Ejemplo LFSR con f(x) factorizable (1/2)

f(x) = x4 + x2 + 1

S1 S2 S3 S4

Si0 1 1 1Registro Bit Si

0111 10011 11001 11100 0

Primer bit: resultado de la operación S1 = S2 ⊕ S4

Sea la semilla: S1S2S3S4 = 0111

Registro Bit Si

1110 01111 10111 1 semilla. . .Si = 111001 T = 6

Page 449: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 448

Ejemplo LFSR con f(x) factorizable (2/2)

f(x) = x4 + x2 + 1

S1 S2 S3 S4

Si1 1 0 1Registro Bit Si

1101 10110 01011 11101 1

Primer bit: resultado de la operación S1 = S2 ⊕ S4

Sea ahora la semilla: S1S2S3S4 = 1101

S1 S2 S3 S4

Si = 101T = 3

semilla. . .

T es un período secundario y en en este caso es incluso menor que la semilla.

Page 450: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 449

Generador LFSR con f(x) irreducible

Generador f(x) irreducible de cuatro celdas (n = 4)Sea f(x) = x4 + x3 + x2 + x + 1

S1 S2 S3 S4

⊕Es imposible factorizar en módulo 2 la función f(x) mediante dos polinomios f(x1) y f(x2) de grado menor

Ahora T ya no depende de la semillapero será un factor de Tmáx = 2n – 1 y no obtendremos un período máximo.

Problema

Si

Page 451: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 450

Ejemplo de LFSR con f(x) irreducible

f(x) = x4 + x3 + x2 + x + 1

Registro Bit Si Registro0011 10001 1 semilla. . .Si = 100011 T = 5 siendoTmáx = 2n - 1 = 24- 1 = 15

S1 S2 S3 S4

Si0 0 0

Sea la semilla: S1S2S3S4 = 0001

Bit Si

1

0001 11000 01100 00110 0

Page 452: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 451

Generador LFSR con f(x) primitivo

Generador f(x) primitivo de cuatro celdas (n = 4)Sea f(x) = x4 + x + 1

S1 S2 S3 S4

⊕f(x) no es factorizable como f(x1)•f(x2) en módulo 2. Será además un generador del grupo.

Si

T ya no dependerá de la semilla y será el valor máximo Tmáx = 2n - 1. Se van a generar así las llamadas m-secuencias.

Habrá φ(2n - 1)/n polinomios primitivos

Habrá φ(2n - 1)/n polinomios primitivos

http://mathworld.wolfram.com/PrimitivePolynomial.htmlPolinomios

Generación polinomios http://www.theory.csc.uvic.ca/~cos/gen/poly.html

Page 453: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 452

Ejemplo de LFSR con f(x) primitivo

Generador f(x) primitivo de cuatro celdas (n = 4)

S1S2S3S4 = 1001Registro Bit Si

1001 10100 00010 00001 1

S1 S2 S3 S4

Si

T = 2n - 1T = 24 - 1T = 15

1110 0 1010 01111 1 1101 1

1 0 0 1

f(x) = x4 + x + 1

S1 = S1 ⊕ S4

Si = 100100011110101

0111 1 0110 01000 0 1011 1 0011 11100 0 0101 1 1001 T = 15

Page 454: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 453

Secuencias de un LFSR con f(x) primitivo

Características• Tendrá una secuencia máxima de 2n - 1 bits.• Cumplirá con G1:

– Hay 2n bits 1 y 2n-1 bits 0.• Cumplirá con G2:

– El vector binario de las celdas pasa por todos los estados excepto la cadena de ceros que está prohibida. Distribución típica de rachas de una m-secuencia.

• Cumplirá con G3:– Los aciertos (A) serán iguales a 2n-1 - 1.

m-secuencia

Page 455: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 454

Rachas en Si de un LFSR con f(x) primitivo

Rachas de Longitud Rachas de Ceros Rachas de Unos

2...p...

n-2n-1n

1

TOTAL

2n-4

...2n-p-2

...110

2n-3

2n-2

2n-4

...2n-p-2

...101

2n-3

2n-2

Rachas de una m-secuencia

Sin embargo, no es un generador ideal para la cifra porque su Complejidad Lineal es muy baja.

Page 456: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 455

Debilidad de un LFSR con f(x) primitivo

Como este tipo de LFSR genera una secuencia de longitud máxima, ésta será previsible y se puede encontrar la secuencia completa Side 2n - 1 bits ...

¡ con sólo conocer 2n bits !Por ejemplo, si conocemos sólo 2•10 = 20 bits en un sistema de 10 celdas con un período 210-1 = 1.023, seremos capaces de encontrar las conexiones de las celdas o valores de Ci y generar la secuencia completa Si. Esta debilidad es la que usa el ataque conocido como algoritmo de Berlekamp-Massey.

http://planetmath.org/encyclopedia/BerlekampMasseyAlgorithm.html

Algoritmo http://ihome.ust.hk/~trippen/Cryptography/BM/frameset.html

Page 457: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 456

Ejemplo de ataque de Berlekamp-Massey

Si conocemos 2∗n = 8 bits S1S2S3S4S5S6S7S8 de un LFSR de 4 celdas C1C2C3C4, tenemos el sistema de ecuaciones:

S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1

SiS1 S2 S3 S4

Primero se transmite S4S3S2S1 (semilla) y luego bits S5S6S7S8.

Si asignamos valores de esos 2∗n = 8 bits

S1S2S3S4S5S6S7S8seremos capaces de

resolver este sistema

C1 C2 C3 C4=1

Page 458: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 457

Solución al ataque de Berlekamp-Massey

S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4

S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3

S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2

S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1

Si b1b2b3b4b5b6b7b8 = 11001000 son correlativos y como hay cuatro celdas y primero se

transmite la semilla, entonces:

1 = C1•0 ⊕ C2•0 ⊕ C3•1⊕ C4•1

0 = C1•1 ⊕ C2•0 ⊕ C3•0 ⊕ C4•1C2 = 0

C3 = 0 C4 = 1

C1 = 1

S1 = 0 S5 = 1S2 = 0 S6 = 0S3 = 1 S7 = 0S4 = 1 S8 = 0

0 = C1•0 ⊕ C2•1 ⊕ C3•0 ⊕ C4•0

0 = C1•0 ⊕ C2•0 ⊕ C3•1 ⊕ C4•0

Page 459: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 458

Conclusiones ataque Berlekamp-Massey

CONCLUSIONES:• Como se conoce la configuración del generador LFSR, y

Si es una m-secuencia de período 2n - 1, entonces por el conjunto de n celdas pasarán todos los restos del campo de Galois de 2n, excepto la cadena de n ceros que sabemos está prohibida en estos sistemas generadores lineales.

• Para el ejemplo anterior, esto quiere decir que cualquier grupo de 2n = 8 dígitos correlativos nos permite generar la secuencia máxima, en este caso de 2n = 16 bits.

• La solución es aumentar la complejidad lineal del generador por ejemplo conectando varios LFRs.

Page 460: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 459

Complejidad lineal LC

o Un LFSR con polinomio primitivo de n celdas tendrá una complejidad lineal LC igual a n; es decir con 2n bits se puede generar la secuencia completa como hemos visto.

o Lo ideal es que si este LFSR entrega una secuencia Si con un período igual a 2n – 1, su LC fuese cercana a este valor.

o Para aumentar esta LC podemos usar:o Operaciones no lineales de las secuencias del LFSR

o Operaciones de sumao Operaciones de multiplicación

o Filtrado no lineal de los estados del LFSR.

Page 461: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 460

Operaciones no lineales con dos registros

LC = n1; T = 2n1-1Generador primitivo con n1 celdas

Generador primitivo con n2 celdas⊕ SiLC = n2 T = 2n2-1

LC = n1 + n2

T = mcm (2n1-1, 2n2-1)Es el modelo usado por A5

LC = n1; T = 2n1-1Generador primitivo con n1 celdas

Generador primitivo con n2 celdas⊗ SiLC = n2 T = 2n2-1

LC = n1 ∗ n2

T = mcm (2n1-1, 2n2-1)

Page 462: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 461

Generadores LFSR con filtrado no linealGenerador de Geffe

LFSR 2

LFSR 3

LFSR 1

Selector

a2

a3

a1

Si

• Si a1 es un 0 ⇒ Si es el bit de a2

• Si a1 es un 1 ⇒ Si es el bit de a3

Luego: Si = a2 ⊕ a1a2 ⊕ a1a3

0

1LC = (n1 + 1)n2 ⊕ n1n3

T = mcm (2n1-1, 2n2-1, 2n3-1)Se mejora la LC e incluso se aumenta si ponemos más LFSRs pero este generador es débil ante ataques por correlación de bits. Existen muchos esquemas en esta línea: Beth-Piper, Gollmann, Massey-Rueppel, etc., que no serán tratados en este capítulo. Encontrará ataques algebraicos a cifradores de flujo en la siguiente Web.

http://www.cryptosystem.net/stream

Page 463: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 462

Algoritmos de cifrado en flujo

Sistemas más conocidos:• A5:

– Algoritmo no publicado propuesto en 1994. Versiones A5/1 fuerte (Europa) y A5/2 débil (exportación).

• RC4: – Algoritmo de RSA Corp. (Rivest Cipher #4) desarrollado en

el año 1987, usado en Lotus Notes. Posteriormente se usa en el navegador de Netscape desde 1999 y luego en otros navegadores más actuales. No es público.

• SEAL:– Algoritmo propuesto por IBM en 1994.

http://www.argo.es/~jcea/artic/hispasec33.htm

http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html

http://www.gemplus.com/smart/rd/publications/pdf/HG97chis.pdf

Page 464: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 463

El algoritmo de cifra A5

El uso habitual de este algoritmo lo encontramos en el cifrado del enlace entre el abonado y la central de un teléfono móvil (celular) tipo GSM. Cada trama de conversación entre A y B tiene 228 bits, de los cuales 114 son en sentido A → B y otros 114 en sentido B → A. El generador entregará los 228 bits pseudoaleatorios para la cifra de cada trama.Con cerca de 130 millones de usuarios en Europa y otros 100 millones de usuarios en el resto del mundo en 1999, el sistema A5/1 sucumbió en diciembre de ese año a un ataque realizado por Alex Biryukov, Adi Shamir y David Wagner.

http://cryptome.org/a51-bsw.htm

http://www.criptored.upm.es/guiateoria/gt_m116a.htm

Page 465: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 464

Esquema del algoritmo de cifra A5/1

⊕Si

3 registros LFSR con m-secuencia

R1 ⇒ n1 = 19

R2 ⇒ n2 = 22

R3 ⇒ n3 = 23

Clave = 64 bits

f(x1) = x19+x18+x17+x14+1

f(x2) = x22+x21+1

C11419 1

9: bit de reloj

C222 1

11: bit de reloj

C323 8 1

11: bit de reloj

R1

R2

R3

Una función mayoría entre

C1, C2 y C3hace que sólo

los registros en los que coincide

el bit con ese valor produzcan desplazamiento.

En cada paso habrá dos o tres

registros en movimiento.

f(x3) = x23+x22+x21+x8+1

Page 466: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 465

Función mayoría y ejemplo de secuencia

F (C1,C2,C3) = C1C2 ⊕ C1C3 ⊕ C2C3

Si el bit de la celda del registro coincide con el resultado de F, dicho registro estará en movimiento y se desplazará, en caso contrario no desplazará.

Esta función mayoría entre las celdas C1, C2 y C3, permite que al menos dos de los tres registros se desplacen en cada paso.

C1 C2 C30 0 0 Desplazan todos0 0 1 No desplaza R30 1 0 No desplaza R20 1 1 No desplaza R1

C1 C2 C31 0 0 No desplaza R11 0 1 No desplaza R21 1 0 No desplaza R31 1 1 Desplazan todos

Page 467: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 466

Consideraciones sobre el período de A5/1

El período T vendrá dado por el mínimo común múltiplo de los tres períodos individuales:

T = mcm (2n1 - 1, 2n2 - 1, 2n3 - 1)

Como n1, n2 y n3 son primos entre sí, también lo serán los valores (2n1 -1), (2n2 - 1) y (2n3 - 1). Luego el período T será el producto:

T = T1∗T2∗T3

Entonces T = (219-1)(222-1)(223-1) = 524.287∗4.194.303∗8.388.607

T = 18.446.702.292.280.803.327 < 264

Este valor demasiado bajo sucumbe ante ataques distribuidos tal como veremos cuando se estudien debilidades del algoritmo DES.

Page 468: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 467

Registros y función mayoría en A5/2

• Usa los mismos tres registros de desplazamiento con polinomio primitivo que A5/1:

– f(x1) = x19 + x18 + x17 + x14 + 1– f(x2) = x22 + x21 + 1– f(x3) = x23 + x22 + x21 + x8 + 1

• Además, usa un cuarto registro R4 con un polinomio primitivo:– f(x4) = x17 + x12 + 1

• Usa cuatro copias de una función mayoría F para cada uno de los cuatro registros que se define como:

– F(x1,x2,x3) = x1x2 + x1x3 + x2x3

Page 469: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 468

Otras operaciones de A5/2

– En R1 las entradas a la función F1 son las celdas 13, 15 y 16.– En R2 las entradas a la función F2 son las celdas 10, 14 y 17.– En R3 las entradas a la función F3 son las celdas 14, 17 y 19.– En R4 las entradas a la función F4 son las celdas 4, 8 y 11.

La salida de esta copia determina qué registros de R1,R2,R3se desplazarán en el ciclo.

• Complementación de celdas y sumas en salida de F:– En R1 se complementa la celda 15 y se suma la celda 19 a F.– En R2 se complementa la celda 17 y se suma la celda 22 a F.– En R3 se complementa la celda 14 y se suma la celda 23 a F.

Fin del capítulo

Page 470: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 469

Cuestiones y ejercicios (1 de 3)

1. ¿Por qué en los sistemas de cifra en flujo se usa una función XOR tanto en emisor como en receptor? ¿Son las claves aquí inversas?

2. Si tenemos una clave de 16 bits, ¿cuál es el período máximo que podremos lograr en una secuencia cifrante lineal? ¿Por qué?

3. ¿Qué rachas encuentra en la secuencia 110100111010100?4. ¿Por qué es lógico esperar más rachas cortas que rachas largas?5. Si en una secuencia cifrante se observa una correlación fuera de fase

no constante, ¿qué significa? ¿Podríamos hacer un ataque similar al que permite romper el sistema de cifra polialfabético de Vigenère?

6. A nivel de probabilidades de ocurrencia de bits, ¿qué significan los postulados de Golomb G1 y G2?

7. ¿Qué significa que una secuencia cifrante pase por todos los estados o restos posibles? ¿Cuál sería en este caso su período?

Page 471: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 470

Cuestiones y ejercicios (2 de 3)

8. ¿Qué secuencias se obtiene con un generador de congruencia lineal en el que a = 7, b = 4 y n = 8? ¿Y si ahora hacemos a = 3?

9. ¿Qué tipo de ataque podríamos intentar para romper una secuenciacifrante obtenida con un generador de congruencia lineal?

10. ¿Por qué en un registro de desplazamiento siempre se realimenta el bit de la última celda, es decir bit que sale a línea?

11. En el generador NLFSR de los apuntes si se cambia la función ANDpor una OR, ¿qué sucede con la secuencia? Saque conclusiones.

12. Decimos que los generadores LFSR tienen asociado un polinomio f(x) = anxn + an-1xn-1 + an-2xn-2 + ... + a2x2 + a1x + 1, donde ai toma los valores de 0 ó 1. ¿Por qué f(x) termina en 1?

13. ¿Qué polinomio elegiría para un generador con LFSR, un polinomiofactorizable, uno irreducible o uno primitivo? ¿Por qué?

Page 472: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 11: Sistemas de Cifra en Flujo Página 471

Cuestiones y ejercicios (3 de 3)14. ¿Por qué no está permitida la cadena de n ceros en un generador

LFSR de n etapas y en cambio sí en los NLFSR?15. En el generador LFSR con f(x) primitivo de 4 etapas, la secuencia

pasa por todos los restos excepto 0000. Si usamos hora una semilla distinta, ¿debemos hacer otra vez todos los cálculos o no? ¿Por qué?

16. Justifique la distribución de las rachas en una m-secuencia. ¿Por qué tiene ese comportamiento extraño al final de las rachas largas?

17. ¿Qué debilidad de los sistemas LFSR con polinomios primitivos usa el algoritmo de Berlekamp-Massey para realizar el ataque?

18. En un ataque de Berlekamp-Massey, ¿importa en qué posición de la secuencia se encuentran los 2n bits? ¿Por qué?

19. ¿Por qué cree que el algoritmo A5/1 es débil? ¿Cuál fue el peor error cometido por sus creadores?

Software de laboratorio de flujo: próximamente en página web de la asignatura.

Page 473: Seguridad Informatica

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 119 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Curso de Seguridad Informática y Criptografía © JRA

v 4.1

Capítulo 12Cifrado Simétrico en Bloque

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Page 474: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 473

MENSAJE (N bits)

BLOQUE A BLOQUE B

⊕ ⊕

FUNCIÓN f

N/2N/2

ki

Xi

A ⊕ Xi B ⊕ Xi

⊕ ⊕

FUNCIÓN fki

Xi

A B

A ⊕ Xi B ⊕ Xi

Puesto que Y ⊕ Xi ⊕ Xi = Y

Cifrado y descifrado genérico en bloque

Page 475: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 474

• Dado un bloque de N bits (típico 64) éste se dividirá en dos mitades.

• Existirá una función unidireccional F (muy difícil de invertir).

• Se realizan operaciones con la clave kisólo con una mitad del bloque, y se permutan en cada vuelta las dos mitades, operación que se repite durante n vueltas.

Horst Feistel: inventor (IBM) del algoritmo LUCIFER a comienzos de los años 70. El algoritmo fue utilizado por el Reino Unido. En 1974 se propone a la NSA como estándar y en ese año dará origen al DES.

Cifrado tipo Feistel

http://en.wikipedia.org/wiki/Feistel_network

Page 476: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 475

El algoritmo usará bloques de tamaño 8 caracteres. Tendrá dos vueltas y en cada vuelta realizará una operación de sustitución S y una permutación P sobre la 1ª mitad.

Sustitución: Ci = (Mi +1 ) mod 27Permutación: Ci = ∏3241 (el carácter 1º pasa a la 4ª posición en el criptograma, el 4º a la 3ª, el 2º a la 2ª y el 3º a la 1ª)

Un ejemplo básico de cifrado tipo Feistel

Mensaje: M = STAR WARS, LA MISIÓN CONTINÚA

Page 477: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 476

M = STAR WARS, LA MISIÓN CONTINÚAM1 = STAR WARS LAMI SION CONT INUAS1 = TUBS WARS MBNJ SION DPÑU INUAP1 = BUST WARS NBJM SION ÑPUD INUA

M2 = WARS BUST SION NBJM INUA ÑPUDS2 = XBST BUST TJPÑ NBJM JÑVB ÑPUDP2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD

M = STAR WARS, LA MISIÓN CONTINÚAM1 = STAR WARS LAMI SION CONT INUAS1 = TUBS WARS MBNJ SION DPÑU INUAP1 = BUST WARS NBJM SION ÑPUD INUA

M2 = WARS BUST SION NBJM INUA ÑPUDS2 = XBST BUST TJPÑ NBJM JÑVB ÑPUDP2 = SBTX BUST PJÑT NBJM VÑBJ ÑPUD

Primera vuelta

Segunda vuelta

Cifrado tipo Feistel en cuerpo n = 27

Si: +1 mod 27Pi: ∏3241

C = SBTX BUST PJÑT NBJM VÑBJ ÑPUDAunque le parezca increíble, el DES hará prácticamente lo mismo trabajando con bits y con funciones un poco más “complejas”.

Page 478: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 477

Algoritmo Bloque (bits) Clave (bits) Vueltas

Lucifer 128 128 16DES 64 56 16Loki 64 64 16RC2 64 variable --CAST 64 64 8Blowfish 64 variable 16IDEA 64 128 8

Cifradores de bloque más conocidos

Skipjack 64 80 32Rijndael 128 128 o más flexible

Page 479: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 478

Características de estos algoritmos (1)• Lucifer: algoritmo original tipo Feistel usado a comienzos de

los años 70 por en el Reino Unido y que posteriormente dará lugar al DES.

• DES: algoritmo tipo Feistel que se convirtió en estándar durante casi treinta años. Hoy es vulnerable por su pequeña longitud de clave y ha dejado de ser estándar mundial.

• Loki: algoritmo australiano similar al DES, también de tipo Feistel.

• RC2: algoritmo propuesto por Ron Rivest y que se incluye en navegadores de Internet desde 1999.

• CAST: algoritmo canadiense tipo Feistel que se ofrece como uno de los algoritmos de cifra en últimas versiones de PGP.

Page 480: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 479

Características de estos algoritmos (2)

• Blowfish: algoritmo de tipo Feistel propuesto por BruceSchneier.

• IDEA: algoritmo europeo usado principalmente en el correo electrónico PGP.

• Skipjack: propuesta de nuevo estándar en USA a finales de los 90 para comunicaciones oficiales (tiene puerta trasera).

• Rijndael: nuevo estándar mundial desde finales de 2001, conocido como AES, Advanced Encryption Standard.

Encontrará las especificaciones de éstos y otros algoritmos de cifra simétrica y asimétrica en la siguiente página web.

http://www.quadibloc.com/crypto/intro.htm

Page 481: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 480

Algoritmo Bloque (bits) Clave (bits) VueltasTwofish 128 variable variableKhufu 64 512 16, 24, 32Khafre 64 128 más vueltasGost 64 256 32RC5 variable variable variableSAFER 64 64 64 8Akelarre variable variable variableFEAL 64 64 32

Otros cifradores de bloque

De éstos, los más conocidos son Twofish -uno de los candidatos a AES- y que lo encontraremos en últimas versiones de PGP y RC5.

Page 482: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 481

• Twofish: Propuesto por Bruce Schneir después de Blowfish, de tipo Feistel, diseño simple, sin claves débiles y multiplataforma.

• Khufu: algoritmo propuesto por Ralph Merkle con una clave generada con un sistema de “cajas” S.

• Khafre: algoritmo propuesto por Ralph Merkle en el que la clave ya no depende de las cajas S.

• Gost: algoritmo similar al DES con cajas S secretas propuesto en la Unión Soviética.

• RC5: algoritmo propuesto por Ron Rivest; realiza operaciones or exclusivo, suma modular y desplazamiento de bits.

• SAFER 64: algoritmo propuesto por James Massey.• Akelarre: algoritmo español propuesto en 1996 por el CSIC,

Consejo Superior de Investigaciones Científicas.• FEAL: algoritmo propuesto en Japón.

Características de estos algoritmos

Page 483: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 482

Algoritmo Kbytes/seg Algoritmo Kbytes/segDES 35 Triple DES 12IDEA 53 FEAL (32 v) 91Khufu (16 v) 221 Khufu (32 v) 115RC5 (8 v) 127 RC5 (16 v) 65SAFER (6 v) 81 SAFER (12 v) 41Blowfish (12 v) 182 Blowfish (20 v) 110

Velocidad de cifra de algoritmos en un PC 486 a 33 MHz

Fuente: Criptografía Digital. Fundamentos y Aplicaciones. José Pastor y Miguel Angel Sarasa, Prensas Universitarias de Zaragoza (1998).

Dada la baja velocidad del PC ☺, estos valores

son sólo indicativos para una comparación.

Algunas tasas de cifra comparativas

Page 484: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 483

Profundizaremos en estas diapositivas en los algoritmos DES, Triple DES, IDEA y AES. ¿Por qué?

Algoritmos DES, IDEA y AES

DES es un cifrador de Feistel, ha sido un estándar y en aplicaciones bancarias se seguirá usando durante algún tiempo.DES es de muy fácil comprensión y usa cajas S al igual que varios algoritmos más modernos como el actual estándar AES.Triple DES sigue siendo un estándar en e-commerce.IDEA es un algoritmo seguro que hace uso de los conceptos de inversos en un cuerpo finito, como todos los algoritmos de cifra modernos, y se usa entre otros en la aplicación PGP.AES (Rijndael) es el nuevo estándar de cifra avanzada.

Page 485: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 484

Modos de cifra

Todos los algoritmos pueden usarse aplicando diversos modos de cifra, entre ellos:

- ECB: Electronic CodeBook (libro electrónico de códigos)- CBC: Cipher Block Chaining (encadenamiento de bloques)- CFB: Cipher FeedBack (realimentación de bloques)- OFB: Output FeedBack (realimentación bloque de salida)

Analizaremos cada uno de ellos para el caso del DES, aunque el estudio es extensible a todos los demás ya que en estos modos el cifrador se considera una caja negra.

http://www.itl.nist.gov/fipspubs/fip81.htm

Page 486: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 485

DES (Data Encryption Standard) ha sido el estándar utilizado mundialmente durante 25 años, generalmente en la banca. Hoy presenta signos de envejecimiento y ha sucumbido a los diversos criptoanálisis que contra él se viene realizando hace ya años.

FECHAS DE INTERÉS

1973: En EEUU la NBS National Bureaux of Standards llama a concurso público para buscar un algoritmo criptográfico estándar.1974: La NSA National Security Agency declara desierto el primer concurso, publica unas segundas especificaciones y elige Lucifer, algoritmo original de IBM (años 70) con variaciones.

1976: El DES se adopta como estándar y se autoriza para ser utilizado en las comunicaciones no clasificadas del gobierno.

Data Encryption Standard DES

Page 487: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 486

Especificaciones del concurso• El nivel de seguridad computacional debe ser alto.• El algoritmo debe ser fácil de entender y deberá estar

especificado en todos sus detalles.• La seguridad del sistema no debe verse afectada por la

publicación y divulgación del algoritmo.• Debe estar disponible para cualquier usuario.• Deberá poder usarse en diferentes aplicaciones.• Fabricación con dispositivos electrónicos de bajo costo.• Se debe poder usar como validación.• Debe ser exportable.

Especificaciones del algoritmo DES

No se cumplen en 1973 pero sí en 1974, aunque ...

Page 488: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 487

La NSA, National Security Administration, impone una limitación en la longitud de la clave:

De los 128 bits de Lucifer, NSA deja la clave en 64 bits. La clave

efectiva sólo son 56 bits puesto que al ser datos de 8 bits, no

ASCII, se conoce el bit de paridad.Luego, el espacio de claves será 256 = 7.2 ·1016, tan sólo setenta y

dos mil billones de valores, un valor pequeño en criptografía.

El papel de la NSA en el DES

K = 72.057.594.037.927.936

Page 489: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 488

¿Reducción del tamaño de la clave?

Hay distintas versiones sobre esta reducción del espacio de claves: una habla de la dificultad de diseñar chips capaces de operar de forma eficiente con una clave de 128 bits en esos años 70; la otra sobre una política de seguridad interna para proteger información sensible ante ataques externos y ser capaces, eso sí, de practicar criptoanálisis en un tiempo razonable.

Es muy posible que ambas razones tengan

su justificación técnica y política. Ud. puede

pensar lo que quiera ☺

Page 490: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 489

• Bloque a cifrar: 64 bits• Clave: 8 bytes (con paridad, no caracteres ASCII)• Normas ANSI:

– X3.92: Descripción del algoritmo.– X3.108: Descripción de los modos de operación

(ECB, CBC, OFB).• Fácil implementación en un circuito integrado.

Especificaciones técnicas finales del DES

Veremos su descripción y modos de operación. En la página que se indica encontrará las especificaciones del DES.

http://www.itl.nist.gov/fipspubs/fip46-2.htm

Page 491: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 490

Cifrador de bloqueTipo FeistelLongitud de clave de 56 bitsRealiza Realiza 16 vueltas.La cifra del bLa cifra del bloque central usa técnicas de sustituciones y permutaciones.Para poder realizar las sumas or exclusivo, usará permutaciones con expansión y compresión para igualar el número de bits.

En el descifrado se aplican claves y desplazamientos en sentido inverso

Visión general del DES

Page 492: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 491

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

Tabla IP sobre bloque de texto(no tiene interés criptográfico)

El bit 1 se lleva a la posición 40El bit 1 se lleva a la posición 40

Permutación inicial del DES: tabla IP

Page 493: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 492

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

L0 = 58 50 42 34 26 18 10 02 60 52 44 36 28 20 12 04 62 54 46 38 30 22 14 06 64 56 48 40 32 24 16 08

R0 = 57 49 41 33 25 17 09 01 59 51 43 35 27 19 11 03 61 53 45 37 29 21 13 05 63 55 47 39 31 23 15 07

Observe la distribución correlativa que existe entre los bits del bloque izquierdo L0 y del bloque derecho R0 de

texto. Este tipo de distribución de los bits en tablas, a simple vista caprichosa ☺, será muy común en el DES.

Bloques izquierdo y derecho de texto

Page 494: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 493

Tabla IP-1

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

El bit 40 vuelve a la posición 1 y todos los demás bits a su posición inicial antes de IP.

El bit 40 vuelve a la posición 1 y todos los demás bits a su posición inicial antes de IP.

Permutación final del DES: tabla IP-1

Page 495: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 494

• Se permuta la mitad derecha Riaplicando expansión a 48 bits

• La clave de 56 bits se desplaza, permuta y se seleccionan los 48 bits de Ki de cada vuelta.

• La nueva mitad derecha Ri y la clave Ki se suman XOR

• Se reducen los 48 bits de salida a 32 bits mediante las Cajas-S

• Se permuta el resultado• El resultado se suma XOR con

la mitad izquierda Li

EN CADA CICLO:

En la próxima vuelta, la mitad

derecha anterior pasa íntegra como

mitad izquierda. La mitad derecha de la nueva vuelta será el último resultado or exclusivo del ciclo.

Operaciones en cada ciclo del DES

Page 496: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 495

Esquema de la función de cifra f en cada ciclo

En las cajas S se consigue la fortaleza del algoritmo. Es una función unidireccional y no lineal.

En las cajas S se consigue la fortaleza del algoritmo. Es una función unidireccional y no lineal.

Módulo de cifra en DES

16 bits repetidos

Columnas 1ª y 2ª repetidas

Page 497: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 496

1 6 7 12 13 18 19 24 25 30 31 36 37 42 43 48

1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 32

Permutación con expansión a 48 bits (Tabla E)

ki (48 bits)

Operación Or Exclusivo con la subclave ki

S1 S2 S3 S4 S5 S6 S7 S8

Sustitución con compresión a 32 bits (Cajas S)

Permutación de Salida del ciclo (Tabla P)

De cada 6 bits de entrada se obtienen 4 bits de salida

No lineal y unidireccional. Hay cuatro soluciones de entrada para cada salida

Operación de las cajas S en el DES

Page 498: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 497

Valores de las cajas S1 y S2 del DES

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

0

1

2

3

C O L U M N A S

S1

FILAS

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

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

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

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

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

0

1

2

3

C O L U M N A SS2

FILAS

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

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

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

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

Page 499: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 498

Valores de las cajas S3 y S4 del DES

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

0

1

2

3

C O L U M N A SS3

FILAS

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

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

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

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

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

0

1

2

3

C O L U M N A SS4

FILAS

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

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

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

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

Page 500: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 499

Valores de las cajas S5 y S6 del DES

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

0

1

2

3

C O L U M N A SS5

FILAS

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

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

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

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

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

0

1

2

3

C O L U M N A SS6

FILAS

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

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

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

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

Page 501: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 500

Valores de las cajas S7 y S8 del DES

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

0

1

2

3

C O L U M N A SS7

FILAS

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

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

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

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

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

0

1

2

3

C O L U M N A SS8

FILAS

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

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

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

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

Page 502: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 501

Ejemplo:Sean los bits 7 al 12 los siguientes: 101100Los bits corresponderán entonces a la entrada de la caja S2Para seleccionar la fila tomamos los bits extremos: 102 = 210 = 2Para seleccionar la columna tomamos los bits centrales: 01102 = 610 = 6La caja S2 indica una salida igual a 1310 = 11012

explicación

Entrada: 101100 (6 bits)Salida: 1101 (4 bits)

Ejemplo de operación de cajas S del DES

Page 503: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 502

57 49 41 33 25 17 9

1 58 50 42 34 26 18

10 2 59 51 43 35 27

19 11 3 60 52 44 36

63 55 47 39 31 23 15

7 62 54 46 38 30 22

14 6 61 53 45 37 29

21 13 5 28 20 12 4

Se han eliminado los bits de paridad:8, 16, 24, 32, 40, 48, 56, 64.

Tabla PC-1 (56 bits)28 bits 28 bits

Cálculo de subclaves en el DES (PC-1)

Page 504: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 503

4 17 11 24 1 5

3 28 15 6 21 10

23 19 12 4 26 8

16 7 27 20 13 2

41 52 31 37 47 55

30 40 51 45 33 48

44 49 39 56 34 53

46 42 50 36 29 32

Tabla PC-2 (48 bits) ⇒ k1, k2, ..., k16

Se han eliminado los bits: 9, 18, 22, 25, 35, 38, 43, 54.

28 bits 28 bits

48 bits

48 bits

48 bits

Cálculo de subclaves en el DES (PC-2)

Page 505: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 504

Vuelta i Bits Desp. Izda.

1 1

2 1

3 2

4 2

5 2

6 2

7 2

8 2

Vuelta i Bits Desp. Izda.

9 1

10 2

11 2

12 2

13 2

14 2

15 2

16 1

Se produce un desplazamiento total igual a 28, todos los bits de cada bloque Ci y Di28 bits28 bits

Desplazamiento de subclaves en el DES

LF1, LF2, ..., LF16

Σ

Page 506: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 505

Se toman en sentido contrario:

k16, k15, k14, k13, k12, k11, k10, k9, k8, k7, k6, k5, k4, k3, k2, k1

Como se aplica un desplazamiento de 28 bits en cada bloque de clave,

entonces D16 = D0 y C16 = C0

Los desplazamientos para el cálculo de las subclaves de descifrado son los

mismos de la tabla anterior pero ahora se toman hacia la derecha, puesto que

los desplazamientos coinciden.

64 bits de criptograma

Operación de descifrado en el DES

Page 507: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 506

Claves débiles en hexadecimal:Una clave es débil si se verifica que: Ek[Ek (M)] = MAdemás de 0000000000000000 y FFFFFFFFFFFFFFFF (que son obvias) serán débiles estas cuatro claves:0101010101010101 FEFEFEFEFEFEFEFEEOEOEOEOF1F1F1F1 1F1F1F1F0E0E0E0E

Claves semidébiles en hexadecimal:Una clave es semidébil si se verifica que: Ek1[Ek2(M)] = MSon claves k1,k2 semidébiles las siguientes seis parejas:

(01FE01FE01FE01FE, FE01FE01FE01FE01)(1FE01FE00EF10EF1, E01FE01FF10EF10E)(01E001E001F101F1, E001E001F101F101)(1FFE1FFE0EFE0EFE, FE1FFE1FFE0EFE0E)(011F011F010E010E, 1F011F010E010E01)(E0FEE0FEF1FEF1FE, FEE0FEE0FEF1FEF1)

Además de éstas, hay otras ecuaciones que verifican dichas claves.

Claves débiles y semidébiles

Los bloques C y D de la clave son todos 0s ó 1s.

Page 508: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 507

Ejemplo 1: a partir de las tablas PC-1 y PC-2, encuentre la secuencia de bits de los registros C1 y D1 y la subclave k1.Solución:i = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28C1 = 49 41 33 25 17 09 01 58 50 42 34 26 18 10 02 59 51 43 35 27 19 11 03 60 52 44 36 57

i = 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56D1 = 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 21 13 05 28 20 12 04 63

k1 = 10 51 34 60 49 17 33 57 02 09 19 42 03 35 26 25 44 58 59 01 36 27 18 4122 28 39 54 37 04 47 30 05 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31

Ejemplo 2: si la clave es PRUEBALO, encuentre C0 y D0 y la subclave k1. Para encontrar C0 y D0 escriba en ASCII la clave y elimine el último bit de cada byte como si fuese el de paridad.Solución:

C0 = 0000 0000 1111 1111 0000 0000 0000

C1 = 1001 0010 1100 1100 1100 0000 0111

k1 = 101000 001001 001001 000010 101101 010100 100111 100100

Ejemplo de cálculo de claves en DES

Page 509: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 508

Debilidades:Se podría reconstruir ese libro electrónico sin necesidad de conocer la clave.Aparece el problema denominado de comienzos y finales fijos que permiten un tipo de ataque sencillo.Se ataca a través de la repetición de bloques similares.

Modo de cifra ECB

Electronic CodeBook: cifra cada bloque con la clave k de forma independiente. Por lo tanto, el resultado es como si se codificase mediante un gran libro electrónico de códigos.

Recuerde: codificar no es lo mismo que cifrar.

Recuerde que estos modos son válidos para todos los cifradores en bloque

Page 510: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 509

Cada bloque de 64 bits del texto en claro se pasa por el cifrador, usando la misma clave de 64 bits.

Para bloques de texto en claro iguales, se obtiene siempre el mismo criptograma.

Como a cada bloque de texto en claro le corresponde un único código o texto cifrado de salida y éste es constante, este modo de cifra lleva por nombre Libro Electrónico de Códigos. Es como si tuviésemos un gran libro de código con un código distinto para cada mensaje.

Características del modo ECB en DES

Page 511: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 510

• Se encadenan los bloques de texto en claro con el bloque del criptograma anterior.

• Usa un vector de inicialización IV de 64 bits que se guarda en secreto.

Vector IV = I0

Modo de cifra CBC en DES

Cipher Block Chaining: cifra por encadenamiento de bloques (el más común)

Page 512: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 511

CifradoEl vector IV se suma XOR a los 64 bits de texto en claro.Se cifra con la clave K esa suma.El resultado Ci se usa como vector IV para el nuevo bloque.

DescifradoSe descifra el primer bloque con vector IV:P1 = D(C1) ⊕ I0P1 = D[E(P1⊕ I0)] ⊕ I0Se guarda el bloque Ci-1 en un registro. Se descifra el bloque Ciy luego XOR entre esos bloques:Mi = D(Ci) ⊕ Ci-1

CARACTERÍSTICAS:Evita el ataque por repetición de bloque. Enmascara el mensaje lo mismo que la cifra en flujo. El espacio de claves es igual a 64 bits. La propagación de un error afecta a dos bloques contiguos.

Operaciones de cifra modo CBC en DES

Page 513: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 512

• Se pueden cifrar unidades de datos más pequeñas que bloques, por lo general un byte.

• Se usa un registro de desplazamiento RD de 64 bits como vector inicial IV.

CIFRAR CIFRAR

Modo de cifra CFB en DES

Cipher FeedBack: cifrado por realimentación de bloques

Page 514: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 513

CifradoSe suma XOR cada byte del texto claro con bytes resultado de la cifra de RD y la clave K.El byte Ci se envía al registro; se desplazan a la izquierda 8 bits hasta formar otro RD y se repite el proceso de cifra.

DescifradoSe cifra el registro RD.Se obtienen de esta forma los elementos de Ci-d.Se suma XOR los Ci-d con los Ci del criptograma para obtener Pi.Se realimenta Ci al registro RD y se repite el proceso.

CARACTERÍSTICAS:Evita el ataque por repetición de bloque; enmascara el mensaje como en cifra en flujo, el espacio de claves es igual a 64 bits; la propagación de un error se limita a un bloque.

Operaciones de cifra modo CFB en DES

Page 515: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 514

El DES, la clave y el Registro RD actúan

como un generador de secuencia cifrante.

Bits menos significativos

Registro Desplazamiento (64 bits)

Byte Mensaje

DESK

Ci-1

⊕Bi Ci

Si la cifra se realiza bit a bit, OFB se convierte en cifrador de flujo.

Modo de cifra OFB en DES

La realimentación de la señal se realiza antes de la operación XOR.

Output FeedBack: cifrado por realimentación de bloques de salida

El byte se va desplazando por el registro

Page 516: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 515

Evita el ataque por repetición de bloque.Produce un enmascaramiento del mensaje similar al de un cifrador de flujo.El espacio de claves es igual a 64 bits.La propagación de un error afecta sólo a un byte, el que se realimenta en el registro de desplazamiento.Las operaciones de cifrado y descifrado son iguales.

Características del modo OFB en DES

A pesar de las propiedades interesantes de los últimos modos, el más utilizado en los sistemas de cifra de diversos protocolos es el CBC.

Page 517: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 516

Si un sistema forma un grupo, entonces cifrar un mensaje M con una clave k1 y luego el resultado con una clave k2, es lo mismo que cifrar el mensaje con una única clave k3.

Por ejemplo, el cifrador de Vigenère es un grupo como se demuestra a continuación. Sea k1 = PACO y k2 = CINE y el mensaje a cifrar M = ESTO ES UN GRUPO. M1 = ESTO ESUN GRUP Ok1 = PACO PACO PACO PC1 = TSVD TSWB VRWE E

Obtendremos lo mismo si ciframos el mensaje M con la clave k3 = k1 + k2 = PACO + CINE = RIOS.

M2 = TSVD TSWB VRWE Ek2 = CINE CINE CINE CC2 = VAIH VAJF XZJI G

Cifrado múltiple en un grupo

Page 518: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 517

M1 = ESTO ESUN GRUP Ok1 = PACO PACO PACO PC1 = TSVD TSWB VRWE E

M2 = TSVD TSWB VRWE Ek2 = CINE CINE CINE CC2 = VAIH VAJF XZJI G

El DES no será un grupo y, por lo tanto, permitirá el cifradomúltiple. Esto aumentará el tamaño efectivo de la clave.

M3 = ESTO ESUN GRUP Ok3 = RIOS RIOS RIOS RC3 = VAIH VAJF XZJI G

Como ejercicio compruebe que a resultados similares llega si, por ejemplo, usa ahora los siguientes pares de claves:

LAPALA y LANUCA; PASA y NADA; PAÑOS y TERMA. ¿Cuáles son las claves k3 en cada caso? ☺

El DES no es un grupo

Page 519: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 518

¿Se duplica la longitud de la clave?En este modelo, cabe esperar que la longitud efectiva de la clave sea 22n donde n representa la longitud de bits de las claves k1 y k2. No obstante esto no es cierto. En realidad el tamaño de la clave resultante en este caso es equivalente a 2n+1, un aumento insignificante (un solo bit) para un valor de n grande (típico) y por esta razón no se usa.

k1 k2

DES DESM C

k1 y k2 son claves n bits

C’

¿Podríamos usar un doble DES?

Page 520: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 519

k1 y k2 son claves n bits

a) Se descripta el criptograma C por fuerza bruta usando las 2n claves posibles y realizando entonces 2n cálculos. Se obtiene así Y.

b) Con los “textos intermedios” Y se forma una tabla ordenada de textos cifrados con sus correspondientes valores k2.

c) Se cifra el texto en claro M conocido con todas las claves k1 y se comparan los resultados con Y, realizando un máximo de 2n cálculos.

d) Una de las claves será la verdadera y se ha realizado un número menor que 2n + 2n = 2n+1 cálculos. Luego la clave real es igual a 2n+1.

Este ataque se conoce con el nombre de meet-in-the-middle.

Ataque por encuentro a medio camino

k1 k2

DES DESM CY

Page 521: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 520

• En este caso se logra un valor efectivo de longitud de clave igual a 22n bits, es decir 22•56 = 2112 bits efectivos.

• El modelo anterior con sólo dos claves es compatible con el DES de clave única cuando k1 = k2. Es más eficiente y equivalente al cifrado triple con claves k1, k2, k3.

• Este modelo fue propuesto por Matyas y Meyer de IBM, se conoce como EDE (Encrypt-Decrypt-Encrypt) y es inmune a ataques por encuentro a medio camino.

k1 k2

E (DES)M C

k1 y k2 son claves n bitsk1

D (DES) E (DES)

Triple DES tipo EDE

Page 522: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 521

k1 k2

E (DES)M C

k1 y k2claves de

64 bitsk1

D (DES) E (DES)

Aunque el algoritmo DES haya sufrido diversos ataques y no se haya vuelto a certificar por el NIST como estándar de cifrado, el Triple DES sí tiene una gran seguridad debido al tamaño de su clave de 112 bits efectivos y sigue siendo válido en el año 2005. De hecho, era el algoritmo propuesto en el protocolo SET y se encuentra, entre otras aplicaciones, en el programa PGP.

Usos de Triple DES

http://www.rsasecurity.com/rsalabs/node.asp?id=2231

Page 523: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 522

Historia del IDEAEn 1990 Xuejia Lai y James Massey proponen el PES, Proposed Encryption Standard.En 1991 -debido a los avances de Biham y Shamir en el criptoanálisis diferencial- los autores proponen el IPES, Improved Proposed Encryption Standard.En 1992 los autores proponen finalmente el algoritmo IDEA, International Data Encryption Algorithm.En 1999 el algoritmo IDEA, mucho más seguro que el DES y sus versiones, se comienza a usar ampliamente en el sistema de correo electrónico seguro PGP.

International Data Encryption Algorithm IDEA

http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm

Page 524: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 523

• Cifra bloques de 64 bits en 8 vueltas

• Hay una transformación final con 4 claves para invertir operación inicial

• Divide la entrada M en cuatro bloques de 16 bits

• Se generan 52 subclaves de 16 bits a partir de la clave maestra de 128 bits

• Usa 6 claves por vuelta

Todas sus operaciones se realizan dentro de

un cuerpo finito

Estructura y esquema de IDEA

Page 525: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 524

Operaciones básicas

XOR

Suma módulo 216 (mod 65.536)

Multiplicación módulo 216+1 ((65.537)

Es primo y seasegura el inverso

multiplicativo

Operaciones matemáticas en IDEA

Todas las operaciones se realizan con bloques de 16 bits y el truco está en que los bloques cuyo valor sea 0 (16 bits) se cambiarán por la constante 216 ...de 17 bits ☺. Simplemente representa la salida con n bits, no teniendo en cuenta el bit dedesbordamiento. Un ejemplo con números pequeños:

Page 526: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 525

Ejemplo dentro de un grupo n pequeñoComo 2n + 1 debe ser primo, sea n = 2 ya que 22 = 4 y 22 + 1 = 5

X Y X + Y X ⊗ Y X ⊕ Y 0 00 0 00 0 00 1 01 0 00 0 00 1 01 1 01 0 00 1 01 0 00 2 10 2 10 3 11 2 10 0 00 3 11 3 11 2 10 3 11 1 01 0 00 1 01 0 00 1 01 1 01 1 01 2 10 1 01 0 00 1 01 2 10 3 11 2 10 3 11 1 01 3 11 0 00 3 11 2 10 2 10 0 00 2 10 3 11 2 10 2 10 1 01 3 11 2 10 3 11 2 10 2 10 0 00 0 00 0 00 2 10 3 11 1 01 1 01 1 01 3 11 0 00 3 11 2 10 3 11 3 11 1 01 0 00 3 11 2 10 3 11 2 10 1 01 1 01 1 01 3 11 3 11 2 10 0 00 0 00

Operaciones: + mod 2n (mod 4), ⊗ mod 2n+1 (mod 5), XOR (mod 2)

n = 2 dos bits

Veremos cómo se opera con la multiplicación. La suma y el or

exclusivo son operaciones

similares.

Operaciones +, ⊗ y ⊕ en grupo pequeño

Page 527: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 526

X Y X + Y X ⊗ Y X ⊕ Y 0 00 0 00 0 00 1 01 0 00 0 00 1 01 1 01 0 00 1 01 0 00 2 10 2 10 3 11 2 10 0 00 3 11 3 11 2 10 3 11 1 01 0 00 1 01 0 00 1 01 1 01 1 01 2 10 1 01 0 00 1 01 2 10 3 11 2 10 3 11 1 01 3 11 0 00 3 11 2 10 2 10 0 00 2 10 3 11 2 10 2 10 1 01 3 11 2 10 3 11 2 10 2 10 0 00 0 00 0 00 2 10 3 11 1 01 1 01 1 01 3 11 0 00 3 11 2 10 3 11 3 11 1 01 0 00 3 11 2 10 3 11 2 10 1 01 1 01 1 01 3 11 3 11 2 10 0 00 0 00

Operaciones: + mod 2n (mod 4), ⊗ mod 2n+1 (mod 5), XOR (mod 2)

Ejemplo de operación ⊗ en IDEA

Recuerde que 0 es igual a 2n = 4 por lo que:0⊗0 = 22 x 22

= 16 mod 5= 1

Recuerde que 0 es igual a 2n = 4 por lo que:0⊗0 = 22 x 22

= 16 mod 5= 1

0⊗1 = 22 x 1 = 4= 4 mod 5= 4 = 0

(por definición)

0⊗1 = 22 x 1 = 4= 4 mod 5= 4 = 0

(por definición) 0⊗2 = 22 x 2 = 8= 8 mod 5= 3

0⊗2 = 22 x 2 = 8= 8 mod 5= 3

0⊗3 = 22 x 3 = 12= 12 mod 5= 2

0⊗3 = 22 x 3 = 12= 12 mod 5= 2

Los demás cálculos con los diferentes valores de X e Y son todos similares

Page 528: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 527

Operaciones inversas al comienzo y al final

del algoritmo. Esto permite usar el mismo

algoritmo para cifrar que para descifrar.

Bloque principal

MA

Operación cifrado

Detalles del algoritmo IDEA

Page 529: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 528

Estas tres operaciones provocan confusión y no cumplen las leyes distributiva ni asociativa.

La estructura que crea la difusión es un bloque básico denominado Estructura MA Multiplication / Addition.Usa sólo dos claves por cada vuelta y sus entradas F1, F2así como sus salidas G1, G2están conectadas por XOR.

Bloque principal de IDEA

Page 530: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 529

A partir de una entrada de 128 bits, se generan las 52 subclaves de cifrado.

Se produce un desplazamiento de 25 bits a la izquierda en cada una de las 7 fases de generación de claves.

26

23 8664 bits de últimas claves

Con los primeros

128 bits se generan 8 subclaves de 16 bits cada una.

Los 64 últimos bits de

la fase 7 no se usan.

Generación de claves en IDEA

Page 531: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 530

Clave Principal k = 128 bits 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 Primeros 16 bits de clave …. Ultimos 16 bits de clave 1ª 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 …. 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 2ª 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 …. 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 3ª 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 …. 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 4ª 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 …. 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 5ª 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 …. 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 6ª 126 127 128 001 002 003 004 005 006 007 008 009 010 011 012 103 …. 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 7ª 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 …. 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022

En cada operación sobre la clave de 128 bits, se obtienen 8 claves de 16 bits de las que sólo se usan 6 en cada vuelta. Las claves restantes se guardan para la siguiente vuelta.

Desplazamientos de la clave en IDEA

Page 532: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 531

Primera vuelta: k1k2k3k4k5k6 B[1…96]Segunda vuelta: k7k8k9k10k11k12 B[97…128; 26…89]Tercera vuelta: k13k14k15k16k17k18 B[90…128; 1…25; 51…82]Cuarta vuelta: k19k20k21k22k23k24 B[83…128; 1…50]Quinta vuelta: k25k26k27k28k29k30 B[76…128; 1…43]Sexta vuelta: k31k32k33k34k35k36 B[44…75; 101…128; 1…36]Séptima vuelta: k37k38k39k40k41k42 B[37…100; 126…128; 1…29]Octava vuelta: k43k44k45k46k47k48 B[30…125]Transformación: k49k50k51k52 B[23…86]

Claves usadas por IDEA en cada en vuelta

La distribución de bits de subclaves en cada vuelta sigue una lógica

Page 533: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 532

K1: 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016K7: 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112K13: 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105K19: 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098K25: 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091K31: 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059k37: 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052k43: 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045

Primeras claves en cada vuelta en IDEA

Las primeras claves de cada vuelta k1, k7, k13, k19, k25, k31, k37 y k43 usan un conjunto diferente de bits. Excepto en las vueltas primera y octava, los 96 bits de subclave usados en cada vuelta,no son contiguos. Debido al desplazamiento en cada fase de 25 bits a la izquierda, se hace muy difícil el ataque a la clave.

Page 534: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 533

Ejemplo de cálculo de claves en IDEASi la clave es “IDEA es la clave” de 16 caracteres (128 bits), encuentre los 16 bits de la segunda clave de la cuarta vuelta.Solución:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 300 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 600 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0

61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 900 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1

91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 1141 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1

115 116 117 118 119 120 121 122 123 124 125 126 127 1281 1 0 1 1 0 0 1 1 0 0 1 0 1

Como en cada vuelta se usan 6 subclaves, la segunda clave de la cuarta vuelta será la número 3∗6+2 = 20. Como la clave 19 termina en el bit 98, la clave 20 serán los 16 bits siguientes, es decir del 99 al 114: k20 = 10110001 10000101.

Page 535: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 534

INVERSOS

El algoritmo IDEA, al igual que el DES, permite cifrar y descifrar con la misma estructura. Como las operaciones se hacen dentro de un cuerpo finito, en este caso las claves se toman como los inversos de las operaciones XOR, suma

mod 216 y producto mod 216+1, dependiendo de las operaciones realizadas en la fase de cifrado.

Inverso XOR: se aplica la misma función

Inverso aditivo: suma mod 216

Inverso multiplicativo: producto mod 216+1

Descifrado con IDEA

Page 536: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 535

d1 = k49

-1 d2 = -k50 d3 = -k51 d4 = k52-1 d5 = k47 d6 = k48

d7 = k43-1 d8 = -k45 d9 = -k44 d10 = k46

-1 d11 = k41 d12 = k42 d13 = k37

-1 d14 = -k39 d15 = -k38 d16 = k40-1 d17 = k35 d18 = k36

d19 = k31-1 d20 = -k33 d21 = -k32 d22 = k34

-1 d23 = k29 d24 = k30 d25 = k25

-1 d26 = -k27 d27 = -k26 d28 = k28-1 d29 = k23 d30 = k24

d31 = k19-1 d32 = -k21 d33 = -k20 d34 = k22

-1 d35 = k17 d36 = k18 d37 = k13

-1 d38 = -k15 d39 = -k14 d40 = k16-1 d41 = k11 d42 = k12

d43 = k7-1 d44 = -k9 d45 = -k8 d46 = k10

-1 d47 = k5 d48 = k6 d49 = k1

-1 d50 = -k2 d51 = -k3 d52 = k4-1

Inversos del producto

Inversos de la suma Inversos del XOR

Claves de descifrado en IDEA

Page 537: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 536

Para descifrar, cada bloque de criptograma se dividirá en cuatro subbloques de 16 bits

Las operaciones se hacen ahora hacia arriba

Operación de descifrado con IDEA

Módulo IDEA

Page 538: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 537

d1 = k49-1 d2 = -k50 d3 = -k51 d4 = k52

-1 d5 = k47 d6 = k48d7 = k43

-1 d8 = -k45 d9 = -k44 d10 = k46-1 d11 = k41 d12 = k42

d13 = k37-1 d14 = -k39 d15 = -k38 d16 = k40

-1 d17 = k35 d18 = k36d19 = k31

-1 d20 = -k33 d21 = -k32 d22 = k34-1 d23 = k29 d24 = k30

d25 = k25-1 d26 = -k27 d27 = -k26 d28 = k28

-1 d29 = k23 d30 = k24d31 = k19

-1 d32 = -k21 d33 = -k20 d34 = k22-1 d35 = k17 d36 = k18

d37 = k13-1 d38 = -k15 d39 = -k14 d40 = k16

-1 d41 = k11 d42 = k12d43 = k7

-1 d44 = -k9 d45 = -k8 d46 = k10-1 d47 = k5 d48 = k6

d49 = k1-1 d50 = -k2 d51 = -k3 d52 = k4

-1

Ultimas 6 claves de descifrado

Uso de claves inversas en descifrado IDEA

Page 539: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 538

• IDEA se muestra inmune ante un criptoanálisis diferencial. Sus autores conocían esta debilidad del DES y lo hicieron resistente.

• Joan Daemen descubre en 1992 una clase de claves débiles. La siguiente clave k = 0000,0000,0x00,0000,0000,000x,xxxx,x000 en hexadecimal es débil, en el sentido de que un criptoanalista podría identificarla en un ataque con texto en claro elegido. Las posiciones x pueden ser cualquier número en hexadecimal.

• La probabilidad de que se use este tipo de claves es sólo de uno en 296 y se puede, además, eliminar por diseño.

• No se conoce a la fecha ningún sistema o algoritmo de ataque quehaya criptoanalizado el IDEA.

• Joan Daemen y Vincent Rijmen crearán en 1997 el RIJNDAEL, nuevo estándar mundial del NIST desde finales de 2001.

Fortaleza del algoritmo IDEA

http://www.cosic.esat.kuleuven.ac.be/publications/article-140.pdf

Page 540: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 539

• Cifrador en bloque de clave variable propuesto por Ron Rivest.• El código es secreto industrial de RSA Data Security Inc.• Tamaño del bloque de texto: 64 bits.• Con una clave con tamaño variable (de 8 a 1.024 bits) forma una

tabla de 128 bytes (1.024 bits) que depende de la clave inicial.• No usa cajas S y es casi tres veces más rápido que DES.• Se usa en SMIME con longitudes de clave de 40, 64 y 128 bits.• Los algoritmos RC2 y RC4 (este último cifrador de flujo) se

incluyen en productos para la exportación, como navegadores.• Operaciones primitivas de cifra: suma en módulo 232, operación

or exclusivo, complemento de bits, operación AND y rotación circular a la izquierda.

• Realiza 18 vueltas conocidas como mixing y mashing.

Otros algoritmos: RC2

Page 541: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 540

• RC5 es un cifrador en bloque de tamaño variable de Ron Rivest.• Cifra bloques de texto de 32, 64 ó 128 bits.• Tamaño de clave hasta 2.048 bits, en función número de vueltas.• Número de vueltas de 0 a 255.• Versiones específicas: RC5 –w/r/b donde w es el tamaño de la

palabra (16, 32 ó 64 bits) -RC5 cifra bloques de dos palabras-, r es el número de vueltas y b es el tamaño en octetos de la clave K. El valor propuesto por Rivest como mínimo es RC5 –32/12/16.

• Rutina expansión de clave: se expande K para llenar una tabla.• Rutinas de cifrado y descifrado: usa primitivas de suma módulo

2w, or exclusivo y rotación circular a la izquierda.• Características: muy rápido, arquitectura simple, bajos requisitos

de memoria y alta seguridad. Las rotaciones dependientes de los datos le fortalecen ante el criptoanálisis diferencial.

Otros algoritmos: RC5

Page 542: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 541

• SAFER: Secure and Fast Encryption Routine (James Massey).• Cifra bloques de texto de 64 bits. Cada bloque de texto a cifrar se

divide en 8 bytes.• Tamaño de clave: 64 ó 128 bits.• Número de vueltas de 0 a 10; mínimo recomendable 6.• Operaciones de cifrado y descifrado distintas basadas en bytes,

que orientan su uso en aplicaciones de tarjetas inteligentes.• En cada vuelta hay operaciones or y sumas normales, potencias y

logaritmos discretos en p = 257, usando 45 como raíz primitiva.• Al final del algoritmo hay tres niveles de operaciones lineales

conocidas como Pseudo Transformaciones de Hadamard, PTH, cuyo objetivo es aumentar la difusión de los bits.

• Existen versiones SAFER SK-64 y SK-128 más seguras ante claves débiles que sus antecesoras.

Otros algoritmos: SAFER 64 y 128

Page 543: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 542

• Cifrador tipo Feistel de clave variable (Bruce Schneier).• Cifra bloques de texto de 64 bits.• Tamaño de clave: de 32 hasta 448 bits. Se generan 18 subclaves

de 32 bits y cuatro cajas S de 8x32 bits, en total 4.168 bytes.• Número de vueltas: 16, en cada una de ellas se realiza una

permutación función de la clave y una sustitución que es funciónde la clave y los datos.

• Operaciones básicas: or exclusivo y suma módulo 232.• Cajas S: en cada vuelta hay cuatro con 256 entradas cada una.• Características: compacto porque necesita sólo 5 K de memoria,

es muy rápido (5 veces más veloz que DES), es conceptualmente simple y su fortaleza puede variarse según longitud de la clave.Usa una función F con las cuatro cajas S y operaciones básicas de suma y or exclusivo que provocan un efecto de avalancha.

Otros algoritmos: Blowfish

Page 544: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 543

• Cifrador Feistel propuesto por C. Adams y S. Tavares (Canadá).• Cifra bloques de texto de 64 bits con claves de 40 hasta 128 bits

en incrementos de octetos.• Cifra en 16 vueltas.• Usa ocho cajas S de 8 bits de entrada y 32 bits de salida con unas

funciones no lineales óptimas (funciones bent), cuatro cajas en procesos de cifra y las otras cuatro para la generación de claves. Cada caja es un array de 32 columnas y 256 filas. Los 8 bits de entrada seleccionan una fila y los 32 bits de ésta es la salida.

• Operaciones básicas: suma y resta módulo 232, or exclusivo y rotaciones circulares hacia la izquierda.

• Características: inmune a ataques por criptoanálisis diferencial y lineal; algoritmo estándar de cifra en últimas versiones de PGP.

Otros algoritmos: CAST 128

Page 545: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 544

• Ha sido desarrollado por la NSA, National Security Agency, está contenido en los chip Clipper y Capstone y su implementación sólo está permitida en hardware.

• Cifra bloques de 64 bits con una clave de 80 bits.• Los usuarios depositan sus claves secretas en diversas agencias

de gobierno.• Usa 32 vueltas en cada bloque de cifra.• Los detalles del algoritmo no son públicos.• Características: imposición de los EEUU para comunicaciones

con la administración, tiene una puerta trasera que puede dejar en claro la cifra, nadie puede asegurar que el algoritmo tenga la suficiente fortaleza pero los Estados Unidos piensa usarlo en suDMS, Defense Messaging System. Ha sido duramente criticado.

Otros algoritmos: Skipjack

Page 546: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 545

El DES se adopta como estándar en 1976.El NIST certifica al DES en 1987 y luego en 1993.Durante esos años se estandariza como algoritmo de cifra en todo el mundo. Su uso principal lo encontramos en el cifrado de la información intercambiada en transacciones de dinero entre un cajero automático y el banco respectivo.En 1997 NIST no certifica al DES y llama a un concurso internacional para buscar un nuevo estándar mundial de cifra denominado AES Advanced Encryption Standard.Precisamente entre 1997 y 1999 el DES se enfrenta a tres ataques o desafíos conocidos como DES Challenge que impulsa y promociona la compañía RSA.

El DES deja de ser un estándar

http://www.nist.gov/

Page 547: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 546

29 enero 1997: DES Challenge I. Se rompe la clave en 96 días con 80.000 de ordenadores en Internet que evalúan 7.000 millones de clave por segundo. Para encontrar la clave se debe recorrer el 25% del espacio de claves ☺.13 enero 1998: DES Challenge II-1. Se rompe la clave en 39 días con un ataque tipo distribuido por distributed.net que llega a evaluar 34.000 millones de claves por segundo y debe recorrer el 88% del espacio de claves .13 julio de 1998: DES Challenge II-2. Electronic FrontierFoundation EFF crea el DES Cracker con una inversión de US $ 200.000 y en 56 horas (2½ días) rompe la clave evaluando 90.000 millones de claves por segundo.

DES Challenge I y II

Page 548: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 547

18 enero 1999: DES Challenge III. Se unen la máquina DES Cracker y distributed.net con 100.000 ordenadores conectados en Internet para romper la clave en 22 horas, menos de 1 día, evaluando 245.000 millones de claves por segundo tras recorrer el 22% del espacio de claves. Se trata del último desafío propuesto por RSA que pone en evidencia la capacidad de ataques distribuidos a través de los tiempos muertos de procesador de máquinas conectadas a Internet que, con un programa cliente, van resolviendo un pequeño trozo del espacio de claves, comunicándose para ello con un servidor. Recuerde, el DES no ha sido criptoanalizado, se ha roto la cifra sólo por el pequeño tamaño de su clave.

DES Challenge III

http://www.rsasecurity.com/rsalabs/node.asp?id=2108

Page 549: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 548

Magnitudes de tiempo y criptoanálisis

Longitud de la clave Tiempo necesario para romper la clave

40 bits 2 segundos

48 bits 9 minutos

56 bits 40 horas

64 bits 14 meses

72 bits 305 años

80 bits 78.250 (216) años

96 bits 5.127.160.311 (232) años

112 bits 336.013.578.167.538 (248) años

128 bits 22.020.985.858.787.784.059 (264) años

Referencia de tiempo con números grandes

Edad planeta 10.000.000.000 (1010 = 234) años

Edad universo 100.000.000.000 (1011 = 237) años

La tabla muestra el tiempo medio de criptoanálisis

necesario para romper una clave de cifra simétrica

mediante fuerza bruta, en este caso usando la potencia

de cálculo alcanzada en el DES Challenge III en 1999,

unos 250.000 millones de claves por segundo con la

máquina DES Cracker y unos 100.000 computadores

a través de Internet. Según la ley de Moore, en el 2006 esta potencia de cálculo se multiplicaría por 20 o más.

La seguridad de 128 bits de una cifra simétrica es equivalente a la de 1.024 bits de cifra asimétrica.

Page 550: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 549

AES: Advanced Encryption StandardEl DES, estándar desde 1976, pasa la certificación de la NBS National Bureaux of Standards en 1987 y en 1993.En 1997 el NIST National Institute of Standards and Technology(antigua NBS) no certifica al DES y llama a concurso público para un nuevo algoritmo estándar, el AES.

En octubre del año 2000 el NIST elige el algoritmo belga Rijndael como nuevo estándar para cifrado del siglo XXI.

El nuevo estándar en cifra AES

http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

http://www.criptored.upm.es/guiateoria/gt_m480a.htm

http://www.iaik.tu-graz.ac.at/research/krypto/AES/

Page 551: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 550

Rijndael: autores Vincent Rijmen & Joan Daemen• No es de tipo Feistel.• Implementado para trabajar en los procesadores de 8 bits

usados en tarjetas inteligentes y en CPUs de 32 bits.• Tamaño de clave variable: 128, 192 y 256 bits (estándar) o

bien múltiplo de 4 bytes.• Tamaño del bloque de texto: 128 bits o múltiplo de 4 bytes.• Operaciones modulares a nivel de byte (representación en

forma de polinomios) y de palabra de 4 bytes: 32 bits.• Número de etapas flexible según necesidades del usuario.• Usa un conjunto de Cajas S similares a las del DES.

Características del algoritmo AES

http://www.iaik.tu-graz.ac.at/research/krypto/AES/old/%7Erijmen/rijndael/

Page 552: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 551

Unidad básica de tratamiento: el byte

• Suma y multiplicación. Son cálculos en Campos de Galois GF(28) con 8 bits. Para la reducción de exponente se usará un polinomio primitivo p(x) = x8 + x4 + x3 + x + 1.

• Producto por x. Esta operación conocida como xtime(a) al igual que en el caso anterior usa la reducción de exponente. Puede implementarse fácilmente con desplazamientos y operaciones or exclusivo.

Operaciones con bytes en AES

Ejemplos

Page 553: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 552

Vamos a sumar los valores hexadecimales 57 y 83:A = 5716 = 0101 01112 B = 8316 = 1000 00112que expresados en polinomios dentro de GF(28) serán:A = 0101 01112 = x6 + x4 + x2 + x + 1B = 1000 00112 = x7 + x + 1

Sumando: A+B = (x6 + x4 + x2 + x + 1) + (x7 + x + 1) mod 2A+B = (x7 + x6 + x4 + x2 + 2x + 2) mod 2A+B = x7 + x6 + x4 + x2 = 1101 01002 = d416

Y lo mismo se obtiene con la suma Or exclusivo:0101 0111 ⊕ 1000 0011 = 1101 01002 = d416

Ejemplo de suma en GF(28)

Page 554: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 553

Vamos a multiplicar los valores hexadecimales 57 y 83:

A = 5716 = 0101 01112 B = 8316 = 1000 00112

que expresados en polinomios dentro de GF(28) serán:A = 0101 01112 = x6 + x4 + x2 + x + 1B = 1000 00112 = x7 + x + 1

A∗B = (x6 + x4 + x2 + x + 1)∗(x7 + x + 1) mod 2A∗B = x13 + x11 + x9 + x8 + 2x7 + x6 + x5 + x4 + x3 + 2x2 + 2x +1Reduciendo mod 2A∗B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1Este resultado hay que reducirlo por p(x) = x8 + x4 + x3 + x + 1

Ejemplo de producto en GF(28) (1)

Page 555: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 554

Como el polinomio irreducible es p(x) = x8 + x4 + x3 + x + 1(x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1) mod (x8 + x4 + x3 + x + 1)Para dejar los valores dentro de GF(28) vemos que un divisor será x5 + x3 puesto que x5x8 = x13; x5x4 = x9; x5x3 = x8 y x3x8 = x11.x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1 x8 + x4 + x3 + x + 1

x5 + x3

x13 + x9 + x8 + x6 + x5 multiplicando p(x) por x5

x11 + x4 + x3 + 1 reduciendo mod 2x11 + x7 + x6 + x4 + x3 multiplicando p(x) por x3

x7 + x6 + 1 reduciendo mod 2Resultado: A∗B = x7 + x6 + 1 = 1100 00012 = c116

Ejemplo de producto en GF(28) (2)

Page 556: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 555

x8 = x4 + x3 + x + 1Están fuera del cuerpo de 8 bits

El mismo resultado pero de otra forma

A∗B = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 + 1

x13 = x5∗x8 = x5∗(x4 + x3 + x + 1) = x9 + x8 + x6 + x5

x13 = x ∗(x4 + x3 + x + 1) + (x4 + x3 + x + 1) + x6 + x5

x13 = (x5 + x4 + x2 + x) + (x4 + x3 + x + 1) + x6 + x5

x13 = x6 + x3 + x2 + 1

Es mucho más complejo, pero repitiendo el mismo desarrollo para x11, x9 y x8, reduciendo en cada caso mod 2, obtenemos:

A∗B = x7 + x6 + 1 = 1100 0001 = c116

Page 557: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 556

Hay tres transformaciones distintas llamadas capas en las que setratan los bits. Estas constan de:

Capa de Mezcla Lineal: en ella se busca la difusión de los bits.Capa No Lineal: se trata de una zona similar a las cajas S del DES.Capa Clave: operaciones con una función or exclusivo de la subclave y la información de esta etapa intermedia.

Las transformaciones realizadas en cada paso del algoritmo se denominan estados. Estos estados se representa por una matriz de 4 filas y Nb = 4 columnas para el texto en claro y 4 filas y Nk = 4, 6 u 8 columnas para las claves.

Transformaciones o capas del AES

http://www.quadibloc.com/crypto/co040401.htm

En la siguiente página web encontrará una extensa explicación de las operaciones en el algoritmo Rijndael con interesantes ilustraciones.

Page 558: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 557

Esquema general del AES

Funciones en cifrado:- AddRoundKey- ByteSub- ShiftRow - MixColumns

Funciones en descifrado:- InvAddRoundKey- InvByteSub- InvShiftRow - InvMixColumns

Se realizará además una expansión de la clave K para generar desde K0 hasta Kr.

http://www.criptored.upm.es/guiateoria/gt_m117i.htmFigura y tablas tomadas de:

Page 559: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 558

Estados de entrada y claves del AES

a0 a4 a8 a12

a1 a5 a9 a13

a2 a6 a10 a14

a3 a7 a11 a15

k0 k4 k8 k12

k1 k5 k9 k13

k2 k6 k10 k14

k3 k7 k11 k15

k0 k4 k8 k12 k16 k20

k1 k5 k9 k13 k17 k21

k2 k6 k10 k14 k18 k22

k3 k7 k11 k15 k19 k23

k0 k4 k8 k12 k16 k20 k24 k28

k1 k5 k9 k13 k17 k21 k25 k29

k2 k6 k10 k14 k18 k22 k26 k30

k3 k7 k11 k15 k19 k23 k27 k31

Bloque de texto 16 bytes (128 bits)Nb = 128/32 = 4

Clave de 16 bytes (128 bits)Nk = 128/32 = 4 (10 rondas)

Clave de 24 bytes (192 bits)Nk = 192/32 = 6 (12 rondas)

Clave de 32 bytes (256 bits)Nk = 256/32 = 8 (16 rondas)

Estados

Page 560: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 559

Combinaciones de estados

Combinaciones posibles de

estados en AES

Longitud del bloque

(Nb palabras)

Longitud de la clave

(Nk palabras)

Número de Rondas

(Nr)AES – 128 4 4 10AES – 192 4 6 12AES – 256 4 8 14

Para las funciones de cifrado y descifrado se usarán 4 transformaciones orientadas a bytes:

1. Sustitución de un byte mediante una tabla S-box.2. Desplazamiento de columnas de un estado.3. Mezcla de datos dentro de cada columna de estado.4. Añade una clave de vuelta al estado.

Page 561: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 560

Función ByteSub

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S’0,0 S’0,1 S’0,2 S’0,3

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

S-Box

Se trata de una función no lineal que se realiza a través de una S-box. La S-box se construye:a) calculando el inverso en GF(28), y b) calculando la siguiente transformación afín sobre GF(2):

bi’ = bi ⊕ b(i+4)mod8 ⊕ b(i+5)mod8 ⊕ b(i+6)mod8 ⊕ b(i+7)mod8 ⊕ ciDonde 0 ≤ i < 8, bi es el iésimo bit del byte y ci es el iésimo bit del byte c cuyo valor es {63}16 o {011000011}2.

Page 562: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 561

Tabla de inversos en mod 28

Lógicamente se cumple que:Si:inv x = y

Entonces:inv y = x

Por ejemplo:inv c4 = dainv da = c4

Page 563: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 562

Representación de la función ByteSub

b’0b’1b’2b’3b’4b’5b’6b’7

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

b0b1b2b3b4b5b6b7

11000110

= +

La transformación afín anterior queda:

b’0 = b0 ⊕ b4 ⊕ b5 ⊕ b6 ⊕ b7 ⊕ c0 b’4 = b4 ⊕ b0 ⊕ b1 ⊕ b2 ⊕ b3 ⊕ c4

b’1 = b1 ⊕ b5 ⊕ b6 ⊕ b7 ⊕ b0 ⊕ c1 b’5 = b1 ⊕ b1 ⊕ b2 ⊕ b3 ⊕ b4 ⊕ c5

b’2 = b2 ⊕ b5 ⊕ b7 ⊕ b0 ⊕ b1 ⊕ c2 b’6 = b6 ⊕ b2 ⊕ b3 ⊕ b4 ⊕ b5 ⊕ c6

b’3 = b3 ⊕ b7 ⊕ b0 ⊕ b1 ⊕ b2 ⊕ c3 b’7 = b7 ⊕ b3 ⊕ b4 ⊕ b5 ⊕ b6 ⊕ c7

Representación matricial

Valor {63}16 o {011000011}2

Es el inverso del valor de entrada

Page 564: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 563

Tabla ByteSub

Usando la siguiente tabla, se llega a igual resultado que calculando el inverso y luego aplicando la transformación matricial mostrada en la diapositiva anterior.

En la siguiente diapositiva hay un ejemplo para el valor 5a mostrado.

Page 565: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 564

Se pide calcular el ByteSub de 5a

Ejemplo de operación ByteSub

5a = 01011010 = x6 + x4 + x3 + x + 1inv (5A) = 22 = 00100010 (según la tabla dada)

01111101

1 0 0 0 1 1 1 11 1 0 0 0 1 1 11 1 1 0 0 0 1 11 1 1 1 0 0 0 11 1 1 1 1 0 0 00 1 1 1 1 1 0 00 0 1 1 1 1 1 00 0 0 1 1 1 1 1

01000100

11000110

=+

Operando filas por columnas y sumando al resultado el valor {011000011}2 se obtiene: 1011 1110 = be.

Al mismo valor se llega si en la tabla buscamos la intersección

entre la fila 5 y la columna a: el resultado es

el valor be.

Page 566: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 565

La función consiste en desplazar bloques de un byte hacia la izquierda módulo columna (en este caso 4) dentro de una fila.

Así la fila 0 no desplaza, la fila 1 desplaza un byte, la fila 2 desplaza dos bytes y la fila 3 desplaza tres bytes como se muestra.

Función ShiftRow

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S0,0 S0,1 S0,2 S0,3

S1,1 S1,2 S1,3 S1,0

S2,2 S2,3 S2,0 S2,1

S3,3 S3,0 S3,1 S3,2

Page 567: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 566

Opera sobre columnas que son consideradas como un polinomio sobre GF(28) multiplicando las columnas módulo x4 + 1 por este polinomio fijo, en donde los valores {} están en hexadecimal, que es primo relativo con x4 + 1 y por tanto asegura el inverso.

a(x) = {03}x3 + {01}x2 + {01}x + {02}

Por tanto, recuerde que {03} = x + 1, {02} = x, {01} = 1.

Función MixColumns

S’0,CS’1,CS’2,CS’3,C

02 03 01 0101 02 03 0101 01 02 0303 01 01 02

S0,CS1,CS2,CS3,C

=

Representación matricial de la función MixColumns

Luego, las operaciones sobre columnas se expresan como:

Para

0 ≤ C < Nb

Page 568: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 567

S’0,C = ({02} • S0,C) ⊕ ({03} • S1,C) ⊕ S2,C ⊕ S3,C

S’1,C = S0,C ⊕ ({02} • S1,C) ⊕ ({03} • S2,C) ⊕ S3,C

S’2,C = S0,C ⊕ S1,C ⊕ ({02} • S2,C) ⊕ ({03} • S3,C)S’3,C = ({03} • S0,C) ⊕ S1,C ⊕ S2,C ⊕ ({02} • S3,C)

Ejemplo de operación MixColumns

e1 a8 63 0d

fb 18 f4 c8

96 5b 73 11

7c a0 e6 fd

Si suponemos que el estado intermedio es el indicado:

El primer byte de estado S’0,0 quedará:S’0,0 = {02}S0,0 ⊕ {03}S1,0 ⊕ S2,0 ⊕ S3,0S’0,0 = {02}e1 ⊕ {03}fb ⊕ 96 ⊕ 7c{02}e1 = x(x7 + x6 + x5 + 1){02}e1 = x8 + x7 + x6 + x{02}e1 = (x8 + x7 + x6 + x) mod x4 + 1 = d2{03}fb = (x + 1) (x7 + x6 + x5 + x4 + x3 + x + 1){03}fb = x8 + x3 + x2 + 1{03}fb = (x8 + x3 + x2 + 1) mod x4 + 1 = 1d

S’0,0 = d2 ⊕ 1d ⊕ 96 ⊕ 7cLuego: S’0,0 = 25Los bytes hasta S’4,4 se calculan de forma similar.

Page 569: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 568

Función AddRoundKey

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S’0,0 ⊕ K0 S’0,1 ⊕ K1 S’0,2 ⊕ K2 S’0,3 ⊕ K3

S’1,0 ⊕ K4 S’1,1 ⊕ K5 S’1,2 ⊕ K6 S’1,3 ⊕ K7

S’2,0 ⊕ K8 S’2,1 ⊕ K9 S’2,2 ⊕ K10 S’2,3 ⊕ K11

S’3,0 ⊕ K12 S’3,1 ⊕ K13 S’3,2 ⊕ K14 S’3,3 ⊕ K15

AddRoundKey

Se sumarán sumarán or exclusivo el estado intermedio con la clave de cada ronda.

En la ronda 0 será el or exclusivo entre el texto de entrada y la clave inicial; en las rondas siguientes (p.e. 1 a 9) será el or exclusivo de las subclave de cada ronda con la salida de la función MixColumns y en la última ronda (10) el or exclusivo de la subclave de estado 10 y la salida de ShiftRows.

Page 570: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 569

AddRoundKey en la vuelta 0

Ronda Estado Inicio ByteSub ShifRows MixColums AddRoundKey

⊕ =

Entra

da

Si el bloque de entrada y la clave son de 128 bits, (Nb=4 y Nk =4) con valoresEntrada: 32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34

Clave: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c entonces

1

2b 28 ab 09 7e ae f7 cf

16 a6 88 3c 15 d2 15 4f

32 88 31 e0 43 5a 31 37

a8 8d a2 34 f6 30 98 07

19 a0 9a e9 3d f4 c6 f8

be 2b 2a 08 e3 e2 8d 48

El primer valor del estado siguiente S’0,0 será 32 XOR 2b

0011 0010 ⊕ 0010 1011= 0001 1001 = 19

La vuelta 10 y el criptograma final se

muestran en la próxima diapositiva

Page 571: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 570

AddRoundKey en la vuelta 10

Ronda Estado Inicio ByteSub ShifRows MixColums AddRoundKey

⊕ =

Salid

a

10

d0 c9 e1 b6 14 ee 3f 63

a8 89 c8 a6 f9 25 0c 0c

eb 59 8b 1b 40 2e a1 c3

1e 84 e7 d2 f2 38 13 42

e9 cb 3d af 09 31 32 2e

72 5f 94 b5 89 07 7d 2c

e9 cb 3d af 31 32 2e 09

b5 72 5f 94 7d 2c 89 07

39 02 dc 19 25 dc 11 6a

1d fb 97 32 84 09 85 0b

9 ...

http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Como se observa, en esta décima y última vuelta (para Nb = 4 y Nk = 4) sólo se aplican las funciones ByteSub, ShitfRows y AddRoundKey.

Ejemplo tomado del documento oficial del NIST:

Page 572: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 571

Expansión de la clave en AES

Bloque / Clave Nk = 4 (128 bits)

Nk = 6 (192 bits)

Nk = 8 (256 bits)

Nb = 4 128 bits

Nr = 101.408 bits

Nr = 121.664 bits

Nr = 141.920 bits

Nb = 6 192 bits

Nr = 122.304 bits

Nr = 122.496 bits

Nr = 142.880 bits

Nb = 8 256 bits

Nr = 143.840 bits

Nr = 143.328 bits

Nr = 143.840 bits

Número de bits de las subclaves para valores estándar de Nb y Nk.

La expansión generará los bytes de las subclaves a partir de la clave K principal. Será un array lineal W de palabras de 4 bytes y con longitud Nb∗(Nr+1).

W0 W1 W2 W3 W4 W5 W6 W6 W7 W8 W9 W10 W11 W12 W13 ...

Page 573: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 572

Expansión de la clave en función de Nk

Las primeras Nk palabras se copiarán de la clave principal. Las restantes Nb∗(Nr + 1) - Nk palabras se generarán mediante un algoritmo que será diferente si Nk ≤ 6 o bien Nk > 6.

Si Nk ≤ 6Si la posición i dentro del array W(i) es múltiplo del valor Nk:

W(i) = W(i - Nk) xor [ByteSub (RotWord [W(i - 1)]) xor Rcon (i/Nk)]Si la posición i dentro del array W(i) no es múltiplo del valor Nk:

W(i) = W(i - Nk) xor W(i - 1)

Si Nk > 6El valor de la variable i debe satisfacer la expresión i mod Nk = 4.Las palabras de subclaves se calcularán:

W(i) = W(i - Nk) xor ByteSub [W(i - 1)]

Page 574: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 573

Funciones RotWord y Rcon

RotWord rota una posición a la izquierda los bytes de la palabra. Si la palabra de 4 bytes es (a, b, c, d) Rotworddevolverá (b, c, d, a).

Rcon genera la constante Rcon(j) = [R(j), {00}, {00}, {00}] de 32 bits y donde R(j) es el elemento GF(28) correspondiente al valor xj-1. Su cálculo se verá en el siguiente ejemplo.

2b 28 ab 09 7e ae f7 cf

16 a6 88 3c 15 d2 15 4f K = RotWord

7e ae f7 cf15 d2 15 4f

2b 28 ab 0916 a6 88 3c

K: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c

ab

dc

Page 575: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 574

• W(0) = 2b 7e 15 16• W(1) = 28 ae d2 a6• W(2) = ab f7 15 88• W(3) = 09 cf 4f 3c

Expansión W(4) para una clave de 128 bits

2b 28 ab 09 7e ae f7 cf

16 a6 88 3c 15 d2 15 4f

Sea K: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c (Nk = 4)

Cálculo de W(4) con i = 4, múltiplo de Nk• temp = W(3) = 09 cf 4f 3c• RotWord (temp) = cf 4c 3c 09 → temp• ByteSub (temp) = 8a 84 eb 01 → temp• Rcon(4/4) = Rcon(1); j = 1 ⇒ xj-1 = x0 = 01• Rcon(1) = [01, 00, 00, 00]• Rcon(1) xor temp = 8b 84 eb 01 → temp• W(4) = W(0) xor temp

2b 7e 15 16⊕ 8b 84 eb 01

a0 fa fe 17

a0 88 23 2a fa 54 a3 6c

17 b1 39 05 fe 2c 39 76

W(0) W(1) W(2) W(3)

Page 576: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 575

• W(0) = 2b 7e 15 16• W(1) = 28 ae d2 a6• W(2) = ab f7 15 88• W(3) = 09 cf 4f 3c

Expansión W(5) para una clave de 128 bits

2b 28 ab 09 7e ae f7 cf

16 a6 88 3c 15 d2 15 4f ⇒

Cálculo de W(5) con i = 5, no múltiplo de Nk• W(i) = W(i - Nk) xor W(i - 1)• W(5) = W(5 – 4) xor W(5 – 1)• W(5) = W(1) xor W(4)• Como W(4) = a0 fa fe 17 (valor ya

calculado en el paso anterior)

a0 88 23 2a fa 54 a3 6c

17 b1 39 05 fe 2c 39 76

W(0) W(1) W(2) W(3)

Sea K: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c (Nk = 4)

28 ae d2 a6⊕ a0 fa fe 17

88 54 2c b1

Page 577: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 576

Si K es de 128 bits, Nk = 4. Supondremos un bloque de texto de 128 bits (Nb = 4).La longitud del array W será (4*[10+1]) = 44 palabras de 4 bytes. En las cuatro primeras posiciones (0 a 3) se copia la clave principal K. Las restantes 40 palabras de las posiciones 4 a 43 (4 ≤ i ≤ 43) se calcularán según las expresiones de la diapositiva anterior.Para W(i) con valores de i múltiplo de Nk (4, 8, 12, 16, 20, 24, 28, 32, 36, 40), la palabra de 4 bytes se calculará tomando una palabra que está cuatro posiciones antes que ella, y realizando luego una operación xor con una función de transformación (ByteSub - RotWord - Rcon) de la palabra que se encuentra una posición antes que la actual.Para el resto de valores de i (5, 6, 7, 9, ..., 41, 42, 43) la palabra de 4 bytes se calculará realizando una operación xor entre la palabra que se encuentra cuatro posiciones antes en el array y la palabra que se encuentra una posición antes que la actual.

Expansión genérica para clave de 128 bits

Page 578: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 577

Descifrado en AES: InvAddRoundKey

Vuelta FinalInvAddRoundKeyInvShiftRowInvByteSubVuelta estándarInvAddRoundKeyInvMixColumnInvShiftRowInvByteSubSalidaInvAddRoundKey

Se invierte el orden de las transformaciones y se toman las funciones inversas.Según el esquema general ya visto, se tiene el cuadro siguiente.

InvAddRoundKey

Como se ha usado una operación xor en esta transformación, el inverso es el mismo valor. Por lo tanto aplicaremos las mismas claves de cifrado, pero de forma inversa, desde Kr a K0.

Page 579: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 578

InvShiftRows

En este caso se desplazan bloques de un byte hacia la derecha módulo columna (en este caso 4) dentro de una fila.

Así la fila 0 no desplaza, la fila 1 desplaza un byte, la fila 2 desplaza dos bytes y la fila 3 desplaza tres bytes como se muestra.

S0,0 S0,1 S0,2 S0,3

S1,0 S1,1 S1,2 S1,3

S2,0 S2,1 S2,2 S2,3

S3,0 S3,1 S3,2 S3,3

S0,0 S0,1 S0,2 S0,3

S1,3 S1,0 S1,1 S1,2

S2,2 S2,3 S2,0 S2,1

S3,1 S3,2 S3,3 S3,0

Page 580: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 579

Tabla InvByteSub

El inverso consistirá en devolver los valores a su posición original en la tabla ByteSub.

Recordando el valor mostrado en la tabla ByteSub, se muestra que el InvByteSub de bees igual a 5a.

Page 581: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 580

InvMixColumns

Como la transformación MixColumns multiplicaba por un polinomio fijo a(x) = {03}x3 + {01}x2 + {01}x + {02}, primo relativo con x4 + 1, su inverso será.

b(x) = {0B}x3 + {0D}x2 + {09}x + {0E}

S’0,CS’1,CS’2,CS’3,C

0e 0b 0d 0909 0e 0b 0d0d 09 0e 0b0b 0d 09 0e

S0,CS1,CS2,CS3,C

=

Representación matricial de la función InvMixColumns

Para

0 ≤ C < Nb

Como ejercicio, recupere el valor encontrado en el ejercicio de la función MixColumns mostrado en una diapositiva anterior.

Page 582: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 581

Pros y contras de los Sistemas de Clave Secreta

• El emisor y el receptor comparten una misma clave.

• La seguridad depende sólo del secreto de la clave.

• La velocidad de cifra es muy alta y los sistemas con un espacio de clave con cientos de bits son muy seguros.

• Permitirán autenticar los mensajes con MACs.

• Es imposible establecer un sistema de distribución y gestión de claves eficiente entre emisor y receptor.

• Carecen de una firma digital, al menos en un sentido amplio y sencillo.

... pero

Resumen de los sistemas de clave secreta

Fin del capítulo

Page 583: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 582

Cuestiones y ejercicios (1 de 3)

1. ¿Qué particularidad tiene el cifrado tipo Feistel?2. ¿Qué importante diferencia tiene el algoritmo Skipjack con respecto

a todos los demás? Razone si eso es bueno o malo en criptografía.3. ¿Cuál es la razón principal de la debilidad del algoritmo DES?4. ¿Con cuál de las dos versiones respecto a la reducción de clave

aplicada al DES por la NSA se queda Ud.? Razone las dos respuestas posibles.

5. ¿Qué tamaño de bloque de mensaje cifra el DES, con qué longitud de clave y con cuántas vueltas?

6. ¿Tiene algún interés criptográfico la tabla de permutación inicial IP que se repite en sentido contrario al final en el DES? ¿Por qué?

7. ¿Qué distribución especial observa en los dos bloques de texto acifrar L0 y R0 en DES? ¿Qué separación en bits hay entre ellos?

Page 584: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 583

Cuestiones y ejercicios (2 de 3)

8. ¿Cómo se las arregla DES para realizar operaciones suma módulo dos con sub-bloques de texto de 32 bits y sub-claves de 56 bits?

9. ¿Qué dos importantes funciones cumplen las cajas S en el DES?10. En la caja S3 del DES entra la secuencia de bits 101101, ¿qué sale?11. Si la clave DES en ASCII (no números) es HOLAPACO, ¿cuáles

serán la primera y segunda sub-claves de cifrado?12. ¿Por qué no debe usarse nunca el modo de cifra ECB?13. ¿Podemos usar el DES como un generador de secuencia cifrante?14. ¿Por qué decimos que el DES no es un grupo? ¿Qué significa eso?15. ¿En qué consiste un ataque por encuentro a medio camino?16. ¿Por qué se usa en el triple DES un cifrado con sólo dos claves tipo

EDE y no con tres como su nombre indica?

Page 585: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 584

Cuestiones y ejercicios (3 de 3)

17. ¿Por qué en IDEA se usa una palabra de 16 bits y no de 32 bits? ¿Se podría usar una palabra de 8 bits ó 24 bits? Justifique su respuesta.

18. Encuentre los resultados de las tres operaciones básicas para unsistema simulado IDEA que trabaja con 4 bits.

19. ¿Qué tamaño de bloque cifra IDEA, con qué longitud de clave y con cuántas vueltas?

20. ¿Cómo se generan las sub-claves en IDEA?21. ¿Cuáles son las claves Z9 y Z10 en un sistema IDEA en el que la

clave maestra en ASCII es K = UnaClaveDePrueba.22. Encuentre las claves de descifrado de las siguientes claves de cifra

en IDEA: k12 = 3.256; k13 = 34.517; k14 = 45.592.23. Sume y multiplique 31 y 18 en GF(28) según algoritmo Rijndael.24. Invente Ud. mismo diversos ejercicios sobre el algoritmo AES.

Page 586: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 585

Prácticas del tema 12 (1/6)Software safeDES: http://www.criptored.upm.es/software/sw_m001j.htm

1. Con la clave ASCII K = 123Clave cifre el mensaje 8 bytes M = Hola Ana. Usando el portapapeles, descifre el criptograma y observe si hay relleno. Repita la cifra del mensaje usando ahora K = A9A83CFA8B16CF0D una clave hexadecimal y compruebe nuevamente si hay relleno.

2. Con esas dos claves cifre el mensaje de 15 bytes M = No me respondes, descífrelo y compruebe que ahora hay un relleno de un byte para formar un segundo bloque de texto en hexadecimal de 64 bits.

3. Repita el apartado 2 para el mensaje M = Ya no te saludo más Lucía.4. Cifre el mensaje M = No sale lo mismo, con K = 1111111111111111 en

hexadecimal y compruebe que al descifrar ya no puede usar el portapapeles tomando el criptograma como texto ASCII.

5. Repita el descifrado copiando la entrada del criptograma en hexadecimal y pegándolo en ese formato como entrada a descifrar. Saque conclusiones.

Page 587: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 586

Prácticas del tema 12 (2/6)

6. Con la clave ASCII K = BCBCBCBC cifre el mensaje M = Sale lo mismo. Descífrelo con esa clave y con la clave K = BCCCCCCB. Explique y justifique lo que ha sucedido.

7. Repita la cifra ahora con las claves hexadecimal K = 1111112222111111 y K = 2222221111222222. Explique y justifique lo que ha sucedido.

8. Cifre el mensaje M = Cifra con clave débil, con la clave K = ààààññññ. Vuelva a cifrar el criptograma con la misma clave y compruebe que se cumple la relación Ek[Ek(M)] = M. No olvide copiar el texto cifrado en hexadecimal para volver a cifrar. Justifique lo que ha pasado.

9. Repita la cifra del apartado 8 con las seis claves débiles del DES, en este caso representadas en hexadecimal.

10. Cifre el mensaje M = Ahora son claves semidébiles, con las seis parejas de claves semidébiles Ek1|Ek2 del DES en hexadecimal y compruebe que se cumple la relación Ek1[Ek2(M)] = M.

Page 588: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 587

Prácticas del tema 12 (3/6)

11. Cifre el mensaje M = Probaremos un ataque por fuerza bruta, con la clave K = AAABBAAA. Abra una nueva ventana y descífrelo usando el portapapeles y tomando como entrada el criptograma en hexadecimal. Con ambos textos (claro y criptograma) en hexadecimal proceda a un ataque monousuario con clave inicial AAABA000 y clave final AAABBDDD.

12. ¿Qué puede decir con respecto al tiempo de criptoanálisis real y el tiempo que se requeriría para recorrer todo el espacio de claves dado?

13. Comente y justifique el número de claves válidas encontradas.14. Repita el ataque con clave inicial AAABB777 y final AAABFFFF.

Comente lo que ha sucedido con respecto al espacio de claves elegido.15. Repita el ejemplo 11 usando un ataque de simulación multiusuario con la

clave inicial AAABB000 y la clave final AAABBDDD. Elija el número de procesos desde 1 hasta 10 y observe lo que sucede con el tiempo de ataque a la clave. Justifique lo que ha visto.

Page 589: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 588

Prácticas del tema 12 (4/6)

16. Repita el ejemplo anterior usando un ataque de simulación multiusuario con la misma clave inicial AAABB000 pero una clave final AAABBFFF.

17. Cifre el mensaje M = Ahora atacaremos claves en hexadecimal, con la clave K = 1111222233334444. La clave inicial es 111122223327BF6F y la clave final 11112222333B72EE. Proceda al ataque monousuario.

18. Con la calculadora de Windows en hexadecimal reste la clave inicial de la clave final y encuentre luego su valor en decimal. ¿Por qué no coincide este valor con el número de claves distintas que indica el programa?

19. Si tiene entorno de red, realice este ataque multiusuario con un ordenador trabajando como servidor (Inicio Ejecutar command Enter ipconfig) y los demás como clientes. Elija un rango de claves 10 ó 20 veces mayor.

20. ¿Cuánto tiempo tardaría su computador en romper una clave real de DES? ¿Cuántos computadores trabajando en paralelo necesitaríamos para romper una clave DES en 24 horas usando este programa safeDES?

Page 590: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 589

Prácticas del tema 12 (5/6)Software CryptoIDEA: http://www.criptored.upm.es/software/sw_m001f.htm

1. Cree un archivo txt con el siguiente texto “Una clave con letras C” Cree una clave K = CCCCCCCCCCCCCCCC de nombre ClaveTodasC. Cifre el archivo y haga un seguimiento de las subclaves de cifra generadas. ¿Por qué aparecen bloques de 8 subclaves con valores iguales y cuatro al final?

2. Compruebe con la calculadora de Windows las subclaves Z1 y Z9.3. Cifre nuevamente ese archivo con una clave de nombre UnaClaveMejor y

valor K = EstaClaveEsBuena. Vuelva a hacer el seguimiento de subclaves, observe lo que sucede y justifíquelo.

4. Compruebe con la calculadora de Windows las subclaves Z1 y Z2

5. Con esta nueva clave cifre el archivo con texto “De64bits” y vea el archivo cifrado con cuatro bloques de 16 bits. Cifre ahora el archivo con texto mayor “Más de 64 bits” y vuelva a ver la cifra. Saque conclusiones.

6. Descifre esta última cifra y observe las subclaves dc descifrado.

Page 591: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 12: Cifrado Simétrico en Bloque Página 590

Prácticas del tema 12 (6/6)7. Con las herramientas del programa compruebe que las claves de descifrado

son las inversas multiplicativas, aditivas o del or exclusivo en función de la zona del algoritmo donde se han usado las claves de cifrado, por ejemplo:

d47 = k5d48 = k6d49 = inv (k1, 65537) multiplicativod50 = inv (k2, 65536) aditivo (el complemento a n)d51 = inv (k3, 65536) aditivo (el complemento a n)d52 = inv (k4, 65537) multiplicativo

8. ¿Qué sucede con las claves de cifrado y descifrado si la clave K tiene sólo cuatro caracteres ABCD?

9. Observe los bloques de cifrado de 16 bits, en función del tamaño del archivo de entrada. Si M ≤ 8 bytes hay 4 bloques, si 8 < M ≤ 16 bytes hay 8 bloques, etc.

Software de laboratorio del AES: próximamente en página web de la asignatura.

Page 592: Seguridad Informatica

Capítulo 13Cifrado Asimétrico con Mochilas

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 30 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 593: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 592

El problema de la mochila

El problema matemático de la mochila, referido ahora a números y no a los elementos físicos que puedan entrar en ella, se plantea como sigue:

Dada la siguiente secuencia de m números enteros positivos S = {S1, S2, S3, ..., Sm-2, Sm-1, Sm} y un valor u objetivo T, se pide encontrar un subconjunto de S SS = {Sa, Sb, ..., Sj} que cumpla con ese objetivo T:

T = Σ SS = Sa + Sb + ... + Sj

Page 594: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 593

Solución al problema de la mochila

Si los elementos de la mochila son números grandes, no están ordenados y no siguen una distribución supercreciente -en este tipo de distribución el elemento iésimo Si de la mochila es mayor que la suma de todos sus antecesores-, la resolución de este problema es de tipo no polinomial.

Se trata de encontrar los vectores Vi de 0s y 1s de forma que:

Σ Si∗Vi = Ti

Si se cumple esta relación, la mochila tiene solución. En caso contrario, no existirá solución.

Page 595: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 594

Un ejemplo del problema de la mochila

Tenemos la mochila S = {20, 5, 7, 36, 13, 2} con m = 6 y el valor T = 35. Se pide encontrar una solución, si es que ésta existe, en una única vuelta. En este momento no importa que los valores de la mochila no estén ordenados.

SOLUCIÓN: Sin hacer ningún cálculo mental, podemos recorrer todos los valores (se puede descartar el elemento S4pues es mayor que el objetivo T) de la mochila S, bien de izquierda a derecha o al revés (da igual el sentido elegido) y restaremos el elemento iésimo si es menor que el objetivo T en esa etapa del algoritmo, como se indica:

Page 596: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 595

Solución al ejemplo de la mochila

S = {S1, S2, S3, S4, S5, S6} = {20, 5, 7, 36, 13, 2} T = 35

S1 = 20 ¿Es menor que objetivo T = 35? Sí ⇒ T = 35-20 = 15S2 = 5 ¿Es menor que objetivo T = 15? Sí ⇒ T = 15-5 = 10S3 = 7 ¿Es menor que objetivo T = 10? Sí ⇒ T = 10-7 = 3S4 = 36 ¿Es menor que objetivo T = 3? No ⇒ T = 3S5 = 13 ¿Es menor que objetivo T = 3? No ⇒ T = 3S6 = 2 ¿Es menor que objetivo T = 3? Sí ⇒ T = 3-2 = 1 ≠ 0

Se ha recorrido toda la mochila y no se ha encontrado solución.

En cambio sí existe una solución:SS = {S1+S5+S6} = 20+13+2 = 35 Vi = [1,0,0,0,1,1]

Page 597: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 596

¿Puede haber soluciones múltiples?

Si para la misma mochila S = {20, 5, 7, 36, 13, 2} buscamos ahora el valor T = 27, encontramos tres soluciones válidas:

SS1 = {S1+S3} = 20+7 SS2 = {S1+S2+S6} = 20+5+2

SS3 = {S2+S3+S5+S6} = 5+7+13+2

Esto sería inadmisible en un sistema de cifra puesto que el resultado de una operación de descifrado debe ser única ya que proviene de un único mensaje. La solución será el uso de las denominadas mochilas simples en que la solución al problema de la mochila, si existe, es única.

Page 598: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 597

Mochila simple o supercreciente

Una mochila es simple o supercreciente si el elemento Skes mayor que la suma de los elementos que le anteceden:

k-1

Sk > Σ Sjj = 1

k-1

Sk > Σ Sjj = 1

Por ejemplo, la mochila S = {2, 3, 7, 13, 28, 55, 110, 221}con m = 8 elementos es supercreciente y la solución para un objetivo T = 148 es única: Vi = [S2+S3+S5+S7].Para resolver cualquier valor T válido para esta mochila, ésta se recorre de derecha a izquierda (desde el valor mayor al menor) una sola vez con el algoritmo ya visto. Compruebe que para T = 289, 196 y 353 los vectores son V1 = 00010101; V2 = 01001110; V3 = 10110011.

Page 599: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 598

Operación de cifra con mochila simple

Se representa la información en binario y se pasan los bits por la mochila. Los bits 1s incluyen en la suma el elemento al que apuntan y los bits 0s no.Con la mochila S = {2, 4, 10, 19, 40} de m = 5 elementos cifraremos el mensaje M = ADIOS.SOLUCIÓN: Usando código ASCII/ANSI: A = 01000001; D = 01000100; I = 01001001; O = 01001111; S = 01010011M = 01000 00101 00010 00100 10010 10011 11010 10011C = (4), (10+40), (19), (10), (2+19), (2+19+40), (2+4+19), (2+19+40)

C = 4, 50, 19, 10, 21, 61, 25, 61

Page 600: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 599

Descifrado con mochila simple

C = 4, 50, 19, 10, 21, 61, 25, 61 S = {2, 4, 10, 19, 40}

La operación de descifrado es elemental: pasamos por la mochila los valores de C, encontramos el vector Vi y por último agrupamos el resultado en grupos de 8 bits. En este caso 4 ⇒ Vi = 01000, 50 ⇒ Vi = 00101, etc.

PROBLEMA: Es muy fácil cifrar y descifrarpero también criptoanalizar el sistema de cifra

porque se usa una mochila simple.

Una posible solución es usar mochilas de Merkle y Hellman.

Page 601: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 600

Mochila de Merkle y Hellman MH

• En 1978 Ralph Merkle y Martin Hellman proponen un sistema de cifra de clave pública denominado Mochila con Trampa.

• El algoritmo se basa en crear una mochila difícil a partir de una mochila simple de forma que el cifrado se haga con la mochila difícil y el descifrado con la mochila simple o fácil. Se puede pasar fácilmente de la mochila simple a la difícil o viceversa usando una trampa.

La trampa será nuestra clave secreta.La mochila difícil será nuestra clave pública.

http://www-fs.informatik.uni-tuebingen.de/~reinhard/krypto/English/4.5.3.e.html

Page 602: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 601

Diseño mochila de Merkle y Hellman (1)

1. Se selecciona una mochila supercreciente de m elementos S’ = {S1’, S2’, ..., Sm’}.

2. Se elige un entero µ (módulo de trabajo) mayor que la suma de los elementos de la mochila.

más fácil: µ ≥ 2∗Sm’

m

µ > Σ Si’i = 1

mcd (ω,µ) = 1 Se asegura el inverso

3. Se elige un entero ω primo relativo con µ.Se recomienda que ω no tenga factores con los elementos de S’

Si = ω∗Si’ mod µ4. Se multiplica S’ por ω mod µ.Obteniendo una mochila difícil S = {S1, S2, ..., Sm}

Page 603: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 602

Diseño mochila de Merkle y Hellman (2)

ω-1 = inv (ω,µ)5. Se calcula el inverso de ω en el cuerpo µ.

Clave privada: µ, ω-1Clave privada: µ, ω-1

Clave pública: mochila SClave pública: mochila S

DESCIFRADO:

M = ω-1 ∗ C mod µ

Entonces obtenemos:

S’∗ M

Esto se interpreta como encontrar los vectores que

cumplan con un valor de T.

CIFRADO:

C = S ∗ M

como S = ω ∗ S’ mod µ

C = ω ∗ S’∗ M mod µ

Page 604: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 603

Cifrado mochila de Merkle y Hellman (1)

Se pide cifrar el mensaje codificado en ASCII M = Sol usando la mochila simple y supercreciente S’ = {3, 5, 12, 21}.1. Elección de µ: µ ≥ 2∗S’4 ≥ 2∗21 µ = 492. Elección de ω: mcd (ω, µ) = 1 ω = 32 ⇒ω-1 = 233. Mochila S: S = ω ∗ S’ mod µ

S1 = 32 ∗ 3 mod 49 = 96 mod 49 = 47S2 = 32 ∗ 5 mod 49 = 160 mod 49 = 13S3 = 32 ∗ 12 mod 49 = 384 mod 49 = 41S4 = 32 ∗ 21 mod 49 = 672 mod 49 = 35

Clave pública: S = {47,13,41,35}Clave pública: S = {47,13,41,35} Clave privada: µ = 49, ω-1 = 23Clave privada: µ = 49, ω-1 = 23

Page 605: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 604

Cifrado mochila de Merkle y Hellman (2)

Cifrado: M = Sol = 0101 0011 0110 1111 0110 1100

Clave pública: S = {47,13,41,35}

Como m = 4, cifraremos bloques de 4 bits, convirtiendo el mensaje a su equivalente

en binario del código ASCII.

Clave pública: S = {47,13,41,35} Clave privada: µ = 49, ω-1 = 23Clave privada: µ = 49, ω-1 = 23

C = (13+35), (41+35), (13+41), (47+13+41+35), (13+41), (47+13)

Observe que se repite el valor 54 puesto que m = 4 sería una muy mala elección.

C = 48, 76, 54, 136, 54, 60

Page 606: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 605

Descifrado mochila de Merkle y Hellman

Clave pública: S = {47,13,41,35}Clave pública: S = {47,13,41,35} Clave privada: µ = 49, ω-1 = 23Clave privada: µ = 49, ω-1 = 23

Cifrado: M = Sol = 0101 0011 0110 1111 0110 1100

C = 48, 76, 54, 136, 54, 60

Descifrado:23∗48 mod 49 = 1.104 mod 49 = 26 23∗136 mod 49 = 3.128 mod 49 = 41

23∗76 mod 49 = 1.748 mod 49 = 33 23∗54 mod 49 = 1.242 mod 49 = 17

23∗54 mod 49 = 1.242 mod 49 = 17 23∗60 mod 49 = 1.380 mod 49 = 8

Como S’ = {3,5,12,21}

M = 0101 0011 0110 1111 0110 1100 = Sol

Page 607: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 606

Valores de diseño de mochilas M-H (1)Merkle y Hellman proponen los siguientes parámetros:

a) Tamaño de la mochila m ≥ 100b) Módulo µ uniforme en el siguiente intervalo:

Intervalo µ: [22m+1+1, 22m+2-1] ⇒ 2m+2 bitsSi m = 100: todos los elementos de S son de 202 bits.

c) Valores de Si’ elegidos uniformemente en el intervalo:Intervalo Si’: [(2i-1-1)∗2m +1, 2i-1∗2m]

Si m = 100: 1 ≤ S1’ ≤ 2100 ≤ S2’ ≤ 2101 ≤ S3’ ≤ 2102 ...

d) Elegir un valor x en el intervalo [2, µ-2]. El factor ω se calcula como: ω = mcd (µ, x)

Page 608: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 607

Mochila con parámetros proporcionales (1)

a) Mochila con m = 6

b) Intervalo µ: [22m+1+1, 22m+2-1] = [22∗6+1+1, 22∗6 +2-1][213+1, 214+1] = [8.193, 16.385] Sea µ = 13.515

Todos estos elementos serán de (2m+2) = 14 bits

c) Elección de los valores S’i:i=1 : [(21-1-1)∗26+1, (21-1) ∗26] 1 ≤ S1’ ≤ 64i=2 : [(22-1-1)∗26+1, (22-1) ∗26] 65 ≤ S2’ ≤ 128i=3 : [(23-1-1)∗26+1, (23-1) ∗26] 193 ≤ S3’ ≤ 256i=4 : [(24-1-1)∗26+1, (24-1) ∗26] 449 ≤ S4’ ≤ 512i=5 : [(25-1-1)∗26+1, (25-1) ∗26] 961 ≤ S5’ ≤ 1.024i=6 : [(26-1-1)∗26+1, (26-1) ∗26] 1.985 ≤ S6’ ≤ 2.048

UNA ELECCIÓN

S1’ = 39S2’ = 72S3’ = 216S4’ = 463S5’ = 1.001S6’ = 1.996

Page 609: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 608

Mochila con parámetros proporcionales (2)

d) Cálculo del factor ω. Buscamos un valor x en el intervalo [2, µ-2] = [2, 13.513], por ejemplo x = 9.805.

Como el máximo común divisor entre µ = 13.515 y x = 9.805 es 265, luego ω = 9.805/265 = 37.

Vamos a elegir:

ω = 37 de forma que ω-1 = 4.018 inv (37, 13.515) = 4.018

Luego, la mochila simple y la clave privada serán:

Mochila simple: S’ = {39, 72, 216, 463, 1.001, 1.996}Clave Privada: µ = 13.515 ω-1 = 4.018

Page 610: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 609

Mochila con parámetros proporcionales (3)

Mochila simple:S’ = {39, 72, 216, 463, 1.001, 1.996} Módulo: µ = 13.515 Factor multiplicador: ω = 37; ω-1 = 4.018 ⇒ Clave privada

S1 = 39∗37 mod 13.515 = 1.443S2 = 72∗37 mod 13.515 = 2.664S3 = 216∗37 mod 13.515 = 7.992S4 = 463∗37 mod 13.515 = 3.616S5 = 1.001∗37 mod 13.515 = 10.007S6 = 1.996∗37 mod 13.515 = 6.277

Mochila difícil:S = {1.443, 2.664, 7.992, 3.616, 10.007, 6.277} ⇒ Clave pública

Page 611: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 610

Fortaleza de las mochilas M-H

En el año 1982 Adi Shamir y Richard Zippel encuentran debilidades a las mochilas de Merkle-Hellman:

• Si se conoce el módulo µ (o bien éste puede deducirse) ...• Y si los dos primeros elementos (S1 y S2) de la mochila

difícil se corresponden con los dos primeros elementos (S1’ y S2’) de la mochila simple y son primos con µ ...

• Entonces podemos generar la mochila simple a partir de la difícil ya que encontraremos la clave secreta ω-1 ...

• Esta debilidad no hace recomendable el uso de mochilas de M-H para el cifrado de la información ...

http://www.behdad.org/download/Presentations/knapsack/knapsack.ppt

Page 612: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 611

Criptoanálisis de Shamir y Zippel

Este ataque exige fuertes restricciones. Para una mochila con 100 elementos, los autores suponen:

a) Que los dos primeros elementos de S’ de 100 y 101 bits son mucho más pequeños que el módulo µ de 202 bits.

b) Que podemos identificar los elementos S1 y S2 en la mochila difícil y hacerlos corresponder con S1’ y S2’.

c) Que conocemos el módulo µ o podemos deducirlo.

• Con estos datos se trata de encontrar los valores de S1’ y S2’ además del factor de multiplicación ω.

• Con estos valores generamos la mochila fácil S.

Page 613: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 612

Pasos del ataque de Shamir y Zippel (1)

1. Se calcula q = (S1/S2) mod µComo Si = Si’∗ ω mod µ entonces:q = (S1’/S2’) mod µ = [S1’∗ inv (S2’, µ)] mod µEsto implica una condición fuerte: mcd (S2’, µ) = 1

2. Se calculan todos los múltiplos modulares del valor q con multiplicadores en el rango [1, 2m+1] = [1, 2101]CM = {1∗q mod µ, 2∗q mod µ, ..., 2m+1∗q mod µ}

3. El candidato para S1’ será el valor más pequeño de CM puesto que ese elemento podría ser el más pequeño de la mochila fácil S’.

Page 614: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 613

Pasos del ataque de Shamir y Zippel (2)

4. Encontrado el candidato para S1’se calcula:ω = (S1/S1’) mod µ = [S1∗ inv (S1’, µ)] mod µEsto implica otra condición fuerte: mcd (S1’, µ) = 1

5. Conocido ω encontramos ω-1 = inv (ω, µ) y así calculamos todos los elementos de la mochila Si’ = Si ∗ ω-1 mod µ que debería ser de tipo supercreciente o fácil.

6. Si no se genera una mochila supercreciente, se elige el siguiente valor más pequeño del conjunto CM y así hasta recorrer todos sus valores. Si con este conjunto CM no se obtiene una mochila simple, se repite el punto 2 tomando ahora valores en el rango 2m+i con i = 2, 3, etc. Por lo general el ataque prospera con el primer conjunto CM.

Page 615: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 614

Ejemplo de ataque de Shamir y Zippel (1)

La clave pública de un sistema de mochila Merkle-Hellman es:S = {S1, S2, S3, S4, S5} = {3.241, 572, 2.163, 1.256, 3.531}Si de alguna forma hemos conseguido conocer que el módulo µ = 4.089, se pide encontrar la mochila fácil S’ = {S1’, S2’, S3’, S4’, S5’}.

Solución:• q = S1/S2 mod µ = S1∗ inv (S2, µ) mod µ. Calculamos ahora inv (S2, µ)

es decir inv (572, 4,089) = 309, luego q = 3.241∗309 mod 4.089 = 599.• Múltiplos CM = {1∗q mod µ, 2∗q mod µ, 3∗q mod µ, ..., 64∗q mod µ}

puesto que la mochila tiene m = 5 elementos y el intervalo será [1, 25+1].• Luego CM = [599, 1.198, 1.797, 2.396, 2.995, 3.594, 104, 703, 1.302,

1.901, 2.500, 3.099, 3.698, 208, 807, 1.406, 2.005, 2.604, 3.203, 3.802, 312, 911, 1.510, 2.109, 2.708, 3.307, 3.906, 416, 1.015, 1.614, 2.213, 2.812, 3.411, 4.010, 520, 1.119, 1.718, 2.317, 2.916, 3.515, 25, 624, 1.223, 1.822, 2.421, 3.020, 3.619, 129, 728, 1.327, 1.926, 2.525, 3.124, 3.723, 233, 832, 1.431, 2.030, 2.629, 3.228, 3.827, 337, 936, 1.535].

Page 616: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 615

Ejemplo de ataque de Shamir y Zippel (2)• Suponemos que el número más pequeño de CM es candidato a S1’ = 25.• El factor de multiplicación sería ω = (S1/S1’) = S1 ∗ inv (S1’, µ) mod µ.• Como inv (S1’, µ) = inv (25, 4,089) = 2.617, el factor de multiplicación ω = 3.241∗2.617 mod 4.089 = 1.111.

• Por lo tanto su valor inverso será ω-1 = inv (ω, µ) = inv (1.111, 4.089). Luego ω-1 = 622.

• Multiplicamos ahora los valores S de la mochila difícil por ω-1 a ver si obtenemos una mochila supercreciente S’ (Si’ = Si ∗ ω-1 mod µ):

• S1’ = 25 (valor elegido como candidato del conjunto CM)• S2’ = S2 ∗ ω-1 mod µ = 572 ∗ 622 mod 4.089 = 41 • S3’ = S3 ∗ ω-1 mod µ = 2.163 ∗ 622 mod 4.089 = 105 • S4’ = S4 ∗ ω-1 mod µ = 1.256 ∗ 622 mod 4.089 = 233 • S5’ = S5 ∗ ω-1 mod µ = 3.531 ∗ 622 mod 4.089 = 489

• Como la mochila S’ = {25, 41, 105, 233, 489} es supercreciente, el ataque ha prosperado y hemos encontrado la clave privada.

Page 617: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 616

Uso de los criptosistemas de mochilas

Existen varios algoritmos propuestos como sistemas de cifra usando el problema de la mochila: el de Graham-Shamir, Chor-Rivest, etc., pero su estudio aquí no tiene sentido.No obstante todos han sucumbido a los criptoanálisis y en la actualidad en el único entorno que se usan es en la protección de diversos programas de aplicación, en forma de hardware que se conecta en la salida paralela del computador para descifrar el código ejecutable de esa aplicación dejando, sin embargo, activa la salida a impresora. De esta manera sólo en aquel sistema con la mochila instalada se puede ejecutar el programa. No se usa en comunicaciones.

http://www.derf.net/knapsack/

Fin del capítulo

Page 618: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 617

Cuestiones y ejercicios (1 de 2)

1. Recorra de izquierda a derecha y de derecha a izquierda la mochila S = {13, 6, 1, 3, 4, 9, 10} para T = 24. ¿Tiene solución rápida?

2. Para la mochila de la pregunta anterior, ¿hay una o más soluciones?3. ¿Interesa usar en criptografía el problema de la mochila con una

solución no única? ¿Por qué sí o no?4. ¿Qué significa que una mochila sea supercreciente? ¿Es la mochila

S = {3, 4, 9, 18, 32, 73} supercreciente? ¿Por qué?5. A partir de la mochila S’ = {3, 5, 10, 21, 43} obtenga la mochila

M-H difícil S. Para ω y µ use los valores mínimos posibles.6. Si la mochila fácil es S’ = {1, 2, 4, 8, 16, 32, 64, 128} con µ = 257 y

ω = 21, cifre con una mochila de M-H el mensaje en ASCII de 10 caracteres M = Hola amigo (recuerde que el espacio se cifra).

7. Descifre el criptograma obtenido en la pregunta anterior.

Page 619: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 618

Cuestiones y ejercicios (2 de 2)8. ¿Qué valores mínimos de diseño propusieron Merkle y Hellman

para su sistema de cifrado con mochila? ¿Por qué?9. Diseñe una mochila de MH con parámetros proporcionales si m = 5.10. No es un buen criterio elegir m = 4, m = 8 o m = 16. ¿Por qué?11. ¿En qué consiste el ataque de Shamir y Zippel a la mochila de M-H?12. En el ejemplo de los apuntes, ¿cuántas operaciones ha tenido que

hacer nuestro algoritmo para romper la clave privada?13. ¿Es posible que una mochila difícil provenga de más de una mochila

fácil? ¿Por qué?14. ¿Qué sucederá en el caso anterior para mochilas equivalentes con

los valores del factor de multiplicación w?15. ¿Usaría un sistema de mochila para cifrar información en un entorno

como Internet? ¿Y en una intranet para respuestas a un examen?

Page 620: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 619

Prácticas del tema 13 (1/2)Software mochilas: http://www.criptored.upm.es/software/sw_m001b.htm

1. Cifre el mensaje M = ABCabc, usando una mochila de cuatro elementos de creación manual y valores S’ = {3, 5, 11, 23}, M = 47 y W = 23. Observe la repetición de valores y justifique lo que sucede.

2. Vuelva a cifrar ese mensaje pero con una mochila de cinco elementos de creación manual y valores S’ = {3, 5, 11, 23, 44}, M = 89 y W = 21. ¿Qué sucede ahora con el criptograma? Descifre el criptograma.

3. Ataque la mochila difícil, primero por criptoanálisis rápido y luego por criptoanálisis exhaustivo. En ambos casos vea y analice los detalles.

4. Para el mensaje M = Una prueba, cree una mochila manual S’ = {28, 62, 126, 254, 510}, con M = 4051 y W = 4004. Ataque ahora la mochila por criptoanálisis rápido y luego exhaustivo y finalmente analice los detalles.

5. Cree varias mochilas automáticas con parámetros proporcionales a MH de tamaños 6, 7 y 8. Active la opción garantizar criptoanálisis y atáquelas.

Page 621: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Tema 13: Cifrado Asimétrico con Mochilas Página 620

Prácticas del tema 13 (2/2)6. Repita el ejercicio anterior y opción garantizar criptoanálisis desactivada.7. Para el mensaje M = Otra prueba, cree la mochila manual S’ = {122, 250,

506, 1018, 2042, 4090, 8186}, con µ = 59369 y ω = 59361. Realice un ataque rápido y luego exhaustivo. Observe lo que sucede y explique lo observado. Repita el ataque para la mochila fácil S’ = {1016, 1964, 4088, 8108, 16376, 32684, 65528, 130988, 262136, 524204}, con µ = 4186947 y ω = 1393196. Comente lo observado.

8. Repita el ejemplo anterior pero S’ = {59, 123, 251, 507, 1019, 2043, 4091, 8187, 16379}, µ = 1044529 y ω = 1044193. Ataque ahora la mochila con S’ = {115, 371, 883, 1907, 3955, 8051, 16243, 32627, 65395, 130931}, siendo µ = 4193897 y ω = 2562721. ¿Qué ha sucedido en estos casos?

9. Cree una mochila automática de MH de tamaño 10 y la opción garantizar criptoanálisis activada. Proceda a atacarla y si pasados 45 segundos no logra romperla, detenga el ataque y observe los detalles.

10. Cree una mochila MH de tamaño 100 y observe las mochilas completas

Page 622: Seguridad Informatica

Capítulo 14Cifrado Asimétrico Exponencial

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 89 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 623: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 622

Aquí ciframos números, no mensajes

• La operación característica de la cifra asimétrica es mediante un cifrado exponencial. La operación a realizar será C = AB mod n, en donde n es el cuerpo de cifra del orden de 1.024 bits, B es una clave pública 17 bits para el intercambio de clave y cerca de 1.024 bits de la clave privada para firma digital. A será siempre un número N (nunca un mensaje M) y por lo general del orden de las centenas de bits.

• Esto es así porque este tipo de cifra es muy lenta y sería muy costoso en tiempo cifrar, por ejemplo, mensajes de cientos o miles de bytes.

• Por lo tanto, cuando se cifre con la clave pública de destino para hacer un intercambio de clave, se tratará de un número N del orden de los 128 bits (la clave de sesión), y cuando se cifre con la clave privada de emisión para una firma digital, se tratará de un número Nde 160 bits, por ejemplo un hash SHA-1 sobre el mensaje M.

Page 624: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 623

Otros casos de cifra exponencial

• La cifra con la clave privada de recepción cuando desciframos un número o dato que se nos ha enviado confidencialmente, o bien la cifra con la clave pública del emisor para comprobar así su firma digital, serán casos de descifrado.

• En el primero de ellos, puesto que se recibe un número muy grande dentro del cuerpo de cifra con n bits y la clave privada será también de esa magnitud, en el caso de RSA se realizará el descifrado usando el Teorema del Resto Chino.

• Si deseamos cifrar mensajes M con estos algoritmos, se puede hacer formando bloques de cifra, al igual que se hace con los sistemas simétricos, pero recuerde que esto tiene sentido sólo para prácticas de laboratorio y nunca en sistemas reales.

Page 625: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 624

Cifrado exponencial con clave del receptor

• Al cifrar el número N y en el descifrado del criptograma C se usará una exponenciación: Ee(N) = C y Ed(C) = N.

• En la operación de cifrado, el subíndice e significará el uso de la clave pública del receptor (R) en el extremo emisor y el subíndice d el uso de la clave privada del receptor (R) en el extremo receptor.

C = EeR(N) = NeR mod nR ⇒ N = EdR(C) = CdR mod nR

• N deberá ser un elemento del CCR de nR.• Esta operación se usará para realizar el intercambio de

una clave de sesión entre un emisor y un receptor.

Page 626: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 625

Cifrado exponencial con clave del emisor

• En la operación de cifrado el subíndice d significa el uso de la clave privada del emisor (E) en el extremo emisor, y el subíndice e el uso de la clave pública del emisor (E) en el extremo receptor.

C = EdE(N) = NdE mod nE ⇒ N = EeE(C) = CeE mod nE

• N deberá ser un elemento del CCR de nE.• Esta operación se usará para autenticar la identidad de un

usuario mediante una firma digital, al mismo tiempo que se demuestra la integridad del mensaje mediante un hash.

Page 627: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 626

Cifrado exponencial genérico tipo RSA

Sea el grupo de trabajo n = p∗q ⇒ φ(n) = (p-1)(q-1)

Se eligen una clave pública e y una privada d de forma que: e∗d mod φ(n) = 1 ⇒ e∗d = k(p-1)(q-1) + 1.

Por el Teorema del Resto Chino se tiene que:

Ned = N mod n

ssi Ned = N mod pNed = N mod q

Por el Teorema de Euler se tiene que:

Nkφ(n) mod n = 1 para todo N primo con n

Si e∗d = kφ(n) + 1

y ...

Luego, el sistema de cifra será válido para cualquier valor de N

Page 628: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 627

Operación de descifrado exponencial

Al cifrar el número N con una clave pública e (en este caso para realizar un intercambio de clave, aunque es igual de válido con una clave d en caso de firma digital) tenemos:

Cifrado: C = Ne mod n

Descifrado: Cd mod n = (Ne)d mod n = Ned mod n

Cd mod n = Nkφ(n)+1 mod n = N∗Nkφ(n) mod n

Cd mod n = N∗1 mod n = N mod n

Por lo tanto, la operación Cd mod n recuperará el número N.

Page 629: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 628

Comprobación de la recuperación de N

Sea n = p∗q = 5∗11 = 55 ⇒ φ(n) = (5-1)(11-1) = 40Sea el número N = 50 = 2∗52 (debe ser un elemento de n = 55)Se elige e = 3 ⇒ d = inv[e, φ(n)] = inv (3, 40) = 27

e∗d mod φ(n) = 3∗27 mod 40 = 81 mod 40 = 1C = Ne mod n = 503 mod 55 = (2∗52)3 mod 55C = [(2)3 mod 55 ∗ (52)3 mod 55] mod 55 - por reducibilidad -N = Cd mod n = {[(2)3 mod 55 ∗ (52)3 mod 55] mod 55}27 mod 55N = [(2)3∗27 mod 55 ∗ (52)3∗27 mod 55] mod 55N = [22φ(n)+1 ∗ 52φ(n)+1 ∗ 52φ(n)+1] mod 55

= 2 ∗ 5 ∗ 5 mod 55 = 50Por el Teorema de Euler y del Resto Chino

Page 630: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 629

Intercambio de clave de Diffie y Hellman

• El comienzo de los sistemas de clave pública se debe al estudio hecho por Whitfield Diffie y Martin Hellman (1976).

Protocolo de Intercambio de Claves de Diffie y HellmanA y B seleccionan un grupo multiplicativo (con inverso) p y un generador α de dicho primo, ambos valores públicos.

• A genera un número aleatorio a y envía a B αa mod p• B genera un número aleatorio b y envía a A αb mod p• B calcula (αa)b mod p = αab mod p y luego destruye b• A calcula (αb)a mod p = αba mod p y luego destruye a• El secreto compartido por A y B es el valor αab mod p

http://www.cs.purdue.edu/homes/ninghui/courses/Fall04/lectures/diffie-hellman.pdf

Page 631: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 630

Ejemplo de intercambio de clave de DH

Adela (A) y Benito (B) van a intercambiar una clave de sesión dentro del cuerpo primo p = 1.999, con α = 33. El usuario A elegirá a = 47 y el usuario B elegirá b = 117.

Algoritmo:• A calcula αa mod p = 3347 mod 1.999 = 1.343 y se lo envía a B.• B calcula αb mod p = 33117 mod 1.999 = 1.991 y se lo envía a A.• B recibe 1.343 y calcula 1.343117 mod 1.999 = 1.506.• A recibe 1.991 y calcula 1.99147 mod 1.999 = 1.506.

La clave secreta compartida por (A) y (B) será K = 1.506

Page 632: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 631

¿Puede un intruso atacar la clave DH?

Un intruso que conozca las claves públicas p y α e intercepte el valor αa mod p que ha enviado A y el valor αb mod p que ha enviado B no podrá descubrir los valores de a, de b y ni menos αab mod p ...

Salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que, como ya hemos visto, se vuelve computacionalmente intratable para valores del primo p grandes.

http://en.wikipedia.org/wiki/Discrete_logarithm

Page 633: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 632

Seguridad del intercambio de clave de DH

• La seguridad del intercambio de clave de Diffie y Hellman radicaen la imposibilidad computacional a la que se enfrentará el criptoanalista al tener que resolver el problema del logaritmo discreto para encontrar la clave privada que se encuentra en el exponente de la expresión αi mod p = C.

• Como p y α serán públicos, al capturar el valor C el atacante deberá resolver i = logα C mod p, un problema no polinomial(debido a la operación final dentro del módulo p) que para valores grandes de p (del orden o superior a los 1.000 bits) resulta computacionalmente imposible encontrar su solución.

• El algoritmo propuesto inicialmente es vulnerable ante un ataquedel tipo “man in the middle” como veremos a continuación. No obstante, esta vulnerabilidad puede evitarse.

Page 634: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 633

¿Es vulnerable el protocolo de DH?• A elige un número a con 1 < a < p-1 y envía a B αa mod p• C intercepta este valor, elige un número c con 1 < c < p-1 y

envía a B αc mod p• B elige un número b con 1 < b < p-1 y envía a A αb mod p• C intercepta este valor y envía a A αc mod p (valor anterior)• A y B calculan sus claves kA = (αc)a mod p, kB = (αc)b mod p• C calcula también las claves:

• kCA = (αa)c mod p • kCB = (αb)c mod p

Por lo tanto, a partir de ahora C tiene “luz verde” y puede interceptar todos los mensajes que se intercambian A y B.

¿Qué hacer? Una solución a este problema es el sellado de tiempo.

Page 635: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 634

Intercambio de clave DH entre n usuarios

El protocolo DH se puede generalizar para n usuarios: sea n = 3.

A, B y C seleccionan un grupo p y un generador α• A genera un número aleatorio a y envía αa mod p a B• B genera un número aleatorio b y envía αb mod p a C• C genera un número aleatorio c y envía αc mod p a A• A recibe αc mod p y calcula (αc)a mod p y se lo envía a B• B recibe αa mod p y calcula (αa)b mod p y se lo envía a C• C recibe αb mod p y calcula (αb)c mod p y se lo envía a A• A recibe αbc mod p y calcula (αbc)a mod p = αbca mod p• B recibe αca mod p y calcula (αca)b mod p = αcab mod p• C recibe αab mod p y calcula (αab)c mod p = αabc mod p

• El secreto compartido por A, B y C es el valor αabc mod p

Page 636: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 635

Condiciones del intercambio de clave D-H

CONDICIONES DEL PROTOCOLO:• El módulo p debe ser un primo grande, al menos de 1.024 bits.• Interesa que el Indicador de Euler φ(p) = p-1, además del valor

2, tenga factores primos grandes.• El generador α debe ser una raíz primitiva del módulo p.

Si el módulo es un primo pequeño, se puede hacer un ataque por fuerza bruta dentro de un tiempo razonable.

Si el generador no es una raíz primitiva del grupo p, entonces la operación αi mod p (1 ≤ i ≤ p-1) no genera todos los restos del grupo y esto facilita el ataque por fuerza bruta.

Veamos un ejemplo

Page 637: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 636

Raíz α incorrecta (falsa)

MALA ELECCIÓN DE LOS PARÁMETROS:

Sean el grupo de trabajo p = 13 y un valor α = 3 ... entonces

31 mod 13 = 3 32 mod 13 = 9 33 mod 13 = 1 1 ⇒ vamos mal34 mod 13 = 3 35 mod 13 = 9 36 mod 13 = 137 mod 13 = 3 38 mod 13 = 9 39 mod 13 = 1310 mod 13 = 3 311 mod 13 = 9 312 mod 13 = 1 (αp-1mod p = 1)

Sólo debería darse unidad en este caso.

Se repiten los restos 3, 9 y 1 porque 3 no es un generador de Z13. Observe que 34 mod 13 = (33)(3)1 mod 13 = 1∗(3)1 mod 13 = 3.Un ataque por fuerza bruta deberá buscar sólo en una tercera parte del espacio de claves y, lo que es peor, la probabilidad de éxito de encontrar un valor verdadero b en αb mod p aumenta de 1/12 a 1/3.

Page 638: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 637

Raíz α correcta

Primero intente calcularlo... y luego para comprobar sus resultados, avance.

¿Y si ahora α = 2 ?¿Y si ahora α = 2 ?

21 mod 13 = 2 22 mod 13 = 4 23 mod 13 = 824 mod 13 = 3 25 mod 13 = 6 26 mod 13 = 1227 mod 13 = 11 28 mod 13 = 9 29 mod 13 = 5210 mod 13 = 10 211 mod 13 = 7 212 mod 13 = 1

Ahora sí están todos los restos multiplicativos del cuerpo Z13 porque el resto 2 es un generador dentro de este cuerpo.Observe que el valor unidad sólo se obtiene para αp-1 mod p.

Como vimos en el capítulo de Teoría de Números, en p = 13 serán generadores los valores g = 2, 6, 7, 11.

Page 639: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 638

Algoritmo de cifra asimétrica RSA

En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman proponen un algoritmo de cifra de clave pública: RSA

Pasos del algoritmo1. Cada usuario elige un grupo n = p∗q (pueden y de hecho son distintos).2. Los valores p y q no se hacen públicos.3. Cada usuario calcula φ(n) = (p-1)(q-1).4. Cada usuario elige una clave pública e de forma que 1 < e < φ(n) y que

cumpla con la condición: mcd [e, φ(n)] = 1.5. Cada usuario calcula la clave privada d = inv [e,φ(n)].6. Se hace público el grupo n y la clave e.7. Se guarda en secreto la clave d. También guardará p y q puesto que en

la operación de descifrado usará el Teorema del Resto Chino.

Cifra: C = NeR mod nRFirma: C = h(M)dE mod nE

http://www.di-mgt.com.au/rsa_alg.html

Page 640: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 639

Intercambio de clave RSA (B → A)

AdelaBenito

En el protocolo intercambiaremos una clave K

Sea K = DA9F (16 bits)

Claves BenitonB = 65.669

eB = 35, dB = 53.771

Claves AdelanA = 66.331

eA = 25, dA = 18.377

K = DA9F16 = 55.96710

C = KeA mod nA

C = 55.96725 mod 66.331 = 16.667Benito envía a Adela C = 16.667

Cifra

216 < 66.331 < 217

Forzaremos cifrar un bloque de 16 bits

En la práctica no habrá que forzar este tamaño ya que la cifra asimétrica se hace en un cuerpo (más de mil bits) mucho mayor que el número que se cifra (cientos de bits).

Page 641: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 640

Recuperación de la clave K por A

Claves BenitonB = 65.669

eB = 35, dB = 53.771

Claves AdelanA = 66.331

eA = 25, dA = 18.377

Adela calcula:• CdA mod nA = 16.66718.377 mod 66.331 = 55.967.• El intercambio de clave se ha realizado con

confidencialidad porque sólo Adela ha podido realizar ese cálculo con su clave privada dA.

Teníamos que: K = DA9F16 = 55.96710

C = KeA mod nA C = 55.96725 mod 66.331 = 16.667Benito había enviado a Adela C = 16.667

Benito Adela

Los primos que ha usado Benito son (97, 677) y los de Adela (113, 587)

Page 642: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 641

Descifrado con números grandes

Grupo n = 91 = 7∗13; φ(n) = φ(7∗13) = (7-1)(13-1) = 72 N = 48Elegimos e = 5 pues mcd (5,72) = 1 ∴ d = inv(5,72) = 29CIFRADO:C = Ne mod n = 485 mod 91 = 5245.803.968 mod 91 = 55DESCIFRADO:N = Cd mod n = 5529 mod 91 = 48 ... 5529 ya es “número grande”5529 es un número con 51 dígitos...5529 = 295473131755644748809642476009391248226165771484375¿Cómo podemos acelerar esta operación?

1ª opción: usar reducibilidad 2ª opción: algoritmo exp. rápida

Opción óptima: usar el Teorema del Resto Chino

Page 643: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 642

Uso del Teorema del Resto Chino en RSA

• Normalmente la clave pública e de RSA es un valor bastante bajo, por ejemplo 216 + 1 (un valor típico). Luego, en el proceso de cifra (no en la firma) no tendremos problemas con la velocidad de cifra porque el exponente e será relativamente bajo, en este caso 17 bits.

• Como el cuerpo de trabajo n = p∗q es mucho mayor, del orden de 21.024 si hablamos de claves de 1.024 bits, entonces la clave privadad será por lo general mucho mayor que el valor de e y caerá muy cerca de ese valor de 1.024 bits. Por lo tanto, podría ser costoso para el receptor descifrar algo con su clave privada o firmar digitalmente un documento con dicha clave privada.

• La solución está en aplicar el Teorema del Resto Chino: en vez de trabajar en n, lo haremos en p y q por lo que las exponenciaciones modulares se harán en p y q, mucho más rápido que hacerlo en n.

Page 644: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 643

Descifrado RSA aplicando el TRC

N = Cd mod n Aplicando el Teorema del Resto Chino:

N = {Ap[Cpdp (mod p)] + Aq[Cq

dq (mod q)]} mod ncon: Ap = q [inv (q,p)] = qp-1 mod n

Aq = p [inv (p,q)] = pq-1 mod ndp = d mod (p-1) dq = d mod (q-1)Cp = C mod p Cq = C mod q

Se hacen más operaciones pero el tiempo de cálculo total es menor dado que los valores dp, dq, Ap y Aq están precalculados. Las operaciones Cp yCq son sencillas y muy rápidas. El único cálculo que consume tiempo será Cp

dp y Cqdq pero ambos se hacen en cuerpos mucho menores que n.

Page 645: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 644

Ejemplo de descifrado RSA usando el TRCSea: p = 89, q = 31, n = p∗q = 89∗31 = 2.759, φ(n) = 88∗30 = 2.640

Elegimos e = 29 ⇒ d = inv [e, φ(n)] = inv [29, 2.640] = 2.549

Si el número a cifrar es N = 1.995, entonces:

C = Ne mod n = 1.99529 mod 2.759 = 141

N = Cd mod n = 1412.549 mod 2.759 = 1.995

Ap = qp-1 mod n = 3188 mod 2.759 = 713 Aq = pq-1 mod n = 8930 mod 2.759 = 2.047

dp = d mod (p-1) = 2.549 mod 88 = 85 dq = d mod (q-1) = 2.549 mod 30 = 29

Cp = C mod p = 141 mod 89 = 52 Cq = C mod q = 141 mod 31 = 17

Reemplazando en: N = {Ap[Cpdp (mod p)] + Aq[Cq

dq (mod q)]} mod n

N = {713[5285 mod 89] + 2.047[1729 mod 31]} mod 2.759

N = {713∗37 + 2.047∗11} mod 2.759 = (26.381 + 22.517) mod 2.759 = 1.995

Page 646: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 645

Ataque a la clave por factorización de n

¿Qué fortaleza tendrá este algoritmo ante ataques?

El intruso que desee conocer la clave secreta d a partir de los valores n y e se enfrentará al Problema de la Factorización de Números Grandes (PFNG), puesto que la solución para conocer esa clave privada es conocer primero el valor del Indicador de Euler φ(n) = (p-1)(q-1) para así poder encontrar d = inv [e, φ(n)], pero para ello deberá saber los valores de los primos p y q.La complejidad asociada al PFNG para un número n viene dada por la ecuación e√ln(n) ln ln(n), donde ln es logaritmo natural.Le recomiendo se descargue de este sitio el programa factor.exeen entorno MS-DOS. No obstante, existirán otros ataques a RSA que no requieren factorizar un número grande.

http://home.netcom.com/~jrhowell/math/factor.htm

Page 647: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 646

Tiempo necesario para afrontar el PFNG

Nº de bits (n) Nº de dígitos Días Años60 18 1,7 x 10-8 -

120 36 1,5 x 10-5 -256 77 1,0 -363 109 9,0 x 102 2,5442 133 9,4 x 104 2,5 x 102

665 200 3,8 x 108 1,0 x 106

Para un procesador de 2x108 instrucciones por segundo (años noventa). Fuente: Criptografía Digital, José Pastor. Prensas Univ. de Zaragoza, 1998.

Desafío RSA640 (193 dígitos) roto en noviembre de 2005 en la Universidad de Bonn. Lo que en 1998 se valoraba en un millón de años, hoy se ha roto en un tiempo equivalente a 30 años con un PC a 2,2 GHz. Y se resolverán nuevos desafíos de números mayores. Por lo tanto, ... deberemos ser siempre muy cautos.

http://www.rsasecurity.com/rsalabs/node.asp?id=2964

Page 648: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 647

Tamaño de los parámetros en RSA

Toda la seguridad de RSA está basada en sus parámetros: los primos p y q y los valores de sus claves pública e y privada d.El cuerpo de trabajo debe ser al menos de 1.024 bits con primos p y q de al menos 500 bits y que difieran unos cuantos dígitos.Aunque la clave pública debe ser pequeña para facilitar así las operaciones, su valor no puede ser excesivamente bajo. Se usaráel número 4 de Fermat F4 = 224 + 1 = 216 + 1 = 65.537.Como ed mod φ(n) = 1, esto hace que la clave privada d sea un número superior a los 1.000 bits, por lo general cerca de 1.024.Habrá que prestar también especial atención en la generación de dichos primos y la posterior comprobación de su primalidad.

http://www.criptored.upm.es/guiateoria/gt_m117f.htm

Page 649: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 648

El problema en la elección del valor de n

Si p y q son muy cercanos, puede ser fácil factorizar n

Si p ≈ q y suponemos que p > q, entonces (p-q)/2 es un entero muy pequeño y por otra parte (p+q)/2 será un entero ligeramente superior a √n.

Además se cumplirá que: n = (p+q)²/4 - (p-q)²/4. Esto lo podemos escribir como n = x² - y² ⇒ y² = x² - n

Elegimos enteros x > √n hasta que (x² - n) sea cuadrado perfecto. En este caso x = (p+q)/2; y = (p-q)/2. Por lo tanto rompemos el valor n: p = (x+y); q = (x-y).

Page 650: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 649

Ejemplo de mala elección del valor de n

• Sea p = 181; q = 251 ⇒ n = 181∗251 = 45.431• Como √45.431 = 213,14 buscaremos valores enteros

de x mayores que 213 de forma que (x² - 45.431) sea un cuadrado perfecto

1. x = 214 ⇒ x² – 45.431 = 365 ∴ √365 = 19,10 2. x = 215 ⇒ x² – 45.431 = 794 ∴ √794 = 28,17 3. x = 216 ⇒ x² – 45.431 = 1.225 ∴ √1.225 = 35 ☺

Entonces: p = x – y = 216 – 35 = 181q = x + y = 216 + 35 = 251

Para evitar otros problemas, es recomendable usar los denominados primos seguros.

Page 651: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 650

Elección de los números primos

Los valores primos deben elegirse apropiadamente:Sistema RSAa) p y q deben diferir en unos pocos dígitos.

Recuerde que la relación bit/dígito es ≈ 3,3.b) p y q no deben ser primos muy cercanos.c) Longitud mínima de p y q: 500 bits.d) Valores de (p-1) y (q-1) del Indicador de

Euler con factores primos grandes.e) El mcd entre (p-1) y (q-1) debe ser pequeño.

¿Cómo?

Esto se cumple con los denominados primos seguros

Page 652: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 651

Cálculo de números primos p y q seguros

Se elige r un primo grande de modo que: 2∗r + 1 = pSe elige un r’ primo algo mayor que r de modo que: 2∗r’ + 1 = q

EJEMPLO: Sean r = 1.019 y r’ = 3.863p = 2∗1.019 + 1 = 2.039 (11 bits) Es primo q = 2∗3.863 + 1 = 7.727 (13 bits) Es primo n = p∗q = 15.755.353 Luego: p-1 = 2.038; q-1 = 7.726p-1 = 2∗1.019; q-1 = 2∗3.863 ⇒ mcd (p-1, q-1) = 2Los primos p y q cumplen la condición de primos seguros

Nota: es posible que encuentre algún documento donde proponga elegir un valor r primo y comprobar luego si p = 2r+1 y q = 2p+1 son primos. En este caso p y q seguirán siendo primos seguros pero sólo de forma independiente. Aquí será muy fácil atacar el valor n factorizándolo a través de una ecuación de segundo grado.

Page 653: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 652

Par de primos seguros pero independientes

Elegimos r primo. Comprobamos primero que p = 2r+1 es primo y luego que q = 2p+1 también es primo. Los valores de p y q serán primos seguros pero en el sistema RSAbasado en n = p∗q no servirán como pareja segura dado que:n = p∗q = [2r +1][2p +1] = [2r + 1][2(2r + 1) + 1] = [2r +1][4r + 3]n = 8r2 + 10r + 3 ⇒ 8r2 + 10r + (3 - n) = 0Luego: r = [- 10 ± √100 - 32(3-n)]/16 = [- 10 ± √4 + 32n]/16

r = [- 10 + √4 + 32n]/16Conocido el valor de r podemos calcular p y q .Ejemplo: r = 41, p = 2r+1 = 83 , q = 2p+1 = 167 , n = 13.861.

r = [- 10 + √4 + 32∗13.861]/16 = [- 10 + 666]/16 = 41.

Page 654: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 653

Claves privadas parejas en RSA

Una clave privada pareja CPP dP, permite descifrar el criptograma C resultado de una cifra con la clave pública e sin que dP sea el inverso de la clave pública e. En el sistema RSA habrá como mínimo una clave dP pareja de la clave privada d.Esto se debe a que las claves inversas e y d lo serán en φ(n) y en cambio la cifra se hace en el cuerpo n.Ejemplo:Si p = 13; q = 19; n = 247, φ(n) = 216 y elegimos e = 41, entonces d = inv (41, 216) = 137, que es único. Si ciframos con la clave pública el número N = 87 obtenemos C = 8741 mod 247 = 159.Luego sabemos que N = Cd mod n = 159137 mod 247 = 87 Pero también lo desciframos con dP = 29, 65, 101, 173, 209 y 245.

Page 655: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 654

Número de claves privadas parejas

Si γ = mcm [(p-1),(q-1)] y sea dγ = e-1 mod γ = inv (e, γ)La clave pública e tendrá λ claves parejas di de la forma:

di = dγ + i γ 1 < di < ni = 0, 1, ... λ λ = ⎣(n - dγ)/γ⎦

En el ejemplo anterior tenemos que: γ = mcm [(p-1),(q-1)] = mcm (12, 18) = 36

Luego: dγ = inv (41, 36) = 29, así di = dγ + i γ = 29 + i∗36Es decir di = 29, 65, 101, 137, 173, 209, 245. Observe que en aparece (137) la clave privada d y comprobamos que:

λ = ⎣(n - dγ)/γ⎦ = ⎣(247 – 29)/36) ⎦ = 6,05 = 6

Page 656: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 655

Casos extraños de claves privadas parejas

Sea p = 751, q = 1.009; e = 13Clave privada: d = 407.077Nº de claves privadas parejas: 529.077, 155.077, 281.077, 533.077, 659.077.Sea p = 751, q = 1.009; e = 101Clave privada: 553.901Nº de claves privadas parejas: 549.901, 175.901, 301.901, 427.901, 679.901.

Para otros valores de e, siempre existe una separación entre todas las claves privadas igual a 126.000.

Sea p = 379, q = 1.783; e = 71Clave privada: d = 531.287Nº de claves privadas parejas: 537.379, 19.853, 32.327, 44.801, 57.275, 69.749, 82.223, 94.697, 107.171, 119.645, 132.119, 144.593, 157.067, 169.541, ... ... 506.339, 518.813, 543.761, 556.235, 568.709, 581.183, 593.657, 606.131, 618.605, 631.079, 643.553, 656.027, 668.501. ... Y separadas 12.474.Sea p = 379, q = 1.783; e = 131Ahora las CPP aumentan a 54.

Page 657: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 656

Minimizando las claves privadas parejas

Para que λ sea lo más pequeño posible (λ = 1) un primer paso es elegir los primos p y q como primos seguros.Ejemplo:Sean r’ = 5; r’’ = 23 ⇒ p = 2∗5 + 1 = 11 (es primo )

q = 2∗23 + 1 = 47 (es primo )En estas condiciones con n = 517 y φ(n) = 460, sea e = 17Luego γ = mcm (10, 46) = 230 y dγ = inv (17, 230) = 203Entonces λ = ⎣(n - dγ)/γ⎦ = ⎣(517 – 203)/230⎦ = 1,36 = 1Así: di = dγ + i γ = 203 + i∗230 = 203, 433 ⇒ λ = 1En efecto, d = inv [e, φ(n)] = inv (17, 460) = 433 y lo cifrado con e = 17 también se descifra con dP = 203.

Page 658: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 657

Minimizando no sólo con primos seguros

Para que λ sea igual a la unidad, habrá que elegir además un valor adecuado de clave pública:Tomando el mismo ejemplo anterior:

p = 11; q = 47; n = 517 y φ(n) = 460Según el valor que elijamos de clave pública e, podríamos obtener más de una clave privada pareja:- Sea: e = 7, d = 263 γ = 230 y dγ = inv (7, 230) = 33

di = dγ + i γ = 33 + i∗230 = 33, 263, 493 ⇒ λ = 2- Sea: e = 77, d = 233 γ = 230 y dγ = inv (77, 230) = 3

di = dγ + i γ = 3 + i∗230 = 3, 233, 463 ⇒ λ = 2Con primos seguros, el número de claves parejas será siempre bajo.

Page 659: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 658

¿Preocupado por claves privadas parejas?

Si bien al generar claves RSA con librerías actuales como Crypto++ de Wei Dei (OpenSSL) aparecen claves que no pueden considerarse como óptimas ya que no se controla este hecho, hay que tener en mente que las claves privadas parejas tendrán siempre valores muy cercanos al cuerpo de φ(n) es decir un tamaño del orden de 2n bits. Por lo tanto, independientemente de la distribución, se trataría de una búsqueda en un cuerpo cercano a 2n bits, en la actualidad en 21024 bits, es decir un valor inmenso para la capacidad de cómputo actual, incluso suponiendo un ataque similar al del DES Challengue III y un cálculo de claves por segundo varios órdenes de magnitud superior. No obstante, en todos estos temas siempre hay que estar en alerta pues en cualquier momento puede aparecer algún método óptimo de ataque.

http://www.openssl.org

Page 660: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 659

Claves parejas de la clave pública en RSA

Al trabajar en un cuerpo finito y con iguales opciones de cifra con la clave pública e y la clave privada d, tenemos que las ecuaciones vistas en las diapositivas anteriores son válidas en este entorno, cambiando d por e.

¿Tiene alguna importancia esto?

No es un problema puesto que todo el mundo conoce la clave pública y el sistema sigue siendo igual de seguro.

Se cumple que los valores de dichas claves parejas son similares y equivalentes en ambos entornos, el de las claves públicas y el de las claves privadas.

Page 661: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 660

Ejemplo de firma y claves parejas de e

Retomamos el primer ejemplo de claves privadas parejas con:

p = 13; q = 19; n = 247, φ(n) = 216, e = 41, d = 137

Si firmamos N = 24, obtenemos C = 24137 mod 247 = 215

Luego sabemos que N = Ce mod n = 21541 mod 247 = 24

Como eγ = inv (d, γ) = inv (137, 36) = 5, entonces:

λ = ⎣(n - eγ)/γ⎦ = ⎣(247 – 5)/36) ⎦ = 6,72 = 6

ei = eγ + i γ = 5 + i∗36 = 5, 41, 77, 113, 149, 185, 221

Y se podrá comprobar el criptograma C de la firma con cualquiera de estas claves, parejas de la clave pública e.

Page 662: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 661

Comprobación de una firma digital

¿Problemas con la firma digital y las claves públicas parejas? Un usuario firma un hash de un mensaje con su clave privada, lo que envía al destino junto con el mensaje original. En destino se descifra con la clave pública del emisor y se comparan los dos hash, el de emisión y el recuperado en recepción, para dar validez a dicha firma.

En este escenario, esto significa que se podría dar por válida una firma al descifrar el hash recibido con una clave pública pareja e’distinta a la inversa de la usada en emisión y dar validez a dicha firma; es decir usando alguna de las claves públicas parejas.

Esto en sí no es un ataque por lo que, al menos en este contexto y en principio, no debería considerarse como una vulnerabilidad. Esto es así porque, además, como se ha dicho es típico que la clave pública sea el mismo número primo para todos, el valor e = 65.537 = 216 + 1. Como es obvio, lo que será distinto para cada par de claves son p y q.

Page 663: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 662

Números no cifrables en RSA

Si Ne mod n = N se dice que N es un número no cifrable, NNC. Aunque la clave e sea válida, el número N se enviará en claro .En RSA habrá como mínimo 9 números no cifrables.En el caso más crítico, todos los números del cuerpo n pueden ser no cifrables como veremos más adelante.Para conocer estos valores no cifrables, habrá que hacer un ataque de cifrado por fuerza bruta en p y q, es decir deberemos comprobar que Xe mod p = X y Xe mod q = X con 1 < X < n-1 .

Ejemplo:Sea el cuerpo n = 35 (p = 5, q = 7), con φ(n) = 24 y e = 11.Dentro de los números posibles {0, 34} serán no cifrables: {6, 14, 15, 20, 21, 29, 34} además de los obvios {0, 1}. El valor n-1 (en este caso 34) será también siempre no cifrable.

Page 664: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 663

Cantidad de números no cifrables

La cantidad de números no cifrables dentro de un cuerpo n será:σn = [1 + mcd (e-1, p-1)][1 + mcd (e-1, q-1)]

Los números no cifrables serán:N = [q{inv (q, p)}Np + p{inv (p, q)}Nq] mod n

con: Np las soluciones de Ne mod p = NNq las soluciones de Ne mod q = NEsto último debido al TRC puesto que Ne mod n = N

En el ejemplo anterior se da el caso mínimo:σn = [1 + mcd (10, 4)][1 + mcd (10, 6)] = (1+2)(1+2) = 9N11 mod 5 = N ⇒ N5 = {0, 1, 4} N11 mod 7 = N ⇒ N7 = {0, 1, 6}N = [7{inv (7, 5)}Np + 5 {inv (5,7)}Nq] mod 35N = [7∗3 Np + 5∗3 Nq] mod 35 = [21{0, 1, 4} + 15{0, 1, 6}] mod 35N = {(0, 21, 84) + (0, 15, 90)} mod 35 sumando todos los términos...N = {0, 15, 90, 21, 36, 111, 84, 99, 175} mod 35 ordenando...N = {0, 1, 6, 14, 15, 20, 21, 29, 34}

Valores para un mínimo

Page 665: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 664

Ejemplo de números no cifrables (1)

Sea p = 13; q = 17; n = p∗q = 221Elegimos e = 7 por lo que d = inv (7, 192) = 55, luego:σn = [1 + mcd (e-1, p-1)][1 + mcd (e-1, q-1)]σ221 = [1 + mcd (6, 12)][1 + mcd (6, 16)] = (1+6)(1+2) = 21Soluciones de N7 mod 13 = N ⇒ Np = {0, 1, 3, 4, 9, 10, 12}Soluciones de N7 mod 17 = N ⇒ Nq = {0, 1, 16}Los números no cifrables serán:N = [q{inv (q, p)}Np + p{inv (p, q)}Nq] mod nN = [17{inv (17, 13)}Np + 13{inv (13, 17)}Nq] mod 221N = [{17∗10}Np + {13∗4}Nq] mod 221N = [170∗Np + 52∗Nq] mod 221

Page 666: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 665

Ejemplo de números no cifrables (2)

Teníamos Np = {0, 1, 3, 4, 9, 10, 12}Nq = {0, 1, 16}N = [170∗Np + 52∗Nq] mod 221 luego:

N = [170∗{0, 1, 3, 4, 9, 10, 12} + 52∗{0, 1, 16}] mod 221N = [{0, 170, 510, 680, 1.530, 1.700, 2.040} +{0, 52, 832}] mod 221N = [0+0, 0+52, 0+832, 170+0, 170+52, 170+832, ...] mod 221

N = [0, 52, 832, 170, 222, 1.002, 510, 562, 1.342, 680, 732, 1.512, 1.530, 1.582, 2.362, 1.700, 1.752, 2.531, 2.040, 2.092, 2.872] mod 221

N = [0, 52, 169, 170, 1, 118, 68, 120, 16, 17, 69, 186, 204, 35, 152, 153, 205, 101, 51, 103, 220] ordenando...

N = [0, 1, 16, 17, 35, 51, 52, 68, 69, 101, 103, 118, 120, 152, 153, 169, 170, 186, 204, 205, 220] estos son los 21 mensajes de σ221.

Page 667: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 666

Distribución de números no cifrables

Dado que N = {0, 1, 16, 17, 35, 51, 52, 68, 69, 101, 103, 118, 120, 152, 153, 169, 170, 186, 204, 205, 220}, observe que excepto el valor 0, los valores de los extremos siempre sumarán el valor del módulo: 1+220 = 16+205 = 17+204 = 35+186 ... = 221 = n.No obstante, esto no es una debilidad porque el siguiente valor no cifrable posterior al 1 es aleatorio y también la distribución entre los demás. Es más, en la mayoría de las claves no se aprecia una secuencia de valores muy clara, aunque sí se observa un comportamiento y distribución bastante curiosos.Si no fuera así, el sistema sería muy débil porque podríamos conocer de antemano qué valores muy pequeños serían no cifrables (además del 0 y el 1) y con esa información poder deducir si un valor x de centenas de bits (clave) es o no cifrable.

Page 668: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 667

Dos casos de números no cifrables

Sean p = 409, q = 499Con e = 31, d = 19.663Total números no cifrables: 490, 1, 1.636, 1.637, 23.313, 23.314, 24.949, 24.950, 26.586, 48.263, 49.899, 56.388, 58.024, 72.855, 74.491, 79.701, 81.337, 81.338, 82.973, 82.974, 96.168, 97.804, 97.805, 99.440, 99.441, 104.650, 104.651, 106.286, 106.287, 107.923, 121.117, 121.118, 122.753, 122.754, 124.390, 129.600, 131.236, 146.067, 147.703, 154.192, 155.828, 177.505, 179.141, 179.142, 180.777, 180.778, 202.454, 202.455, 204.090.

Sean p = 241, q = 251Con e = 61, d = 26.281Total números no cifrables: 6710, 1, 231, 250, 251, 364, 400, 482, 522, 604, 640, 733, 866, 1.004, 1.024, 1.287, 1.486, 1.506, 1.777, 1.870, 1.988, 2.009, 2.028, 2.227, 2.259, 2.260, 2.291, 2.510, .... ... 57.981, 58.200, 58.231, 58.232, 58.264, 58.463, 58.482, 58.503, 58.621, 58.714, 58.985, 59.005, 59.204, 59.467, 59.487, 59.625, 59.758, 59.851, 59.887, 59.969, 60.009, 60.091, 60.127, 60.240, 60.241, 60.260, 60.490.

Page 669: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 668

Cantidad mínima de números no cifrables

Para que la cantidad de números no cifrables sea la mínima posible, es decir 9, deberemos elegir la clave pública e de forma que:

mcd (e-1, p-1) = 2 y mcd (e-1, q-1) = 2Entonces: σn = [1 + 2][1 + 2] = 9

Esto se logra usando primos seguros:p = 2r + 1 y q = 2r’ + 1 con r, r’, p y q primos grandes

ya que: mcd (e-1, p-1) = mcd (e-1, (2r +1)-1) ⇒ mcd = 2 o bien rmcd (e-1, q-1) = mcd (e-1, (2r’ +1)-1) ⇒ mcd = 2 o bien r’

Luego: σn = {9, 3(r+1), 3(r’+1), (r+1)(r’+1)}Hay que comprobar en diseño que no se den valores del mcd igual a r o r’ pues tendríamos un número muy alto de este tipo de mensajes. Además, observe que si e = p ⇒ σn = 3p y si e = q ⇒ σn = 3q.

Page 670: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 669

Cantidad máxima de números no cifrables

En el peor de los casos, mcd (e-1, p-1) = p-1 y mcd (e-1, q-1) = q-1Entonces: σn = [1 + mcd(e-1, p-1)][1 + mcd(e-1, q-1)]

σn = p∗q = n ... ¡todas las cifras irán en claro!Si en el ejemplo anterior con p = 13, q = 17, hubiésemos elegido como clave e = 49, con d = inv (49, 192) = 145, observamos que:

mcd (e-1, p-1) = mcd (48, 12) = 12mcd (e-1, q-1) = mcd (48, 16) = 16σn = [1 + 12][1 + 16] = 13∗17 = 221 = p∗q = n

Por lo tanto, cualquier número en el cuerpo n = 221 será no cifrable para la clave pública e = 49. Compruebe que en este caso esto se cumple si e = φ(n)/k +1 (k = 2 y 4), es decir e = 97 y 49.Nunca podrá usarse e = φ(n)/2 + 1 ya que la clave de descifrado seráigual a 1 y por lo tanto no será cifrable ningún número de n.

Page 671: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 670

NNC por mala elección de la clave e

Sea p = 101, q = 761, n = 76.861. Luego φ(n) = 100∗760 = 76.000Algunos valores de e válidos como clave pero relacionados con φ(n):e = φ(n)/2 + 1 = 38.001 ⇒ 76.861 NNC (100 %)e = φ(n)/4 + 1 = 19.001 ⇒ 76.861 NNC (100 %)e = φ(n)/5 + 1 = 15.201 ⇒ 76.861 NNC (100 %)e = φ(n)/8 + 1 = 9.501 ⇒ 38.481 NNC (50 % aprox.) e = φ(n)/10 + 1 = 7.601 ⇒ 76.861 NNC (100 %)e = φ(n)/16 + 1 = 4.751 ⇒ 9.741 NNC (12,5 % aprox.)e = φ(n)/19 + 1 = 4.001 ⇒ 4.141 NNC (5 % aprox.)e = φ(n)/20 + 1 = 3.801 ⇒ 76.861 NNC (100 %)e = φ(n)/50 + 1 = 1.521 ⇒ 15.981 NNC (20 % aprox.)e = φ(n)/100 + 1 = 761 ⇒ 15.981 NNC (20 % aprox.)e = φ(n)/1.000 + 1 = 77 ⇒ 385 NNC (0,5 % aprox.)

Page 672: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 671

Confidencialidad en intercambio de clave

A diferencia del número de claves privadas parejas, por lo general un número relativamente bajo y distribución generalmente en torno a 2n bits, la cantidad de números no cifrables es mucho mayor y en ciertos casos puede llegar a ser todo el cuerpo de cifra.

No obstante en este nuevo escenario debemos ser menos paranoicos: la utilización actual de este tipo de cifra con clave pública de destino está en el intercambio de una clave de sesión de corta duración, por lo que la confidencialidad de dicha clave no está en compromiso en tanto es computacionalmente imposible un ataque por fuerza bruta a ella durante el corto tiempo de validez de la misma.

El único problema es que sería fácilmente detectable pues si la cifra de Ke mod n se envía en claro, el resultado será un número K de 128 bits en un cuerpo de cifra de 1.024 bits... habrá centenas de ceros ☺.

Page 673: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 672

Firmas digitales no cifrables

¿Hay algún problema con la firma digital no cifrable?

Si la cantidad de números no cifrables con la clave pública (tema confidencialidad) es alto, también lo será en igual proporción el de números no cifrables con la clave privada (tema autenticidad).

En este caso, significa que el hash de la firma del mensaje dentro del cuerpo de cifra n iría en claro. Aunque el hash sea de 128 bits (MD5) ó 160 bits (SHA1) y se cifre con la clave privada del emisor y luego se reduzca al cuerpo de cifra de 1.024 bits, la cifra irá en claro por lo que se podría apreciar claramente al tener esa cifra tener sólo una centena de bits significativos... y muchos ceros a la izquierda.

Como mucho esto puede dar pistas al criptoanalista en cuanto a que la clave del emisor podría no ser óptima y, por lo tanto, animarle a intentar otros tipos de ataques por la cifra de otros números en claro.

Page 674: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 673

Ataque al secreto de N por cifrado cíclico

Un nuevo problema: se puede encontrar el número en claro N sin necesidad de conocer d, la clave privada del receptor.Como C = Ne mod n, realizaremos cifrados sucesivos de los criptogramas Ci resultantes con la misma clave pública hasta obtener nuevamente el cifrado C original.

Ci = Cei-1 mod n (i = 1, 2, ...) con C0 = C

Si en el cifrado iésimo se encuentra el criptograma C inicial, entonces es obvio que el cifrado anterior (i-1) será el número buscado. Esto se debe a que RSA es un grupo mutiplicativo. Para evitarlo hay que usar primos seguros de forma que los subgrupos de trabajo sean lo suficientemente altos.

Page 675: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 674

Ejemplo de ataque por cifrado cíclicoSea p = 13, q = 19, n = 247, φ(n) = 216, e = 29 (d = 149, no conocido)El número a cifrar será M = 123 ⇒ C = 12329 mod 247 = 119

i Cii = 0 C0 = 119i = 1 C1 = 11929 mod 247 = 6i = 2 C2 = 629 mod 247 = 93i = 3 C3 = 9329 mod 247 = 175i = 4 C4 = 17529 mod 247 = 54i = 5 C5 = 5429 mod 247 = 123 en este paso aún no lo sabemosi = 6 C6 = 12329 mod 247 = 119

El ataque ha prosperado muy rápidamente: como hemos obtenido otra vez el criptograma C = 119, es obvio que el paso anterior con C = 123 se correspondía con el texto en claro. ¿Y si usamos primos seguros?

Page 676: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 675

Ataque por cifrado cíclico y primos segurosSea p = 11 y q = 23, aunque esto no sea recomendable. Luego n = 253, φ(n) = 220, y si e = 17, la clave privada es d = 134, no conocida.Sea el número confidencial N = 123 ⇒ C = 12317 mod 253 = 128.

i Ci i Cii = 0 C0 = 128 i = 12 C12 = 16717 mod 253 = 150i = 1 C1 = 12817 mod 253 = 6 i = 13 C13 = 15017 mod 253 = 193i = 2 C2 = 617 mod 253 = 173 i = 14 C14 = 19317 mod 253 = 118i = 3 C3 = 17317 mod 253 = 101 i = 15 C15 = 11817 mod 253 = 200i = 4 C4 = 10117 mod 253 = 95 i = 16 C16 = 20017 mod 253 = 73i = 5 C5 = 9517 mod 253 = 39 i = 17 C17 = 7317 mod 253 = 94i = 6 C6 = 3917 mod 253 = 96 i = 18 C18 = 9417 mod 253 = 41i = 7 C7 = 9617 mod 253 = 2 i = 19 C19 = 4117 mod 253 = 123i = 8 C8 = 217 mod 253 = 18 i = 20 C20 = 12317 mod 253 = 128i = 9 C9 = 1817 mod 253 = 215i = 10 C10 = 21517 mod 253 = 151i = 11 C11 = 15117 mod 253 = 167

Para n = 253, hemos tenido que recorrer un espacio mucho mayor dentro de un cuerpo de cifra muy similar al anterior (n = 247).

Page 677: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 676

La paradoja del cumpleaños

El próximo ataque a la clave privada estará basado en este problema.

Pregunta: ¿Cuál será la confianza (probabilidad > 50%) de que en un aula con 365 personas -no se tiene en cuenta el día 29/02 de los años bisiestos- dos de ellas al azar estén de cumpleaños en la misma fecha? Solución: Se escribe en la pizarra los 365 días del año y las personas entran al aula de uno en uno, borrando el día de su cumpleaños de la pizarra. Para alcanzar esa confianza del 50%, basta que entren sólo 23 personas al aula. Este es un valor muy bajo, en principio inimaginable y de allí el nombre de paradoja, aunque matemáticamente no lo sea.Explicación: El primero en entrar tendrá una probabilidad de que su número no esté borrado igual a n/n = 1, el segundo de (n-1)/n, etc. De esta manera, la probabilidad de no coincidencia será pNC = n!/(n-k)!nk. Para k = 23 se tiene pNC = 0,493 y así la probabilidad de coincidencia será igual a pC = (1- pNC) = 0,507, que es mayor que 0,5.

Page 678: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 677

Ataque a la clave por paradoja cumpleaños

Algoritmo propuesto por Merkle y Hellman en 1981:• El atacante elige dos números aleatorios distintos i, j dentro del

cuerpo de cifra n. Lo interesante es que elige, además, un mensaje o número N cualquiera.

• Para i = i+1 y para j = j+1 calcula Ni mod n y Nj mod n.• Cuando encuentra una coincidencia de igual resultado de cifra para

una pareja (i, j), será capaz de encontrar d.Un ejemplo para resolver en siguientes diapositivas: sea p = 7; q = 13, n = 91, e = 11, d = 59. El atacante sólo conoce n = 91 y e = 11. Partirácon el número N = 20 y elegirá los valores i = 10 y j = 50.

Puede encontrar varios tipos de ataques a RSA en la siguiente página:

http://crypto.stanford.edu/~dabo/papers/RSA-survey.pdf

Page 679: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 678

Ejemplo de ataque paradoja cumpleaños

i Ci j Cii = 10 C10 = 2010 mod 91 = 43 j = 50 C50 = 2050 mod 91 = 36i = 11 C11 = 2011 mod 91 = 41 j = 51 C51 = 2051 mod 91 = 83i = 12 C12 = 2012 mod 91 = 1 j = 52 C52 = 2052 mod 91 = 22i = 13 C13 = 2013 mod 91 = 20 j = 53 C53 = 2053 mod 91 = 76i = 14 C14 = 2014 mod 91 = 36 j = 54 C54 = 2054 mod 91 = 64i = 15 C15 = 2015 mod 91 = 83 j = 55 C55 = 2055 mod 91 = 6i = 16 C16 = 2016 mod 91 = 22 j = 56 C56 = 2056 mod 91 = 29i = 17 C17 = 2017 mod 91 = 76 j = 57 C57 = 2057 mod 91 = 34

Hay una colisión en el paso quinto al coincidir el valor C = 36 en contador i que ya había aparecido en contador j. Observe los valores repetidos.

Con los valores de i, j y el desplazamiento observado en uno de ellos cuando se detecta la colisión (i = 14), se establece un conjunto de ecuaciones y, si el ataque prospera, obtenemos la clave privada, una clave privada pareja, o bien un valor de clave privada particular que sólo sirve para descifrar el número elegido (aquíel 20) y no un número genérico. En este caso se hablará de un falso positivo.

Page 680: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 679

Resultado del ataque paradoja cumpleaños

La primera coincidencia se encuentra para i = 14; j = 50. Así, el atacante conociendo la clave pública e = 11, calcula:

w = (14-50) / mcd (11, |14-50|) = -36 / mcd (11, 36) = - 36.Entonces deberán existir valores s, t de forma que se cumpla lo siguiente:

w∗s + e∗t = 1 ⇒ -36∗s + 11∗t = 1Las posibles soluciones a la ecuación son: w∗s mod e = 1; e∗t mod w = 1

-36∗s = 1 mod 11 ⇒ s = inv (-36, 11) = inv (8, 11) = 711∗t = 1 mod 36 ⇒ t = inv (11, 36) = 23

El valor t = 23 será una clave privada pareja de d = 59. Compruebe que se verifica w∗s + e∗t = 1 y que las claves parejas son 11, 23, 35, 47, 71 y 83.Nota: como este algoritmo parte con valores aleatorios de los contadores i, j (ideberá ser el menor posible y j la mitad del cuerpo de cifra) y del número N (en el ejemplo 20) no siempre prospera el ataque, es decir será no determinista. En ese caso, es posible que cambiando el valor de N sí se logre el objetivo buscado.

Page 681: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 680

Ataque que entrega alguna clave pareja

Normalmente el ataque rompe la clave privada o una clave privada pareja; sin embargo, se darán situaciones especiales.Sea p = 11, q = 31, e = 13. Entonces d = 277 y las claves privadas parejas son: 7, 37, 67, 97, 127, 157, 187, 217, 247, 307, 337. Observe la diferencia constante igual a φ(n)/10 = 30. Se realiza el ataque con el software genRSA tomando valores de N desde 2 hasta 50, partiendo el contador i en 3 y j en n/2.Para N = 2 encuentra d’ = 157; para N = 3 encuentra d’ = 97; para N = 4 encuentra d’ = 127; para N = 5 encuentra d’ = 127; para N = 6 encuentra d’ = 97; ... etc.Para N = 32 encuentra d’ = 13, una solución falsa.Para d’ = 13 el programa realiza 2 iteraciones, para d’ = 127realiza 3, para d’ = 157 realiza 4 y para d’ = 97 realiza 14.

Page 682: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 681

Ataque que entrega la clave privada

En función de los parámetros de la clave, a veces se encuentra para muchos valores de N casi siempre la clave privada d.Sea p = 191, q = 211, e = 31. Entonces d = 12.871 y hay 9 claves privadas parejas. Se realiza el ataque con el software genRSA tomando valores de N desde 2 hasta 50, partiendo el contador i en 3 y j en n/2.Para casi todos los valores de N encuentra la clave privada d.Para N = 7, 39, 49 encuentra d’ = 1.951, para N = 14 encuentra d’ = 13.668 y para N = 23 encuentra d’ = 18.191, todas falsas.Sea ahora p = 241, q = 251, e = 11. Entonces d = 49.091 y hay 9 claves privadas parejas. Aunque aquí casi siempre encuentra el valor d’ = 19.091 como clave privada pareja válida, si usamos N = 36 el programa nos da como solución el valor d’ = 0, obviamente un falso positivo.

Page 683: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 682

¿Podría darse un ataque distribuido?

El ataque basado en la paradoja del cumpleaños no sería factiblerealizarlo en un solo PC por la alta complejidad computacional.... pero bien podría pensarse en un algoritmo distribuido, de forma que un computador hiciera las veces de servidor y todos los demás (... tal vez varios cientos de miles) actuaran como clientes. El servidor tendría como función distribuir trozos de cifra entre los clientes en diferentes intervalos de valores i, j como los del ejemplo anterior y, además, recibir los resultados de los clientes para detectar colisiones. Esta última función será la más crítica.Supuestamente este ataque llevaría un tiempo menor que el de factorizar el valor de n, para así encontrar la clave privada.Si bien no está demostrado la factibilidad real en tiempo de cómputo de esta opción, el hecho de que un certificado digital, y por ende la clave privada, tenga una validez de un año podría ser un motivo de preocupación ... siempre sin caer en paranoias ☺.

Page 684: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 683

La otra historia del algoritmo RSA

Rivest, Shamir y Adleman son los autores de RSA pero un algoritmo de cifra asimétrico basado en la dificultad de factorizar números grandes como función unidireccional fue descubierto mucho antes...En el año 1969 el Government Communications Headquarters(GCHQ) en Gran Bretaña comienza a trabajar en la idea de poder distribuir claves a través de una cifra no simétrica. En 1973, el matemático Clifford Cocks llegará a la misma conclusión que los creadores de RSA.Desgraciadamente este trabajo fue considerado como alto secreto por el gobierno británico por lo que su contenido no se hace público ni se patenta como invento, algo que sí hacen Diffie y Hellman en 1976con su intercambio de claves y en 1978 otro tanto los creadores del algoritmo RSA.

http://livinginternet.com/i/is_crypt_pkc_inv.htm

Page 685: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 684

Cifrado Pohlig y Hellman con clave secreta

• Stephen Pohlig y Martin Hellman proponen en enero de 1978 un algoritmo de cifra de clave secreta y que basa su seguridad en el problema del logaritmo discreto. Hablamos de sólo un mes antes que el algoritmo RSA... algo que también llama la atención.

Se elige un grupo multiplicativo Zp*, p es un primo grande.Cada usuario elige una clave e, que sea primo relativo con el grupo φ(p) = p-1 y calcula d = inv [(e, φ(p)].La clave secreta serán los valores e y d.Se cifrará C = Me mod p y se descifrará M = Cd mod p.

Dado que el sistema carece de firma digital en el sentido amplio al ser de clave secreta, estará sólo orientado a la cifra de mensajes o números para la confidencialidad. No puede competir en velocidad con la cifra simétrica.

http://ieeexplore.ieee.org/xpl/abs_free.jsp?arNumber=1055817

Page 686: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 685

Adela cifrará un mensaje M que desea enviar a Bernardo:p = 263 ⇒ φ(p) = 262; e = 15 ⇒ d = inv(15, 262) = 35

Sea M = Adiós = 65 100 105 243 115Como se usa el código ANSI, podremos cifrar en bloques de un carácter pues el módulo p es algo mayor que 256.

Ejemplo de cifrado Pohlig y Hellman

C = Me mod p = 6515 mod 263, 10015 mod 263,

10515 mod 263, 24315 mod 263, 11515 mod 263

C = 245, 143, 179, 86, 101

Operación Cifrado:

Page 687: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 686

Ejemplo de descifrado Pohlig y Hellman

B descifra el criptograma C enviado por A:p = 263; d = inv (15, 262) = 35

C = 245, 143, 179, 86, 101

Operación Descifrado:M = Cd mod p = 24535 mod 263, 14335 mod 263,

17935 mod 263, 8635 mod 263, 10135 mod 263

M = 065, 100, 105, 243, 115

Convirtiéndolo al código ANSI: M = Adiós

Page 688: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 687

Algoritmo de cifra asimétrica de ElGamal

Taher ElGamal propone en 1985 un algoritmo de cifra que hace uso del problema del logaritmo discreto PLD.

Se elige un grupo multiplicativo Zp*, donde p es un primo grandeDel grupo p se elige una raíz α, generador del grupoCada usuario elige un número aleatorio λ dentro de p

El valor λ será la clave privadaCada usuario calcula αλ mod p

Los valores (αλ mod p) y p serán la clave públicaSeguridad del sistema

Para descubrir la clave privada, el atacante deberá enfrentarse al problema del logaritmo discreto para p grande

http://web.usna.navy.mil/~wdj/book/node48.html

Page 689: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 688

Operación de cifra con ElGamal

Operación Cifrado: A cifra un número N que envía a B

El usuario B ha elegido su clave privada b dentro del cuerpo del número primo p que es público.El usuario B ha hecho pública su clave αb mod p.El emisor A genera un número aleatorio ν de sesión y calcula αν mod p.Con la clave pública de B (αb) el emisor A calcula:

(αb)ν mod p y N∗(αb)ν mod pA envía a B el par: C = [αν mod p, N∗(αb)ν mod p]

Page 690: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 689

Operación de descifrado con ElGamal

Operación Descifrado: B descifra el criptograma C que envía A

El usuario B recibe C = [αν mod p, N∗(αb)ν mod p].

B toma el valor αν mod p y calcula (αν)b mod p.

B descifra el criptograma C haciendo la siguiente división: [N∗(αb)ν mod p ] / [(αν)b mod p] ... porque (αb)ν = (αν)b

El paso anterior es posible hacerlo porque existirá el inverso de (αν)b en el grupo p al ser p un primo. Luego:

[N∗(αb)ν ∗ {inv (αν)b, p}] mod p = N

Page 691: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 690

Ejemplo de cifrado con ElGamal

Adela (A) enviará a Benito (B) el número N = 10 cifrado dentro del cuerpo p = 13 que usa Benito.

CIFRADOClaves públicas de Benito: p = 13, α = 6, (αb) mod p = 2Adela (A) elige por ejemplo ν = 4 y calcula:

(αν) mod p = 64 mod 13 = 9(αb)v mod p = 24 mod 13 = 3N∗(αb)v mod p = 10∗3 mod 13 = 4Y envía a (B): (αν) mod p, N∗(αb)v mod p = [9, 4]

Page 692: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 691

Ejemplo de descifrado con ElGamal

DESCIFRADOLa clave privada de Benito (B) es b = 5Benito recibe: [(αν) mod p, N∗(αb)v mod p] = [9, 4]Benito calcula:

(αν)b mod p = 95 mod 13 = 3[N∗(αb)v] ∗ inv[(αν)b, p] = 4 ∗ inv (3, 13) = 4 ∗ 9N = 4 ∗ 9 mod 13 = 10 (se recupera el valor)

Recuerde que α debe ser una raíz de p. Como ya hemos visto, si α no es una raíz, aunque sí puede hacerse la cifra, se facilitaría el ataque al problema del logaritmo discreto.

Page 693: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 692

Consideraciones sobre el bloque de cifra

Si queremos cifrar mensajes en vez de números y ese mensaje fuese mayor que el módulo de trabajo del sistema (n = p∗q para RSA y p para ElGamal)...

¿cómo se generarían los bloques del mensaje a cifrar?

El mensaje M puede transformarse en números y éstos se dividen en bloques de g-1 dígitos, siendo g el número de dígitos del módulo de trabajo: el valor n = n∗p para RSA y p para ElGamal.

Ya se ha dicho que la práctica esto no ocurrirá puesto que el cuerpo de cifra es como mínimo de 1.024 bits y el “mensaje” a cifrar tendrá sólo una centena de bits.

Ejemplo

Page 694: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 693

Ejemplo de elección del bloque con RSA

Se representará el mensaje en su valor ANSI decimal.n = p∗q = 89∗127 = 11.303 ⇒ bloques de cuatro dígitos

φ(n) = 11.088; e = 25; d = inv (25, 11.088) = 10.201M = Olé = 079 108 233 ⇒ M = 0791 0823 3

Se recupera el mensaje agrupando en bloques de 4 dígitos excepto el último

CIFRADO DESCIFRADOC1 = 79125 mod 11.303 = 7.853C2 = 82325 mod 11.303 = 2.460C3 = 325 mod 11.303 = 6.970

M1 = 7.85310201 mod 11.303 = 0791M2 = 2.46010201 mod 11.303 = 0823M3 = 6.97010201 mod 11.303 = 3

Page 695: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 694

Fortaleza de la cifra exponencial

El problema del Logaritmo Discreto PLD será similar al de la Factorización de Números Grandes PFNG ya que ambos van a suponer un tiempo de ejecución de tipo no polinomial.Recuerde que el número de pasos para resolver el PFNG era de e√{ln(n)∗ln[ln(n)]}.Si suponemos un sistema que consuma 1 µseg por paso:

n = 60 dígitos ⇒ 2,7∗1011 pasosn = 100 dígitos ⇒ 2,3∗1015 pasosn = 200 dígitos ⇒ 1,2∗1023 pasos

3 días74 años3,8∗109 años

El PLD es matemáticamente similar pues el número de pasos será ahora aproximadamente igual a e√{ln(p)∗ln[ln(p)]}.

http://en.wikipedia.org/wiki/Discrete_logarithm

Page 696: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 695

Resumen de los sistemas de clave pública

Pros y contras de los Sistemas de Clave Pública• Emisor y receptor generan un par de claves, pública y

privada, relacionadas por una función con trampa.

• Emisor y receptor de un mensaje usan claves diferentes para las operaciones de cifrado, descifrado y firma.

• La seguridad del sistema va asociada a la resolución de un problema matemático de difícil solución en el tiempo.

• Firma digital completa: autentican al mensaje y al emisor. ... pero

• Es necesario contar con mecanismos de certificación para asegurar la veracidad de las claves públicas.

• Son sistemas de cifra muy lentos.Fin del capítulo

Page 697: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 696

Cuestiones y ejercicios (1 de 4)

1. A partir de la ecuación e∗d = kφ(n) + 1, compruebe que las claves RSA e = 133 y d = 38.797 son inversas en el cuerpo n = 40.501.

2. En el ejemplo de intercambio de clave DH del libro con p = 1.999, ¿podrían haber elegido Adela y Benito α = 34, 35, 36 ó 37?

3. Carmela (C) intercepta la clave de sesión DH que se intercambianAdela (A) y Benito (B) dentro del cuerpo p = 127. Si se usa comogenerador α = 19 y a = 3, b = 12 y c = 7, desarrolle el algoritmo que permite a C interceptar la comunicación y engañar a A y B.

4. Los usuarios A, B, C y D desean intercambiar una clave usando elmétodo DH. Proponga un protocolo genérico que solucione este problema y presente un ejemplo en el cuerpo p = 23 y elija α.

5. Diseñe un sistema RSA en el que p = 53, q = 113. Elija como clave pública el mínimo valor posible de 2 dígitos.

Page 698: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 697

Cuestiones y ejercicios (2 de 4)

6. Para los datos de diseño del ejercicio 5, cifre el número M = 121 y luego descífrelo. Use el algoritmo de exponenciación rápida.

7. Vuelva a descifrar el criptograma usando ahora el Teorema del Resto Chino. Aunque en este caso haya hecho más cálculos ¿por qué es interesante usar aquí el Teorema del Resto Chino?

8. Si p = 353 y q = 1.103, cifre el mensaje ASCII de cuatro caracteres M = HOLA en bloques de tamaño eficiente (mínimo) para e = 17.

9. Para los datos del ejercicio anterior, encuentre la clave privada d usando el algoritmo extendido de Euclides.

10. ¿Por qué se usa una clave pública e de un valor relativamente bajo y, por contrapartida, la clave privada d es alta? ¿Qué utilidad tiene?

11. ¿Cómo atacaría un sistema RSA mal diseñado con primos cercanos y cuyo módulo es n = 205.027? Encuentre los valores de p y q.

Page 699: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 698

Cuestiones y ejercicios (3 de 4)

12. En el sistema RSA con p = 11 y q = 19, se elige como clave pública e = 31. ¿Cuántas y cuáles son las claves privadas parejas?

13. Para los mismos datos del ejercicio anterior, ¿cuántos y cuáles son los mensajes no cifrables? ¿Qué sucede si ahora e = 33?

14. ¿Cómo puede minimizarse el número de claves privadas parejas y el de mensajes no cifrables? Dé un ejemplo con primos de dos dígitos.

15. Atacamos un sistema RSA con un cifrado cíclico. ¿Qué es lo que vulneramos, el secreto de la clave privada o secreto del mensaje?

16. Se ataca por cifrado cíclico el sistema RSA: p = 23, q = 41 y e = 17. ¿Cuántos cifrados hay que hacer para romper N = 200 y N = 185?

17. Cifre M = “La Puerta de Alcalá” (de 19 caracteres ANSI) con un sistema de Pohlig y Hellman. Use el primer primo que le permita cifrar bloques de 2 bytes. Descifre ahora el criptograma C.

Page 700: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 699

Cuestiones y ejercicios (4 de 4)

18. Vamos a cifrar con ElGamal el mensaje en ASCII decimal de la letra A. ¿Cuáles son los valores mínimos del cuerpo de cifra, del generador α, de la clave pública y del valor local v?

19. Descifre el criptograma obtenido en el ejercicio anterior.20. Se va a cifrar con RSA el mensaje M = Hola. Si p = 53 y q = 97, ¿de

cuántos dígitos será el bloque óptimo de cifra?21. En un sistema real, ¿tiene sentido hablar de bloques con un número

de dígitos óptimos? ¿Por qué? Justifique su respuesta.22. ¿Cuántos pasos debe realizar una factorización de un número n de

120 dígitos? Si tenemos un sistema que consume 1 µseg por paso, ¿cuántos años tardaríamos más o menos en factorizar ese número?

23. El valor encontrado en el ejercicio anterior, ¿es siempre fijo o es sólo una aproximación? Justifique su respuesta.

Page 701: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 700

Prácticas del tema 14 (1/10)Software genRSA: http://www.criptored.upm.es/software/sw_m001d.htm

1. Genere una clave de forma manual con p = 5, q = 13 y e = 11. Observe el número de claves parejas y el de mensajes no cifrables.

2. ¿Cuáles son las claves privadas parejas para p = 13, q = 19, e = 41?3. Compruebe las claves parejas del ejemplo de los apuntes usando primos

seguros: p = 11, q = 47, e = 17. Repita el ejemplo con e = 7, e = 77.4. Genere al menos una docena de claves de forma automática para un valor n

de 24 bits, con p y q diferentes, y observe el número de claves parejas y de mensajes no cifrables. Repita el ejemplo con p y q de igual tamaño y luego repita todo el ejercicio para claves de 30 y 32 bits.

5. Para la clave (p, q, e) que se indica (7187, 107791, 6293) observe cómo se distribuyen las claves privadas parejas en incrementos de tamaño 107790.

6. Cambie las unidades a hexadecimal y repita el ejercicio 4 para claves de 512, 1024 y 2048 bits. En cada caso compruebe la primalidad de p y q.

Page 702: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 701

Prácticas del tema 14 (2/10)7. Observe las claves parejas para la clave de 1.024 bits con valores p; q; e:

02E68E02BE7400FE11E8A45B60017F988251AEED1CF5A9820A6BC9DE01A408A2725A0977B1A4584556C8F2A6E450089AA860007CE446BD342D5320AF12E9CE8D41; 3560B5461224C1DD6332CA632A13C9C13D9072AB1297092332E0773FEACF9D2D449DE87436B3267C185698515B8948A4792F9C1328712CAAD35FD1A94ADAFE9D; 10001. ¿Le llama algo la atención?

8. Repita el ejercicio anterior con e = 41B3, e = 41B7, e = 41BD, e = 41BF.9. Observe las claves parejas para la clave de 512 bits con valores p; q; e:

D2BF44D863DC579E5192EDF83744EBFF5A72E2D5E8DE9FE330EDFD65114FFF0F; D4C1CE77FE15374D8C7E0CE2CEF52E283D237521262E3D4E51D3216BE1B50665; 10001. Analice la distribución de estas claves parejas.

10. Si aunque alto, el porcentaje de claves débiles en el caso anterior sigue siendo insignificante, ¿estaría Ud. seguro del secreto de su clave privada?

Page 703: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 702

Prácticas del tema 14 (3/10)11. Genere manualmente las claves que se indican (p, q, e) de 16, 17, 18, 19 y

20 bits y genere el log de los mensajes no cifrables: (199, 251, 26803); (211, 463, 21727); (419, 499, 30713); (409, 907, 2995); (769, 929, 8413). Guarde los archivos como 16b_mnc, 17b_mnc, 18b_mnc, 19b_mnc, 20b_mnc y en cada caso anote el tiempo empleado en hacer todos los cifrados. En este último su computador podría tardar cerca de 3 minutos.

12. De acuerdo a los tiempos observados en el ejercicio anterior, encuentre la tasa media de cifrados del programa genRSA en este entorno. Imagine y comente cómo funcionaría un hipotético ataque multiusuario en red.

13. Con la clave (p, q, e) del ejemplo de los apuntes (89, 31, 29) cifre el mensaje numérico N = 1995. Compruebe los pasos del descifrado usando el Teorema del Resto Chino.

14. Cree la clave (p, q, e) de 24 bits (8123, 1523, 25219) y cifre a continuación el número N = 3571. Descífrelo primero de forma normal y luego con el Teorema del Resto Chino.

Page 704: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 703

Prácticas del tema 14 (4/10)15. Para la clave (p, q, e) de 24 bits (8123, 1523, 25219) cifre y descifre el

valor decimal N = 65, la letra A. Repita la cifra para el mensaje M = A, indicando que es texto. Observe la representación hexadecimal del ANSI. Compare los valores de ambos criptogramas en una sola base.

16. Con esa clave, cifre M = ABC, observe el criptograma y el descifrado. Repita la cifra para M = ABCD, luego M = abc1234. Compruebe que, dada la longitud de la clave, en este caso se cifra por bloques de 24 bits, 3 bytes.

17. Para la clave de 20 bits con primos de igual tamaño (p, q, e) = (853, 983, 3671) ataque el módulo n = 838499 por factorización de primos cercanos con 300 vueltas. ¿En cuántas vueltas se factoriza? ¿Qué puede comentar?

18. Repita ahora para una clave similar de 20 bits n = 863407 pero con primos de un tamaño distinto (443, 1949, 25881). ¿Qué sucede ahora?

19. Para la clave (p, q, e) de 48 bits (C7812B, EA6935, 566B) con primos de igual tamaño, factorice solicitando en este caso 50.000 vueltas.

Page 705: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 704

Prácticas del tema 14 (5/10)20. Para la clave (p, q, e) de los apuntes (13, 19, 29) haga un ataque por

cifrado cíclico del número N = 123. Compruebe los valores que aparecen en los apuntes.

21. Para la clave (p, q, e) de los apuntes con primos seguros (11, 23, 17) haga un ataque por cifrado cíclico del número N = 123; compruebe los valores que aparecen en los apuntes. ¿Qué pasa si N = 45? ¿Y si N = 46? Limpie la pantalla, genere otros valores de N y repita el ataque.

22. Para la clave (p, q, e) de 24 bits (15217, 907, 635) realice un ataque por cifrado cíclico para los valores N = 7978282 y N = 11537541, con 1000 vueltas. Limpie la pantalla, genere otros valores de N y repita el ataque.

23. Para la clave (p, q, e) de 32 bits (110581, 30851, 20999) realice un ataque por cifrado cíclico para el valor N = 1820641683, con 750 vueltas. Limpie la pantalla, genere otros valores de N y repita el ataque.

24. Para la clave (p, q, e) de 40 bits (0E22A9, 0E65F1, 6B65) realice un ataque por cifrado cíclico para N = C799A8A19F, con 10000 vueltas.

Page 706: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 705

Prácticas del tema 14 (6/10)25. Para la clave (p, q, e) de los apuntes (7, 13, 11) haga un ataque a la clave

por paradoja del cumpleaños. Compruebe que obtiene alguna de las claves parejas si N = 33, N = 9, y otros valores.

26. Nota: en algunos casos es posible que se encuentre una “clave pareja” no genérica y que sólo sirve para descifrar ese criptograma. Compruebe que para el mensaje N = 83, se obtiene una “clave” d’ = 3 que no es pareja pero que sí descifra el criptograma 51, resultado de la cifra 8311 mod 91. Va a suceder lo mismo para N = 8, N = 21, N = 34.

27. Para la clave (p, q, e) de 16 bits (239, 191, 25499) realice un ataque por paradoja del cumpleaños para N = 40872. Limpie la pantalla, genere otros valores de N y repita el ataque.

28. Para la clave (p, q, e) de 20 bits (977, 997, 17405) realice un ataque por paradoja del cumpleaños para N = 516055. Esta operación puede tardar algunos minutos. Active la opción obtener todos los valores. Observe que aquí sí se obtiene la clave privada. Abra y vea el archivo html generado.

Page 707: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 706

Prácticas del tema 14 (7/10)Software ExpoCrip: http://www.criptored.upm.es/software/sw_m001l.htm

1. Para la clave (p, q, e) que se indica (7, 13, 5) observe las claves privadas parejas. Observe otra vez las claves parejas para e = 7, 11, 13, 17.

2. En el caso anterior, ¿qué sucede con los mensajes no cifrables si e = 37?3. Para la clave (p, q, e) que se indica (127, 557, 337) obtenga los mensajes

no cifrables en un archivo de nombre 215mnc.txt. Ordénelos con algún procesador de texto (Word) y observe cómo se distribuyen los valores.

4. Cifre N = 1001. Descífrelo con la clave privada d y la clave pareja 47293. Repítalo con el número hexadecimal N = AB3.

5. Para esta clave, cifre el mensaje M = 123 ABC. Use el portapapeles sobre el criptograma en ASCII y descífrelo. Usando la clave pareja dP = 47293, descifre nuevamente el criptograma. ¿Y si ahora usa dP= 47294?

6. Si (p, q, e) = (61, 103, 41) cifre y descifre el mensaje M = Vamos a ver cómo funciona ahora esto. Vea la ayuda del programa para cifra en bloque.

Page 708: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 707

Prácticas del tema 14 (8/10)7. Para cada una de las claves (p, q, e) dadas (59141, 51593, 29571); (59141,

51593, 381393861); (59141, 51593, 1525575441), observe el número de mensajes no cifrables y la relación el valor de e y la función φ(n). Observe la situación del último caso en el que una de las claves privadas es 1.

8. Para la clave (p, q, e) dada (41, 137, 19) realizar un ataque cíclico introduciendo el mensaje M = A. Repítalo con M = b, M = X.

9. Conociendo sólo n = 29740913, e = 101, realice un ataque por cifrado cíclico al criptograma en ASCII C = ?÷ñ. Observe el texto en claro en el cifrado n-1. Con el programa factorice n y genere la clave RSA. Para obtener el texto en claro, descifre ahora el criptograma C = ?÷ñ.

10. Factorice el módulo n = 29740913. Duplicando el número de dígitos de p y q, obtenemos el módulo de 16 dígitos n = 1479905711715731. Factorice este valor y observe que ahora tardará casi un minuto.

11. Para la clave (p, q, e) dada (41, 137, 19) realizar un ataque por paradoja de cumpleaños introduciendo el mensaje M = Vale. Repítalo varias veces.

Page 709: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 708

Prácticas del tema 14 (9/10)

12. Genere un sistema de ElGamal con p = 43, α = 5, x = 13, k = 18. ¿Quésucede si introduce como generador α = 6 y da al tabulador?

13. Con la misma aplicación, observe todos los generadores del cuerpo 43.14. Con la clave anterior, cifre el número N = 25. Ahora con la ayuda del

portapapeles, descifre el criptograma obtenido. Compruebe con lacalculadora de Windows todos los valores encontrados.

15. Con la misma clave cifre el mensaje M = Hola qué tal! Con la ayuda del portapapeles, descifre el criptograma. Modifique en el criptograma el octavo carácter B por una C y observe lo que sucede con el descifrado.

16. Observe que en el cifrado hexadecimal, al igual que con números, se cifra sólo dentro del cuerpo de cifra, en este caso p = 43 que corresponde a un CCR = {0, 1, ... 42} es decir desde el valor 00 al valor 2A. Si ciframos 2B y los siguientes valores, volvemos a obtener el mismo cifrado módulo 43.

17. Con la clave p = 564387560286133, α = 128, x = 3217, k = 8752, cifre distintos valores numéricos y observe el criptograma.

Page 710: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 14: Cifrado Asimétrico Exponencial Página 709

Prácticas del tema 14 (10/10)Software OpenSSL: http://www.slproweb.com/products/Win32OpenSSL.html

1. Una vez instalado Win32OpenSSL para Windows en el disco duro, en la carpeta C:\OpenSSL\bin> y desde el símbolo del sistema MSDOS genere una clave RSA de 1.024 bits mediante el comando: openssl genrsa 1024. Observe que una vez creada la clave nos indica “e is 65537 (0x10001)”.

2. Cree una nueva clave RSA guardando la clave en un archivo de nombre rsakey con el comando: openssl genrsa -out rsakey 1024.

3. Recupere ahora esa clave y guárdela en un archivo en formato hexadecimal de nombre claveRSA1: openssl rsa -in rsakey -text -out claveRSA1. Si nodesea incluir en el archivo la clave privada, agregue la opción -noout.

4. Edite claveRSA1 con Word o WordPad, elimine todos los “:” y elimine luego los “cuatro espacios en blanco” de forma que los valores de p y de q en hexadecimal estén cada uno en una sola cadena. Pegue esos valores de p y de q en el programa genRSA, con e = 10001, genere y observe la clave.

5. Repita los puntos 2, 3 y 4 hasta encontrar una clave de “baja calidad”.

Page 711: Seguridad Informatica

Capítulo 15Funciones Hash en Criptografía

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 34 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 712: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 711

Uso de las funciones hash en criptografía

Una de las aplicaciones más interesantes de la actual criptografía es la posibilidad real de añadir en un mensaje una firma digital: la autenticación completa.

Todo esto comienza en el año 1976 cuando Diffie y Hellman presentan un modelo de cifrado asimétrico con clave pública. Con los antiguos sistemas de cifra de clave simétrica esto era inviable o bien muy complejo.

No obstante, dado que los sistemas de clave pública son muy lentos, en vez de firmar digitalmente el mensaje completo, en un sistema criptográfico se incluirá como firma digital una operación de cifra con la clave privada del emisor sobre un resumen o hash de dicho mensaje, representado por sólo una centena de bits.

Page 713: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 712

Funciones hashMensaje = M ⇒ Función Resumen = h(M)

Firma (rúbrica): r = EdE{h(M)}

¿Cómo se comprueba la identidad en destino?

Se descifra la rúbrica r con la clave pública del emisor eE. Al mensaje en claro recibido M’ (si viniese cifrado, se descifra) se le aplica la misma función hash que en emisión. Si los valores son iguales, la firma es auténtica y el mensaje íntegro:

Calcula: EeE(r) = h(M)Compara: ¿h(M’) = h(M)?

dE es la clave privada del emisor que firmará h(M)

¿Qué seguridad nos daun resumen de k bits?

Page 714: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 713

Seguridad asociada a una función hash

Suponga que hemos creado una función hash de forma que el resumen es sólo de 4 bits, independientemente del tamaño del mensaje de entrada.La pregunta es: ¿cuál es la probabilidad de que dos mensajes distintos tengan igual función hash? Si esta probabilidad fuese muy baja (en este caso 1/16: hash desde 0000 hasta 1111) podría darse el siguiente caso: alguien modifica nuestro mensaje firmado, y envía ese mensaje falso con la firma del primero ya que en ambos casos son los mismos 4 bits...Mensaje 1: “Rechazamos el contrato por no interesarnos nada” hash: 1101Mensaje 2: “Firma todo lo que te pongan porque nos interesa” hash: 1101Observe que ambos mensajes tienen 47 caracteres. Así, podríamos crear una gran cantidad de mensajes diferentes que digan cosas distintas incluso con igual número de caracteres... ¡hasta que los dos hash coincidan!Por este motivo, para que las funciones hash sean interesantes en criptografía deben cumplir un conjunto de propiedades.

Page 715: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 714

Propiedades de las funciones hash

h(M) será segura si tiene las siguientes características:

1. Unidireccionalidad: conocido un resumen h(M), debe ser computacionalmente imposible encontrar M a partir de dicho resumen.

2. Compresión: a partir de un mensaje de cualquier longitud, el resumen h(M) debe tener una longitud fija. Lo normal es que la longitud de h(M) sea menor que el mensaje M.

3. Facilidad de cálculo: debe ser fácil calcular h(M) a partir de un mensaje M.

4. Difusión: el resumen h(M) debe ser una función compleja de todos los bits del mensaje M: si se modifica un solo bit del mensaje M, el hash h(M) debería cambiar la mitad de sus bits aproximadamente.

Page 716: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 715

Colisiones: resistencia débil y fuerte

5. Colisión simple: será computacionalmente imposible conocido M, encontrar otro M’ tal que h(M) = h(M’). Esto se conoce como resistencia débil a las colisiones.

6. Colisión fuerte: será computacionalmente difícil encontrar un par (M, M’) de forma que h(M) = h(M’). Esto se conoce como resistencia fuerte a las colisiones.

Ataque por la paradoja del cumpleañosPara tener confianza en encontrar dos mensajes con el mismo resumen h(M) -probabilidad ≥ 50%- no habrá que buscar en 2n (p.e. 2128), bastará una búsqueda en el espacio 2n/2 (264).¡La complejidad algorítmica se reduce de forma drástica!

Page 717: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 716

Repaso de la paradoja del cumpleaños

En el capítulo de criptosistemas asimétricos ya se presentaba este problema matemático, consistente en que exista confianza, es decir una probabilidad mayor que el 50%, de que en un aula con 365 personas, dos de ellas al azar cumplan años en la misma fecha. En realidad no se trata de una paradoja, pero parece serlo dado que ese número que buscamos es sólo de 23 personas.Explicación: si éstos entran en el aula de uno en uno y van borrando de una pizarra su cumpleaños, el primero tendrá una probabilidad de que su número no esté borrado igual a n/n = 1, el segundo de (n-1)/n, etc. La probabilidad de no coincidencia es pNC = n!/(n-k)!nk. Si k = 23, se tiene pNC = 0,493 y la probabilidad de coincidencia es pC = 0,507.

En un hash, esto sería equivalente a sacar dos mensajes de dos conjuntos disjuntos y comparar sus valores; si los hash son distintos sacamos un nuevo mensaje y lo comparamos con los anteriores,... hasta que haya una colisión.

Page 718: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 717

Algoritmos de resumen en criptografía

• MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento pero con mayor nivel de seguridad. Resumen de 128 bits.

• SHA-1: Del NIST, National Institute of Standards and Technology, 1994. Similar a MD5 pero con resumen de 160 bits. Existen otras propuestas conocidas como SHA-256 y SHA-512, posibles estándares.

• RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.• N-Hash: Nippon Telephone and Telegraph, 1990. Resumen: 128 bits.• Snefru: Ralph Merkle, 1990. Resúmenes entre 128 y 256 bits. Ha sido

criptoanalizado y es lento.• Tiger: Ross Anderson, Eli Biham, 1996. Resúmenes de hasta 192 bits.

Optimizado para máquinas de 64 bits (Alpha).• Panama: John Daemen, Craig Clapp, 1998. Resúmenes de 256 bits de

longitud. Trabaja en modo función hash o como cifrador de flujo.• Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992.

Admite 15 configuraciones diferentes. Hasta 256 bits.

Los m

ás u

sado

s act

ualm

ente

Page 719: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 718

Función resumen MD5Esta función ya está obsoleta desde mediados de 2005. No obstante, es interesante su estudio dada la sencillez del algoritmo y su generalidad.

Algoritmo básico de Message Digest 5a) Un mensaje M se convierte en un bloque múltiplo de 512 bits,

añadiendo bits si es necesario al final del mismo.b) Con los 128 bits de cuatro vectores iniciales ABCD de 32 bits cada uno

y el primer bloque del mensaje de 512 bits, se realizan diversasoperaciones lógicas entre ambos bloques.

c) La salida de esta operación (128 bits) se convierte en el nuevo conjunto de 4 vectores A’B’C’D’ y se realiza la misma función con el segundo bloque de 512 bits del mensaje, y así hasta el último bloque delmensaje. Al terminar, el algoritmo entrega un resumen que corresponde a los últimos 128 bits de estas operaciones.

http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

Page 720: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 719

Etapas de MD5

Bloques funcionales de MD5a) Añadir bits para congruencia módulo 512, reservando los

últimos 64 bits para un indicador de longitud.b) Añadir indicación de la longitud del mensaje en los 64 bits

reservados para ello.c) Inicializar el vector ABCD de claves con un valor que no

es secreto.d) Procesar bloques de 512 bits, entregando una salida de 128

bits que formarán nuevamente el vector ABCD.e) Obtener el resumen de los últimos 128 bits.

http://www.faqs.org/rfcs/rfc1321.html

Page 721: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 720

Esquema de la función MD5

MENSAJE 1000... K

Mensaje de K bits Relleno de 1 a 448 bits K mod 264

(64 bits)

L∗512 bits = N∗ 32 bitsN palabras de 32 bits

512 bits

A16 = 01234567B16 = 89ABCDEFC16 = FEDCBA98D16 = 76543210

A16 = 01234567B16 = 89ABCDEFC16 = FEDCBA98D16 = 76543210

Yq

HMD5

Y1 Y2

ABCDHMD5 HMD5

YL-1

HMD5RESUMEN

de 128 bitsPrimer resumen

Page 722: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 721

Bloque principal de MD5

Bloque principal1er bloque de 512

bits del mensaje M

Vuelta1

FuncionesF y FF

Vuelta2

FuncionesG y GG

Vuelta3

FuncionesH y HH

Vuelta4

FuncionesI e II

ABCD

A’++

++

Vectorinicial

Nuevo Vector ABCD de 128 bits para el próximo bloque...

¿Qué hacen las funciones F y FF...?

B’C’D’

SUMA MÓDULO 232+

Page 723: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 722

Esquema funciones F, G, H, I en MD5 a b c d

función no lineal

Vector inicial ABCD b c d128 bits

A16 = 01234567B16 = 89ABCDEFC16 = FEDCBA98D16 = 76543210

A16 = 01234567B16 = 89ABCDEFC16 = FEDCBA98D16 = 76543210 x, y, z ⇒ b, c, d

F (x, y, z)(x AND y) OR (NOT x AND z)G (x, y, z)(x AND z) OR (y AND NOT z)H (x, y, z)x XOR y XOR zI (x, y, z)y XOR (x OR NOT z)

F (x, y, z)(x AND y) OR (NOT x AND z)G (x, y, z)(x AND z) OR (y AND NOT z)H (x, y, z)x XOR y XOR zI (x, y, z)y XOR (x OR NOT z)

F (b, c, d)(b AND c) OR (NOT b AND d)G (b, c, d)(b AND d) OR (c AND NOT d)H (b, c, d)b XOR c XOR dI (b, c, d)c XOR (b OR NOT d)

F (b, c, d)(b AND c) OR (NOT b AND d)G (b, c, d)(b AND d) OR (c AND NOT d)H (b, c, d)b XOR c XOR dI (b, c, d)c XOR (b OR NOT d)

Page 724: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 723

Algoritmo de las funciones en MD5 a b c dDesplazamiento del registro

función no lineal

+

+

+

<<< sj

+

Mj

tj

+Suma mod 232

b cad

32 bits

32 bits

sj bits a la

izquierda

Se repite el proceso para Mj+1 hasta 16 bloques del texto. En las vueltas 2, 3 y 4 se repite el proceso ahora con funciones G, H e I.

El algoritmo realiza 4∗16 = 64 vueltas

para cada uno de los bloques de 512 bits

Situación luego del desplazamiento

Page 725: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 724

Funciones no lineales en MD5

a b c dVector de 128 bitsFunciones no lineales

en cada vuelta1ª Vuelta:FF(a,b,c,d,Mj,tj,s) ⇒ a = b + ((a + F(b,c,d) + Mj + tj) <<< s)

2ª Vuelta:GG(a,b,c,d,Mj,tj,s) ⇒ a = b + ((a + G(b,c,d) + Mj + tj) <<< s)

3ª Vuelta:HH(a,b,c,d,Mj,tj,s) ⇒ a = b + ((a + H(b,c,d) + Mj + tj) <<< s)

4ª Vuelta:II(a,b,c,d,Mj,tj,s) ⇒ a = b + ((a + I(b,c,d) + Mj + tj) <<< s)

Page 726: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 725

Algoritmo y desplazamiento en MD5

Vector de 128 bits

a b c d

Sea f la función F, G, H o I según la vuelta. El algoritmo será:

Para j = 0 hasta 15 hacer:TEMP = [(a + f(b,c,d) + Mj + tj) <<<sj]a = dd = cc = bb = aa = TEMP

Page 727: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 726

Operaciones en 1ª y 2ª vueltas en MD5FF (a, b, c, d, Mj, tj, s)

FF(a, b, c, d, M0, D76AA478, 7)FF(d, a, b, c, M1, E8C7B756, 12)FF(c, d, a, b, M2, 242070DB, 17)FF(b, c, d, a, M3, C1BDCEEE, 22)FF(a, b, c, d, M4, F57C0FAF, 7)FF(d, a, b, c, M5, 4787C62A, 12)FF(c, d, a, b, M6, A8304613, 17)FF(b, c, d, a, M7, FD469501, 22)FF(a, b, c, d, M8, 698098D8, 7)FF(d, a, b, c, M9, 8B44F7AF, 12)FF(c, d, a, b, M10, FFFF5BB1, 17)FF(b, c, d, a, M11, 895CD7BE, 22)FF(a, b, c, d, M12, 6B901122, 7)FF(d, a, b, c, M13, FD987193, 12)FF(c, d, a, b, M14, A679438E, 17)FF(b, c, d, a, M15, 49B40821, 22)Pr

imer

a vu

elta

GG (a, b, c, d, Mj, tj, s)

GG(a, b, c, d, M1, F61E2562, 5)GG(d, a, b, c, M6, C040B340, 9)GG(c, d, a, b, M11, 265E5A51, 14)GG(b, c, d, a, M0, E9B6C7AA, 20)GG(a, b, c, d, M5, D62F105D, 5)GG(d, a, b, c, M10, 02441453, 9)GG(c, d, a, b, M15, D8A1E681, 14)GG(b, c, d, a, M4, E7D3FBC8, 20)GG(a, b, c, d, M9, 21E1CDE6, 5)GG(d, a, b, c, M14, C33707D6, 9)GG(c, d, a, b, M3, F4D50D87, 14)GG(b, c, d, a, M8, 455A14ED, 20)GG(a, b, c, d, M13, A9E3E905, 5)GG(d, a, b, c, M2, FCEFA3F8, 9)GG(c, d, a, b, M7, 676F02D9, 14)GG(b, c, d, a, M12, 8D2A4C8A, 20)Se

gund

a vu

elta

Page 728: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 727

Operaciones en 3ª y 4ª vueltas en MD5HH (a, b, c, d, Mj, tj, s)

HH(a, b, c, d, M5, FFFA3942, 4)HH(d, a, b, c, M8, 8771F681, 11)HH(c, d, a, b, M11, 6D9D6122, 16)HH(b, c, d, a, M14, FDE5380C, 23)HH(a, b, c, d, M1, A4BEEA44, 4)HH(d, a, b, c, M4, 4BDECFA9, 11)HH(c, d, a, b, M7, F6BB4B60, 16)HH(b, c, d, a, M10, BEBFBC70, 23)HH(a, b, c, d, M13, 289B7EC6, 4)HH(d, a, b, c, M0, EAA127FA, 11)HH(c, d, a, b, M3, D4EF3085, 16)HH(b, c, d, a, M6, 04881D05, 23)HH(a, b, c, d, M9, D9D4D039, 4)HH(d, a, b, c, M12, E6DB99E5, 11)HH(c, d, a, b, M15, 1FA27CF8, 16)HH(b, c, d, a, M2, C4AC5665, 23)Te

rcer

a vu

elta

II (a, b, c, d, Mj, tj, s)

II(a, b, c, d, M0, F4292244, 6)II(d, a, b, c, M7, 411AFF97, 10)II(c, d, a, b, M14, AB9423A7, 15)II(b, c, d, a, M5, FC93A039, 21)II(a, b, c, d, M12, 655B59C3, 6)II(d, a, b, c, M3, 8F0CCC92, 10)II(c, d, a, b, M10, FFEFF47D, 15)II(b, c, d, a, M1, 85845DD1, 21)II(a, b, c, d, M8, 6FA87E4F, 6)II(d, a, b, c, M15, FE2CE6E0, 10)II(c, d, a, b, M6, A3014314, 15)II(b, c, d, a, M13, 4E0811A1, 21)II(a, b, c, d, M4, F7537E82, 6)II(d, a, b, c, M11, BD3AF235, 10)II(c, d, a, b, M2, 2AD7D2BB, 15)II(b, c, d, a, M9, EB86D391, 21)Cu

arta

vue

lta

Page 729: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 728

Función resumen SHA-1

Algoritmo:Es muy similar a MD5. También trata bloques de 512 bits de mensaje con un total de 80 vueltas, pero en este caso el vector inicial tiene una palabra más de 32 bits (E) por lo que el resumen será de 160 bits.

Un resumen de 128 bits (MD5) tiene una complejidad algorítmica de tan sólo 264, un valor en la actualidad muy comprometido...

En cambio la función SHA-1, Secure Hash Algorithm, entregará un resumen de 160 bits; con una complejidad algorítmica de 280.

http://www.faqs.org/rfcs/rfc3174.html

Page 730: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 729

Después de esta última operación, se produce el desplazamiento del registro hacia la derecha

Función no lineal

+

+

+

<<< 30

Wt

Kt

Vector inicial ABCDE

Registro de 160 bits

32 bits

32 bits

A16 = 67452301B16 = EFCDAB89C16 = 98BADCFED16 = 10325476E16 = C3D2E1F0

A16 = 67452301B16 = EFCDAB89C16 = 98BADCFED16 = 10325476E16 = C3D2E1F0

a b c d ec db

+

<<< 5

Bloques del texto a partir del bloque de 16 palabras

Una constante en cada una de las cuatro vueltas

Suma mod 232+

Esquema del resumen SHA-1

Véase la próxima diapositiva...

Page 731: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 730

Vueltas funciones F, G, H, I en SHA-1

a b c d eDesplazamiento del registro

Se repite el proceso con la función F para las restantes 15 palabras de 32 bits del bloque actual hasta llegar a 20. En vueltas 2, 3 y 4 se repite el proceso con funciones G, H e I.

F (b, c, d) → vueltas t = 0 a 19(b AND c) OR ((NOT b) AND d)G (b, c, d) → vueltas t = 20 a 39b XOR c XOR dH (b, c, d) → vueltas t = 40 a 59(b AND c) OR (b AND d) OR (c AND d)I (b, c, d) → vueltas t = 60 a 79b XOR c XOR d

F (b, c, d) → vueltas t = 0 a 19(b AND c) OR ((NOT b) AND d)G (b, c, d) → vueltas t = 20 a 39b XOR c XOR dH (b, c, d) → vueltas t = 40 a 59(b AND c) OR (b AND d) OR (c AND d)I (b, c, d) → vueltas t = 60 a 79b XOR c XOR d

e b c da

Tenemos 4∗20 = 80 pasos por cada bloque de 512 bits. Pero ... ¿cómo es posible repetir 80 veces un bloque que sólo

cuenta con 16 bloques de texto de 32 bits cada uno?

Page 732: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 731

Las 80 vueltas en SHA-1Vector de 160 bits

a b c d e

Cada bloque de 16 palabras del mensaje (M0 ... M15) se expandirá en 80 palabras (W0 ... W79) según el algoritmo:Wt = Mt (para t = 0, ..., 15)Wt = (Wt-3 ⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16) <<<1 (para t = 16, ..., 79)

y además: Kt = 5A827999 para t = 0, ..., 19Kt = 6ED9EBA1 para t = 20, ..., 39Kt = 8F1BBCDC para t = 40, ..., 59Kt = CA62C1D6 para t = 60, ..., 79

Page 733: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 732

Algoritmo y desplazamiento en SHA-1

Vector de 160 bits

a b c d e

El algoritmo para cada bloque de 512 bits será:

Para t = 0 hasta 79 hacer:TEMP = (a <<<5) + ft(b,c,d) + e + Wt + Kta = ee = dd = cc = b <<<30b = aa = TEMP

Page 734: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 733

Comparativa entre MD5 y SHA-1

• SHA-1 genera una salida de 160 bits de longitud mientras que MD5 genera sólo 128 bits.– La dificultad de generar un mensaje que tenga un resumen

dado es del orden de 2128 operaciones para MD5 y 2160 para SHA-1.

– La dificultad de generar dos mensajes aleatorios distintos y que tengan el mismo resumen (ataques basados en paradoja del cumpleaños) es del orden de 264 operaciones para MD5 y 280 para SHA-1.

• Esta diferencia de 16 bits a favor de SHA-1 lo convierte en más seguro y resistente a ataques por fuerza bruta que el algoritmo MD5. Aunque es más lento que MD5, SHA-1 es hoy el estándar como función hash.

Page 735: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 734

• SHA-1 realiza un mayor número de pasos que MD5: 80 frente a los 64 que realiza MD5.

• SHA-1 debe procesar 160 bits de buffer en comparación con los 128 bits de MD5.

• Por estos motivos la ejecución del algoritmo SHA-1 es más lenta que la de MD5 usando un mismo hardware. Por ejemplo, un programa realizado en C entregaba en un Pentium a 266 MHz (no importa que esta velocidad sea tan baja) una tasa del orden de 20 Mbits/seg para SHA-1 y para MD5 esta tasa llegaba a los 60 Mbits/seg.

• Ambos algoritmos procesan bloques de 512 bits y emplean 4 funciones primitivas para generar el resumen del mensaje, pero...

Pasos y tasas de cifra en MD5 y SHA-1

Page 736: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 735

Más diferencias entre MD5 y SHA-1

• La longitud máxima del mensaje para SHA-1 debe ser menor de 264 bits, mientras que MD5 no tiene limitaciones de longitud.

• MD5 emplea 64 constantes (una por cada paso), mientras que SHA-1 sólo emplea 4 (una para cada 20 pasos).

• MD5 se basa en la arquitectura little-endian, mientras que SHA-1 se basa en la arquitectura big-endian. Por ello el vector ABCD inicial en MD5 y SHA-1 son iguales:– A = 01234567 (MD5) ⇒ 67452301 (SHA-1)– B = 89ABCDEF (MD5) ⇒ EFCDAB89 (SHA-1)– C = FEDCBA98 (MD5) ⇒ 98BADCFE (SHA-1)– D = 76543210 (MD5) ⇒ 10325476 (SHA-1)

Page 737: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 736

Arquitecturas little-endian y big-endian

Arquitectura little-endian:• Esta es la arquitectura empleada en procesadores Intel de la

familia 80xxx y Pentium.• Para almacenar una palabra en memoria, el byte menos

significativo de los que forman dicha palabra se guarda en la posición más baja de la memoria.

Arquitectura big-endian:• Empleada por otras arquitecturas como SUN.• Para almacenar una palabra en memoria, el byte más

significativo de los que forman dicha palabra se guarda en la posición más baja de memoria.

http://www.algoritmia.net/articles.php?id=57

Page 738: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 737

Ejemplo little-endian versus big-endian

Supongamos que queremos almacenar en memoria la siguiente palabra de 32 bits (4 bytes) representada en hexadecimal:

76543210 ⇒ 10325476

Si consideramos que las posiciones de memoria más bajas se encuentran a la izquierda y las más altas a la derecha:

67452301En formato little-endian se representa:

01234567En formato big-endian se representa:

Page 739: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 738

Últimos ataques a las funciones hash

Ya a finales del año 2004 científicos chinos de la Shandong Universitypresentan trabajos en los que se analizan las debilidades reales de las funciones hash como MD5 y SHA-1 ante colisiones.Aunque no está claro que este tipo de ataques pudiese derivar enacciones de fraude, como sería suplantar un hash por otro igual y que en recepción se aceptase como válido si bien este último proviene de un mensaje distinto, es un claro motivo de preocupación actual.El problema de estas vulnerabilidades estriba en que muchos servidores Web presentan un certificado digital X.509 firmado en el mejor de los casos a partir de una función hash SHA-1 y, lo que es peor aún, todavía hay algunos que usan un hash MD5.... este último mucho menos seguro que el primero.

http://www.criptored.upm.es/guiateoria/gt_m238a.htm

http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html

Page 740: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 739

Funciones hash para la autenticación

Las funciones hash vistas (MD5, SHA-1, etc.) pueden usarse además para autenticar a dos usuarios.Como carecen de una clave privada no pueden usarse de forma directa para estos propósitos. No obstante, existen algoritmos que permiten añadirles esta función.Entre ellos está HMAC, una función que usando los hash vistos y una clave secreta, autentica a dos usuarios mediante sistemas de clave secreta. Las funciones MAC, Message Authentication Code, y HMAC se tratarán en el próximo capítulo dedicado a la autenticación y firma digital.HMAC se usa en plataformas IP seguras como por ejemplo en Secure Socket Layer, SSL.

Fin del capítulo

Page 741: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 740

Cuestiones y ejercicios

1. ¿Qué propiedades debe tener una función hash para que su uso en criptografía sea de interés? ¿Vale cualquier función reductora?

2. ¿Por qué prospera un ataque basado en la paradoja del cumpleañoscon un tiempo significativamente menor que un ataque elemental?

3. Se va a aplicar la función MD5 a un mensaje de longitud 250 bytes. ¿Cómo se rellena y cómo queda el último bloque?

4. ¿Por qué razón decimos que la función SHA-1 es actualmente un estándar más seguro que la función MD5? ¿Es seguro hoy SHA-1?

5. ¿Cómo puede la función SHA-1 hacer 80 vueltas con bloques de 32 bits partiendo de un bloque de texto o mensaje de sólo 512 bits?

6. ¿Qué función hash es más rápida, MD5 o SHA-1? ¿Por qué?7. Si en un mensaje cambiamos un bit, ¿en cuánto debería cambiar su

hash aproximadamente con respecto a su resumen anterior?

Page 742: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 741

Prácticas del tema 15 (1/3)Software CriptoRes: http://www.criptored.upm.es/software/sw_m001h.htm

1. Usando el botón de generación de resumen, encuentre el hash MD5 del mensaje M = Hola. Para el mismo mensaje, repita el resumen para SHA-1.

2. Busque en su computador el archivo SegInfCrip_v40.zip, encuentre el hash MD5 y el hash SHA-1. Repita un par de veces la operación de resumen y compare las velocidad de cálculo de cada función.

3. Obtenga la función hash MD5 de M = Prueba 122 del hash. Abra otra ventana y encuentre ahora el hash de M = Prueba 123 del hash. Observe que los mensajes difieren sólo en un bit (2 = 0011 0010; 3 = 0011 0011).

4. Abra la calculadora de Windows dos veces y copie el hexadecimal de cada hash en cada una, cambie luego a binario. Haga un XOR entre los dos valores y compruebe que con cambiar sólo un bit del mensaje, el hash cambia más de la mitad de bits. Recuerde que estas calculadoras trabajan con 64 bits. Asegúrese que ambos valores tengan el mismo número de bits.

Page 743: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 742

Prácticas del tema 15 (2/3)5. Para el mensaje M = 123, encuentre el hash MD5 a través del botón de

seguimiento. Abra la pestaña del seguimiento del algoritmo y observe que se ha operado con un solo bloque.

6. Active la opción A Nivel de Pasos y vuelva a calcular el hash. Observe los valores 313233 (hexadecimal de 123) y luego el valor 80 que significa un relleno (1 seguido de ceros). Al final verá un bloque de 64 bits (últimas dos palabras) cuyo valor es 18. Con la calculadora de Windows compruebe que ese valor en decimal corresponde a 24, los 3 bytes del mensaje.

7. Observe ahora el relleno y el número de bits para el hash MD5 del mensaje M = En este caso tenemos 232 bits. Compruebe este valor.

8. Si el mensaje tiene exactamente 512 bits, siempre se incluye un bloque con relleno. Compruébelo con el mensaje de 64 bytes M = Y en este caso habrá siempre un bloque extra como ya se ha dicho. Recuerde: h = 68 y o = 6F. Observe que a nivel de pasos no se ve relleno (se muestra sólo el primer bloque) y que a nivel de bloques muestra el procesamiento de dos bloques.

Page 744: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 15: Funciones Hash en Criptografía Página 743

Prácticas del tema 15 (3/3)9. Para el mensaje M = 123, encuentre ahora el hash SHA-1 a través del

botón de seguimiento. Abra la pestaña del seguimiento del algoritmo y observe que se ha operado con un solo bloque. Observe el vector ABCDE.

10. Active la opción A Nivel de Pasos y vuelva a calcular el hash. Compare la representación del valor 123 en hexadecimal (313233) con el resultado de MD5, notación little-endian versus big-endian.

11. Observe que en SHA-1 no se reservan los últimos 64 bits para indicar el tamaño del archivo.

12. SHA-1 no acepta mensajes de tamaño mayores que 264 bits. Aunque pudiera parecer una limitación, ¿a cuántos bytes correspondería este valor?

13. Compruebe gráficamente la paradoja del cumpleaños pinchando en el icono con figura de tarta. Primero indique 5 iteraciones y acepte las opciones por defecto de un seguimiento preciso de cada cumpleaños. A continuación introduzca otros números, juegue un poco con las opciones del programa y observe que el valor medio de intentos es cercano a 23.

Page 745: Seguridad Informatica

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 63 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Curso de Seguridad Informática y Criptografía © JRA

v 4.1

Capítulo 16Autenticación y Firma Digital

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Page 746: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 745

¿Interesa confidencialidad o integridad?

Si bien en ciertos escenarios es muy importante mantener el secreto de la información, siempre que ésta lo requiera, en muchos casos tiene quizás más trascendencia el poder certificar la autenticidad entre cliente y servidor como ocurre en Internet.

• Confidencialidad• Para lograrla se cifra el mensaje M, número N o

clave K obteniendo un criptograma.• Integridad

• Para lograrla se firma un hash del mensaje h(M), añadiendo una marca al mensaje o criptograma.

Page 747: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 746

Algunos problemas de integridad

a) Autenticidad del emisor

¿Cómo comprueba Benito (B) que el mensaje recibido del emisor que dice ser Adela (A) es efectivamente de esa persona?

b) Integridad del mensaje

¿Cómo comprueba Benito (B) que el mensaje recibido del emisor Adela (A) es el auténtico y no un mensaje falso?

c) Actualidad del mensaje

¿Cómo comprueba Benito (B) que el mensaje recibido del emisor Adela (A) es actual, no un mensaje de fecha anterior reenviado?

Page 748: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 747

Más problemas de integridad

d) No repudio del emisor¿Cómo comprueba Benito (B) que el mensaje enviado por el emisor Adela (A) -y que niega haberlo enviado- efectivamente ha llegado?

e) No repudio del receptor¿Cómo comprueba Benito (B) que el mensaje enviado al receptor Adela (A) -y que niega haberlo recibido- efectivamente se envió?

d) Usurpación de identidad del emisor/receptor¿Cómo comprueba Benito (B) que Adela (A), Carmen (C) u otros usuarios están enviando mensajes firmados como Benito (B)?

Page 749: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 748

Primer escenario de integridad

Escenario de desconfianza

1ª Solución. Uso de una tercera parte de confianza activa. Un juez tendrá una clave KA con la que se comunica con A y una clave KB con la que se comunica con B.

Si A envía un mensaje M a B:

A cifra M con la clave KA ⇒EKA(M) y lo envía al juez. Este comprueba la integridad de A, lo descifra y envía a B, cifrado con KB, el mensaje M, la identidad de A y la firma EKA(M): EKB{M, A, EKA(M)}. Ambos confían en el juez y ante cualquier duda éste puede comprobar la identidad de Aante B descifrando EKA(M).Se usará criptografía simétrica

Page 750: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 749

Segundo escenario de integridad

Escenario de desconfianza

2ª Solución. Uso de una tercera parte de confianza no siempre activa. Esta parte sólo actúa cuando se produce un conflicto entre los interlocutores, quienes se autentican a través de ella que les certifica.

En este caso la figura del juez se conoce como una

Autoridad de Certificación

Habrá una aceptación del sistema de autenticación, tanto por convencimiento propio de

los usuarios como por su confianza en los algoritmos.Se usará criptografía asimétrica

Page 751: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 750

Funciones y esquemas de autenticación

• Autenticación mediante el cifrado de mensajes con criptografía simétrica− La cifra de datos podría servir como autenticación.

• Autenticación con MAC Message Authentication Code o checksum− Una función pública y una clave secreta producen un valor

de longitud fija que es válida como autenticador.• Autenticación mediante funciones hash

− Una función pública reduce el mensaje a una longitud de valor hash que sirve como autenticador de integridad.

• Autenticación mediante firma digital del mensaje con criptografía asimétrica− Una función pública y un par de claves, pública y privada

inversas en un cuerpo, permiten la autenticación completa.

Page 752: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 751

Autenticación con sistemas simétricos

Si la clave de un sistema simétrico es segura, es decir no está en entredicho, podemos afirmar que, además de la confidencialidad que nos entrega dicha cifra, se comprueban también simultáneamente la integridad del mensaje y autenticidad del emisor, en tanto que sólo el usuario emisor (en quien se confía por el modelo, tipo de cifra y en su clave pública) puede generar ese mensaje.

Con los sistemas de cifra simétricos no podremos realizar una autenticación fácil y completa: emisor y mensaje. Veremos un procedimiento algo complejo de autenticación con cifra simétrica como es el caso de Kerberos y un esquema de firma digital.

Page 753: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 752

Los problemas de la autenticación simétrica

El intercambio de claves de forma segura ya hemos visto que se logra eficientemente sólo a través de sistemas asimétricos. Las herramientas más usuales para autenticación serán los códigos de autenticación de mensajes MACs y el sistema Kerberos con cifras simétricas. Kerberos también permite el intercambio seguro de una clave de sesión aunque es más complejo y pesado que el algoritmo de Diffie y Hellman.

No obstante, subyacen los problemas característicos de un criptosistema: ¿cómo asegurar que la clave simétrica entre emisor y receptor es segura? o lo que es lo mismo,

¿cómo intercambiar claves de forma segura?

Page 754: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 753

Autenticación con MAC o checksum

• Los dos extremos de la comunicación A y B comparten una única clave secreta que no está en entredicho.

• El MAC o checksum será una función que se aplica al mensaje M junto a una clave secreta K de la forma CK(M).

• A envía el mensaje en claro y el Message Authentication Code (MAC) o Checksum CK(M) a B.

• Integridad: el receptor B puede estar seguro de que nadie ha modificado el mensaje durante la transmisión pues el valor CK(M) en destino coincide con el enviado por A.

• Autenticación: como solamente el emisor A y el receptor Bcomparten la clave secreta K, se asegura la autenticación de ambos usuarios. Por lo tanto, la condición a cumplir es que la clave K debe ser única y segura.

Page 755: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 754

Se inserta un código al final del mensaje M transmitido en claro, consistente en la cifra con la clave secreta de los últimos bytes del texto, por ejemplo 64 bits de DES o bien usando Triple DES.

En destino, con el mismo algoritmo y la clave secreta, se realiza la cifra y se comparan estos últimos bloques.

Como la cifra es CBC, encadenamiento de bloques cifrados, esos bytes cifrados dependen de todo el mensaje por lo que cualquier modificación será detectada al no coincidir los resultados del cifrado de M en emisión y recepción.

Message Authentication Code con DES

http://www.faqs.org/rfcs/rfc3537.html

Page 756: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 755

M1 M2 Mn... E (K,M)

M1 M2 Mn... Am

K

E (K,M) = Am ∈ MR MR: espacio de marcas de autenticación

Cifrado del último bloque en modo CBCMensaje M

¿Cuáles son las debilidades de este modelo?

• La Marca Am son 16, 32 ó 64 bits. • Es un tamaño muy pequeño y podría

dar lugar a colisiones: mensajes distintos con iguales MACs.

Esquema de autenticación MAC con DES

emisorreceptor

Page 757: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 756

• Las funciones hash vistas (MD5, SHA-1, etc.) no han sido diseñadas para la autenticación al carecer de clave secreta.

• No obstante, son interesantes puesto que su velocidad es mayor que muchos cifradores de bloque, su código fuente es abierto y sus propiedades y funcionamiento son muy conocidos.

• La RFC 2104 propone el uso de una autenticación en entornos seguros como SSL mediante una operación MAC en la que intervenga una función hash: su nombre es HMAC.

• HMAC usa entonces una función hash (MD5, SHA-1, etc.) como una caja negra, una clave K en lo posible mayor que el tamaño del hash en bits, una función xor y operaciones de relleno de bits, tal como se muestra en el siguiente esquema.

Autenticación con funciones hash HMAC

Page 758: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 757

Esquema de HMAC

ipadK+

b bits

hashn bitsIV Relleno hasta b bits

S0 n bitsIV

hash HMACK(M)

S1 Y0 Y1 YL-1• • •

opadK+

b bits

Parámetros del esquemaen la siguiente diapositiva...

b bitsYi bloques del mensaje

H(Si||M)n bits

n bits

http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf

Page 759: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 758

M = mensaje de entrada incluyendo el relleno.H = alguna función hash como MD5 (128 bits) o SHA-1 (160 bits).Yi = bloque iésimo de M.L = número de bloques en M.b = número de bits en cada bloque (512).n = longitud del resumen del hash ocupado en el sistema (128 / 160 bits).K = clave secreta (160 bits) aunque se recomienda sea mayor que n. Si la clave K es mayor que n, esta clave se hace pasar antes por la función hash para reducirla a una clave de n bits.K+ = clave K con ceros añadidos a la izquierda para alcanzar b bits.ipad = 00110110 octeto repetido b/8 (64) veces.opad = 01011010 octeto repetido b/8 (64) veces.

Salida HMAC: HMACK = h{(K+ ⊕ opad) || h[(K+ ⊕ ipad) || M ]}

Parámetros, valores típicos y salida HMAC

Page 760: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 759

• Añadir ceros a la izquierda de K hasta obtener K+, una cadena de b bits.• Sumar or exclusivo K+ con la cadena ipad para obtener S1 de b bits.• Añadir a S1 el mensaje M como bloques Yi de b bits cada uno.• Aplicar la función hash elegida a la cadena de bits antes formada, con el

vector inicial IV de n bits para generar un hash de n bits.• Sumar or exclusivo K+ con la cadena opad para obtener S0 de b bits.• Añadir a S0 el hash anterior, rellenando este último hasta b bits.• Aplicar la función hash elegida a los dos bloques de b bits generados en

el paso anterior, con vector IV de n bits para generar un hash de n bits.• El resultado de este último hash es el HMAC del mensaje M con la

clave K, es decir HMACK(M).

Operaciones y seguridad de HMAC

Aunque la seguridad de HMAC está directamente relacionada con el hash utilizado, el modelo presentado no es seguro. Hay otras configuraciones más desarrolladas que mejoran esta característica.

Page 761: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 760

• Utilización de un KDC (Key Distribution Centre) o Distribuidor de Claves de Confianza, que comparte una clave maestra con los clientes.

• Cada parte, usuario o entidad de la red comparte una clave secreta y única o clave maestra con el KDC.

• El KDC se ocupa de distribuir una clave de sesión que va a ser utilizada en la conexión entre dos partes.

• La clave de sesión se protege con la clave maestra de los participantes de una comunicación.

• Entre los esquemas propuestos están el de Needham-Schroeder y el de Denning-Sacco. Uno de los más conocidos y populares será Kerberos.

Autenticación con cifra simétrica y un KDC

http://www.isi.edu/gost/publications/kerberos-neuman-tso.html

http://www.lsv.ens-cachan.fr/spore/nssk.html

Page 762: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 761

Propuesta de Needham y Schroeder (1978)

¿Qué sucede si no se realizan los pasos 4 y 5?

Un intruso C podría capturar el mensaje en el paso 3 y repetirlo, interfiriendo así las operaciones de B.

1. A → KDC: IDA||IDB||N1

2. KDC → A: EKA[KS||IDB||N1||EKB[KS||IDA]]3. A → B: EKB[KS||IDA]4. B → A: EKS[N2]5. A → B: EKS[f (N2)]

IDA = Nombre de A o identificador de AIDB = Nombre de B o identificador de BNX = Valor nonceKS = Clave de sesiónEKX = Cifrado con clave secreta de XKX = Clave secreta de X (A o B)

f (N2) es una función conocida por A y B.

Page 763: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 762

• Algo más improbable es que un intruso C tenga una clave de sesión antigua y repita el mensaje del paso 3 enviado a B, quien no tiene porqué recordar todas las claves de sesión usadas previamente con A.

• Si C captura el mensaje del paso 4, podrá suplantar la respuesta de A del paso 5, enviando a B mensajes que parecen venir de A con clave de sesión autenticada.

• Denning propone la inclusión de un valor timestamp en los pasos 2 y 3. La utilización de timestamps requiere la sincronización de relojes, pero la utilización de valores nonce es también vulnerable. Se propone como solución óptima dar una duración a la clave de sesión (tickets).

Más debilidades de la propuesta N-S

Page 764: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 763

Solución propuesta por Denning y tickets

1. A → KDC: IDA||IDB

2. KDC → A: EKA[KS||IDB||T||EKB[KS||IDA||T]]3. A → B: EKB[KS||IDA||T]4. B → A: EKS[N1]5. A → B: EKS[f (N1)]

T = Timestamp

| Clock – t | < ∆t1 + ∆t2

1. A → B: IDA||NA

2. B → KDC: IDB||NB||EKB[IDA||NA||TB]3. KDC → A: EKA[IDB||NA||KS||TB]||EKB[IDA||KS||TB]||NB

4. A → B: EKB[IDA||KS||TB]||EKS[NB]Tickets

Denning

Tickets

Solución al problema del timestamp

Page 765: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 764

• El correo electrónico es un ejemplo de aplicación que requiere este tipo de autenticación:– No es necesario que el emisor y el receptor estén conectados

al mismo tiempo.– El receptor necesita confirmar de alguna forma que el emisor

del mensaje es quien dice ser.

Autenticación en un sentido

Se garantiza así que sólo el receptor puede leer el mensaje y autentica además al emisor. Es vulnerable a repeticiones.

1. A → KDC: IDA||IDB||N1

2. KDC → A: EKA[KS||IDB||N1||EKB[KS||IDA]]3. A → B: EKB[KS||IDA]||EKS[M]

Page 766: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 765

♣ Perro de tres cabezas y cola de serpiente según mitología griega, guardián de la entrada del Templo de Hades.

♣ Tres componentes guardarán esa puerta: Autenticación, Contabilidad y Auditoría. Las dos últimas cabezas del proyecto nunca han sido implementadas.

Autenticación con Kerberos

Kerberos fue un proyecto desarrollado en 1988 por elMassachusetts Institute of

Technology MIT, siendo su objetivo la implementación de un servicio de autenticación.

http://web.mit.edu/kerberos/www/

Page 767: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 766

• Está basado en el protocolo de distribución de claves de Needham & Schroeder.

• Usa un intercambio de claves con una tercera parte de confianza.

• Fases de autenticación:– Obtención de credenciales

• Tickets• Autenticadores

– Petición de autenticación frente un servicio.– Presentación de las credenciales al servidor final.

Características y fases de Kerberos

Page 768: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 767

• Usuario, cliente y servidor: persona o máquina que necesita autenticarse en la red.

• Principal: entidad o cliente que usa Kerberos y que ha sido previamente autenticado por un servidor de autenticación.

• Servicio y servidor: servicio es una entidad abstracta (por ejemplo correo) y servidor el proceso que lo ejecuta.

• Clave y password: función aplicada a la clave de usuario.• Credenciales: lo que se utiliza para autenticarse.• Maestros y esclavos: la máquina que hospeda la base de

datos es el master y esclavos son las máquinas que poseen copias de ésta.

• Dominio: nombre de entidad administrativa que mantiene los datos de autenticación.

Elementos del diálogo de autenticación

Page 769: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 768

• Existen dos tipos de credenciales utilizadas en el modelo de Kerberos: tickets y autenticadores.

• Es necesario un ticket para pasar de una forma segura la identidad del cliente entre el servidor de autenticación y el servidor final.

El ticket en la credencial de Kerberos

[s, c, addr, timestamp, life, KS,C]KS

s = nombre del servidorc = nombre del clienteaddr = dirección Internet del clientetimestamp = fecha de iniciación del ticketlife = duraciónKS = clave de sesión aleatoria

Page 770: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 769

El autenticador en la credencial de Kerberos

• El autenticador contiene información adicional que, comparada con el ticket, prueba que el cliente que presenta el ticket es el mismo a quien se le entregó,

Los objetivos de las credenciales son minimizar el número de veces que un usuario tiene que introducir la password así como eliminar el problema de enviar la password en texto plano por la red.

[c, addr, timestamp]KS,C

c = nombre del clienteaddr = dirección Internet de la estación de trabajotimestamp = fecha de iniciación del ticketKS,C = clave de sesión que es parte del ticket

Page 771: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 770

Ejemplo de autenticación con Kerberos (1)

Se autenticará el usuario A ante el usuario B teniendo como tercera parte de confianza al centro KDC. Usarán el algoritmo DES.

A B

KDCkA kB

Paso 1. A pide una credencial a KDC:A → KDC ⇒ ID(A), ID(B), NAEnvía el número aleatorio NA para que nadie pueda suplantar su identidad.

Paso 2. KDC genera una clave de sesión KS con período de validez L y una credencial c para el usuario B:

m = EkA[KS, L, NA, ID(B)]; c = EkB[KS, L, ID(A)]KDC → A ⇒ (m, c)

Page 772: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 771

Ejemplo de autenticación con Kerberos (2)

Paso 3. A descifra con su clave kA el valor m:DkA [EkA[KS, L, NA, ID(B)] ] = KS, L, NA, ID(B)

Y luego con la clave de sesión entregada por KDC generará un autenticador a para el usuario B junto con un sello temporal TA.

a = EKS[ID(A), TA]A → B ⇒ (c, a)

Paso 4. B descifra con su clave kB c:DkB[EkB[KS, L, ID(A)]] = KS, L, ID(A)

Ahora que tiene KS descifra el valor a:DKS[EKS[ID(A), TA]] = ID(A), TA

Comprueba que coinciden los identificadores ID(A) del usuario Ay que TA está dentro del rango de validez L dado por KDC.

Page 773: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 772

Ejemplo de autenticación con Kerberos (3)

Paso 5. B calcula una función acordada con A por ejemplo (TA + 1) y con la clave de sesión KS se lo envía cifrado:B → A ⇒ h = EKS[TA + 1]

Paso 6. A descifra h con la clave de sesión KS:DKS[EKS[TA + 1]] = TA + 1

Comprueba que coincide con lo acordado lo que le demuestra que B ha recibido correctamente la clave de sesión KS.

La importancia del valor de TA es que permitirá más autenticaciones dentro del período de validez L sin que sea necesario la intervención de la tercera parte de confianza KDC.

Page 774: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 773

Resumen del ejemplo de autenticación

• Los valores de c y m aseguran la confidencialidad en la transmisión de la clave de sesión KS.

• Los valores de a y h aseguran la confirmación de la recepción correcta de la clave de sesión KS por B.

• En este protocolo sólo se autentica A ante B.• Existen extensiones del algoritmo que permiten una

autenticación doble entre A y B.• Otra opción es que los usuarios A y B compartan una

clave KS sin que su valor sea conocido por KDC.

http://www.mug.org.ar/Infraestructura/ArticInfraestructura/300.aspx

Page 775: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 774

El hash en la autenticación asimétrica

• h(M) es el resultado de un algoritmo que con una entrada M de cualquier tamaño, produce salida de tamaño fijo.

• El emisor A envía el mensaje M y la función hash h(M) a B, quien aplica la misma función al mensaje M’ recibido. Si los mensajes son iguales entonces se asegura que los hash también son iguales. No obstante, el hecho de que los hash coincidan no significa que los mensajes M y M’ sean iguales, como ya hemos visto en un capítulo anterior.

• Integridad: el receptor B puede confiar en que nadie ha modificado el mensaje durante la transmisión pues el valor h(M) en destino coincide con el enviado por A.

• Autenticación: es imposible la autenticación de usuario, salvo que se use un modelo con clave tipo HMAC ya visto.

Page 776: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 775

Son condiciones mucho más fuertesque las de una firma manuscrita...

Son condiciones mucho más fuertesque las de una firma manuscrita...

Características de una firma digital

Requisitos de la firma digital:

a) Debe ser fácil de generar.b) Será irrevocable, no rechazable por su propietario.c) Será única, sólo posible de generar por su propietario.d) Será fácil de autenticar o reconocer por su propietario y los

usuarios receptores.e) Debe depender del mensaje y del autor. Esta última

propiedad es muy importante

pues protege ante la falsificación de los mensajes

Page 777: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 776

Firmas digitales simétricas

Su usará una única clave secreta. Luego, persiste el problema de comunicar la clave entre los comunicantes.Normalmente usarán la función XOR para realizar la transformación.Podremos firmar mediante cifra en flujo y en bloque.Son muy rápidas por el tipo de cifra o bien por el uso de bloques más pequeños que en otros tipos de firma.Algoritmos de firma: Rabin, Lamport-Diffie, Desmedt, Matyas-Meyer basada en el DES ...

http://www.deas.harvard.edu/ourfaculty/profile/Michael_Rabin

http://research.microsoft.com/users/lamport/

Page 778: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 777

Firma digital de Desmedt

• Propuesta por Yvo G. Desmedt en 1985.• Se basa en el cifrado de Vernam.• Elementos: parámetro q en bits, un mensaje M de longitud n

bits y una clave H de n∗q bits: • H = {[h1

(1), ..., h1(q)], ..., [hn

(1), ..., hn(q)]}

• ∀i se cumplirá que [hi(1), ..., hi

(q)] ≠ (0, ..., 0) i = n

• Algoritmo: rj = ⊕ mi∗hi(j) = m1∗h1

(j) ⊕ ... ⊕ mn∗hn(j)

i = 1 (con j = 1, ..., q)• Verificación de la firma: con el mensaje recibido se realiza el

mismo proceso del firmado hecho en emisión y se comprueba que se obtiene una firma idéntica.

http://www.cs.fsu.edu/~desmedt/

Page 779: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 778

Ejemplo de Firma digital de Desmedt

• Sea: mensaje M = 11011 de n = 5 bits, el parámetro q de 3 bits y la clave aleatoria H = (111, 100, 110, 001, 111).

• r1 = 1∗1 ⊕ 1∗1 ⊕ 0∗1 ⊕ 1∗0 ⊕ 1∗1 = 1• r2 = 1∗1 ⊕ 1∗0 ⊕ 0∗1 ⊕ 1∗0 ⊕ 1∗1 = 0• r3 = 1∗1 ⊕ 1∗0 ⊕ 0∗0 ⊕ 1∗1 ⊕ 1∗1 = 1

• Firma Desmedt: 101• Como el receptor tiene esa clave H, que realiza la misma

operación en destino y compara ambas firmas.

Como son sistemas sin uso actual, sólo se muestra aquí este sencillo esquema. El lector interesado encontrará una amplia información en el libro de Criptografía Digital de José Pastor y Miguel AngelSarasa que se menciona en el capítulo 21 de este libro electrónico.

Page 780: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 779

Autenticación con sistemas asimétricos

Problema:Los sistemas de cifra asimétricos son muy lentos y el mensaje podría tener miles o millones de bytes ...

Solución:Se genera un resumen del mensaje, representativo del mismo, con una función hash imposible de invertir. La función hash comprimeun mensaje de longitud variable a uno de longitud fija y pequeña.

Al existir una clave pública y otra privada que son inversas, se autentica el mensaje y al emisor.

Permite la firma digital, única para cada mensaje

Page 781: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 780

Clave Pública (nA, eA) Clave Privada (dA)

Rúbrica: rAh(M) = h(M)dA mod nAAlgoritmo:

A envía el mensaje M en claro (o cifrado) al destinatario Bjunto a la rúbrica: {M, rAh(M)}

El destinatario B tiene la clave pública eA,nA de A y descifra rAh(M) ⇒ {(h(M)dA)eA mod nA} obteniendo así h(M). Como recibe el mensaje M’, calcula la función hash h(M’) y compara:

Si h(M’) = h(M) se acepta la firma.

Adela

Benito

Firma digital RSA de A hacia B

http://www.enstimac.fr/Perl/perl5.6.1/site_perl/5.6.1/Crypt/RSA.html

Page 782: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 781

• En los siguientes ejemplos, por limitación del tamaño de los primos elegidos, se firmarán sólo bloques de una cantidad determinada de bits en función del cuerpo de trabajo.

• No obstante, en los sistemas reales esto no es así puesto que las funciones hash ya vistas entregarán -por lo general-resúmenes comprendidos entre 128 y 160 bits y, por otra parte, el cuerpo de trabajo de la cifra asimétrica para la firma digital será como mínimo de 1.024 bits.

• Por lo tanto el resumen que se firma es menor que el cuerpo de cifra o, lo que es lo mismo, el número que se cifra será parte del conjunto de restos de ese grupo.

Valores y tamaños típicos de firmas

Page 783: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 782

AdelaBenito

Hola. Te envío el documento. Saludos, Beni.

Sea h(M) = F3A9 (16 bits)

Claves BenitonB = 65.669

eB = 35, dB = 53.771

Claves AdelanA = 66.331

eA = 25, dA = 18.377

h (M) = F3A916 = 62.37710

rh(M) = h(M)dB mod nB

rh(M) = 62.37753.771 mod 65.669 = 24.622Benito envía el par (M, r) = (M, 24.622)

FirmaNota: los primos

que usa Benito son (97, 677) y

Adela (113, 587)

216 < 65.669 < 217

Forzaremos firmar bloques de 16 bits

Ejemplo de firma digital RSA (B → A)

Page 784: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 783

Claves BenitonB = 65.669

eB = 35, dB = 53.771

Claves AdelanA = 66.331

eA = 25, dA = 18.377

Adela recibe un mensaje M’ junto con una rúbrica r = 24.622:• Calcula reB mod nB = 24.62235 mod 65.669 = 62.377.• Calcula el resumen de M’ es decir h(M’) y lo compara con h(M).• Si los mensajes M y M’ son iguales, entonces h(M) = h(M’) y se

acepta la firma como válida. • Recuerde: El hecho de que h(M) = h(M’) no implica que M = M’.

Teníamos que: h (M) = F3A916 = 62.37710

rh(M) = h(M)dB mod nB rh(M) = 62.37753.771 mod 65.669 = 24.622Benito había enviado a Adela el par (M, r) = (M, 24.622)

AdelaBenito

Comprobación la firma RSA por A

Page 785: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 784

Al trabajar en un grupo multiplicativo, se da el siguiente escenario:

Si se conoce la firma de dos mensajes M1 y M2, se puede firmar un tercer mensaje M3 producto de los dos anteriores sin necesidad de conocer la clave privada del firmante.

Sean las claves del firmante e, d y n = p∗q. Luego:

rM1 = M1d mod n y rM2 = M2

d mod n Si ahora M3 = M1M2:

rM3 = (M1M2)d mod n = M1d M2

d mod n = rM1 rM2 mod n

Posible vulnerabilidad de la firma RSA

Comentario: si la firma se realiza sobre un texto es prácticamente imposible que el producto de dos textos dé un nuevo texto con sentido. No obstante, sabemos que este tipo de firmas asimétricas se realizan sobre un número resultado de un hash por lo que podría darse una situación así, aunque por el tamaño del hash sería bastante poco probable este tipo de colisión.

Page 786: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 785

Sean las claves n = 15.833 = 71∗223, e = 17, d = 7.313.

Sea M1 = 8.643 y M2 = 10.014 (ambos elementos de n)

Firma de M1: rM1 = 8.6437.313 mod 15.833 = 840

Firma de M2: rM2 = 10.0147.313 mod 15.833 = 5.049

Sea M3 = M1M2 = 8.643∗10.014 mod 15.833 = 7.824

Firma de M3: rM3 = 7.8247.313 mod 15.833 = 13.749

... y rM1 rM2 = 840∗5.049 mod 15.833 = 13.749

Ejemplo de firma RSA con colisión

Y. Desmedt, W. de Jonge y D. Chaum presentan en el año 1986 una variante de la firma RSA que evita este problema de la multiplicatividad.

Page 787: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 786

ElGamal: El usuario A generaba un número aleatorio a (clave privada) del cuerpo p. La clave pública es αa mod p, con α generador.

Algoritmo de firma:1º El usuario A genera un número aleatorio h, que será primo

relativo con φ(p): h / mcd {h, φ(p)} = 12º Calcula h-1 = inv {h, φ(p)}3º Calcula r = αh mod p4º Resuelve la siguiente congruencia:

M = a∗r + h∗s mod φ(p) ∴s = (M - a∗r)∗inv[h,φ(p)] mod φ(p)

M = a∗r + h∗s mod φ(p) ∴s = (M - a∗r)∗inv[h,φ(p)] mod φ(p)

Firma: (r, s)Firma: (r, s)Adela

Firma digital ElGamal de A hacia B

http://www.math.clemson.edu/faculty/Gao/crypto_mod/node5.html

Page 788: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 787

Algoritmo comprobación de firma1º El usuario B recibe el par (r, s) y calcula:

rs mod p y (αa)r mod p2º Calcula k = [(αa)r ∗ rs] mod p

Como r era igual a αh mod p entonces:k = [(αar∗αhs] mod p = α(ar + hs) mod p = αβ mod p

3º Como M = (a∗r + h∗s) mod φ(p) y α es una raíz primitiva de p (esto debe cumplirse) entonces:αβ = αγ ssi β = γ mod (p-1)

4º Comprueba que k = αM mod p

Benito

Si k = [(αa)r ∗ rs] mod p es igual a αM mod p ...

Si k = [(αa)r ∗ rs] mod p es igual a αM mod p ...

Se acepta la firmaSe acepta la firma

Conoce: p y (αa) mod p

Comprobación de firma ElGamal por B

Page 789: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 788

AdelaBenito

¡Hola otra vez! Soy Benito de nuevo. Saludos.

Sea h(M) = A69B (16 bits)

Claves BenitopB = 79.903 α = 10αb mod p = 3.631b = 20, h = 31

216 < 79.903 < 217

Forzaremos firmar bloques de 16 bits

Firma1) h-1 = inv[h, φ(p)] = inv (31, 79.902) = 5.1552) r = αh mod p = 1031 mod 79.903 = 11.7553) s = [h(M) - b∗r]∗[inv(h,φ(p)] mod φ(p) h(M) = A69B16 = 42.65110

4) s = [42.651-20∗11.755]∗5.155 mod 79.9025) s = 68.539 (r, s) = (11.755, 68.539)(r, s) = (11.755, 68.539)Luego, la firma será

Ejemplo de firma ElGamal (B → A)

Page 790: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 789

AdelaBenito

Claves BenitopB = 79.903 α = 10αb mod p = 3.631b = 20, h = 31

Comprobación de la firma:1) rs mod p = 11.75568.539 mod 79.903 = 66.4042) (αb)r mod p = 3.63111.755 mod 79.903 = 12.0233) (αb)r ∗ rs mod p = (12.023 ∗ 66.404) mod 79.903 = 64.419 = k4) αh(M) mod p = 1042.651 mod 79.903 = 64.419

Como hay igualdadse acepta la firma

Adela recibe de Benito el par (r, s) = (11.755, 68.539)

h(M) = A69B = 42.651

Comprobación de firma ElGamal por A

Page 791: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 790

Claves BenitopB = 79.903 α = 10αb mod p = 3.631b = 20, h = 31

α = 10 es un generador del cuerpo p = 79.903 puesto que:

p-1 = 79.902 = 2∗32∗23∗193q1 = 2; q2 = 3; q3 = 23; q4 = 193

y se cumple 10(p-1)/qi mod p ≠ 1

1039.951 mod 79.903 = 79.9021026.634 mod 79.903 = 71.324103.474 mod 79.903 = 2.63110414 mod 79.903 = 41.829

Si se elige α = 11, para el exponente 39.951 se obtiene un 1 por lo que no es raíz. Compruebe que en este caso no nos servirá α para la firma digital porque será imposible comprobarla mediante k = αM mod p.

Benito

Importancia de α en la firma de ElGamal

Page 792: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 791

1991: National Institute of Standards and Technology (NIST) propone el DSA, Digital Signature Algorithm, una variante de los algoritmos de ElGamal y Schnoor.

1994: Se establece como estándar el DSA y se conoce como DSS, Digital Signature Standard.

1996: La administración de los Estados Unidos permite la exportación de Clipper 3.11 en donde viene inmerso el DSS, que usa una función hash de tipo SHS, Secure Hash Standard.

El peor inconveniente de la firma propuesta por ElGamal es que duplica el tamaño del mensaje M al enviar un par (r, s) en Zp y φ(p). No obstante, se solucionará con el algoritmo denominado DSS.

Estándares de firma digital

http://www.itl.nist.gov/fipspubs/fip186.htm

Page 793: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 792

Parámetros públicos de la firma:• Un número primo p (512 bits < p < 1024 bits)• Un número primo q (160 bits) divisor de p-1• Un generador α “de orden q” del grupo p

Generador de orden q es aquella raíz α en el cuerpo Zp de forma que q es un entero que verifica:

αq mod p = 1 Así, para todo t: αt = αt (mod q) mod p

¿y eso qué es?

Digital Signature Standard DSS

Elección de parámetros: primero se busca el primo p, luego un primo q que sea divisor de (p-1) y luego un valor g en p, de forma que si α = g(p-1)/q mod q ≠ 1, éste será el generador...

Page 794: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 793

• Elegir un número primo 2159 bits < q ≤ 2160 bits.• Elegir 0 ≤ t ≤ 8 y encontrar un número primo p que esté en

2511+64t ≤ p ≤ 2512+64t y que además q divida a (p-1).• Elegir un generador α de orden q de la siguiente forma:

• Elegir g, un elemento de p, de forma que se cumpla la condición α = g(p-1)/q mod p ≠ 1. Recuerde que esta raíz α no será la misma que la conocida hasta ahora.

• Elegir como clave privada un valor aleatorio x dentro del cuerpo del primo q.

• Calcular la clave pública y = αx mod p.• Hacer público los parámetros q, p, α, y.

La elección de los parámetros en DSS

Page 795: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 794

• Valores públicos de A: primos p, q y el generador α• Clave secreta de la firma: x (1 ≤ x ≤ q) aleatorio• Clave pública de la firma: y = αx mod p• Para encontrar α y firmar un mensaje 1 ≤ M ≤ p, A ya ha

elegido un valor aleatorio 1 ≤ k ≤ qLuego el firmante A calcula:

• r = (αk mod p) mod q• s = [(M + x∗r) ∗ inv (k,q)] mod q

• La firma digital de A sobre M será el par (r, s)

Generación de firma DSS (A → B)

Page 796: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 795

• B recibe el par (r, s)

• Luego calcula:

• w = inv (s, q)

• u = M ∗ w mod q

• v = r ∗ w mod q

• Comprueba que se cumple:

• r = (αu yv mod p) mod q

• Si se cumple, B acepta la firma como válida.

La firma DSS tendrá un tamaño menor que q al reducirse (r, s) a dicho módulo, siendo q << p.

Comprobación de firma DSS por B

Observe que la comprobación de la firma se hace sobre r, un

valor en el que no interviene el valor del mensaje M y que,

además, la firma se hace ahora sobre valores de q y no de p.

Page 797: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 796

AdelaBenito

Hola Adela, soy Benito y firmo con DSS.

Sea h(M) = 30 (un elemento de qB)

Claves BenitopB = 223; qB = 37; α = 17

y = αx mod p = 30x = 25; k = 12

Como se firmarásobre valores de qB,

los mensajes a firmar serán 0 ≤ h(M) ≤ 36.Firma

1) inv (k, q) = inv (12, 37) = 342) r = (αk mod p) mod q = (1712 mod 223) mod 37 = 171 mod 37 = 233) s = [h(M)+x∗r]∗[inv (k,q)] mod q = [30+25∗23]∗34 mod 37 = 354) La firma digital de h(M) = 30 será: (r, s) = (23, 35)5) Benito transmite a Adela el bloque: (M, r, s) = (M, 23, 35)

Ejemplo de firma DSS (B → A)

Compruebe que son correctos p, q. Y que g = 19 genera α = 17.

Page 798: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 797

AdelaBenito

Comprobación de la firma1) w = inv (s, q) = inv (35, 37) = 182) u = h(M)∗w mod q = 30∗18 mod 37 = 223) v = r∗w mod q = 23∗18 mod 37 = 74) ¿(αu yv mod p) mod q = r ?5) [(1722307) mod 223] mod 37 = 23

En caso afirmativo, se acepta la firma

Y el tamaño será menor que qB = 37 es decir << pB = 223 que

era precisamente el punto débil del

sistema de ElGamal.

Claves BenitopB = 223; qB = 37; α = 17

y = αx mod p = 30x = 25; k = 12

Adela recibe el bloque:(M, r, s) = (M, 23, 35)

¿Igu

alda

d?

Comprobación de la firma DSS por A

Page 799: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 798

• Podríamos pensar que al bajar el número de bits de 1.024 en la firma de ElGamal a sólo 160 (el valor de q) en la firma DSS la seguridad de dicha firma está comprometida.

• No obstante, la firma DSS tiene la misma fortaleza que la de ElGamal ya que q es un subgrupo de p. Eso quiere decir que para resolver el problema del logaritmo discreto en q, habrá que hacerlo obligatoriamente en p.

• Para evitar diversos ataques tanto en la firma ElGamal como en DSS, deberá firmarse siempre una función hash.

• DSS requiere el uso del hash h(M) sobre M con SHA-1.• Importante: recuerde que se firma un hash SHA-1 de 160 bits en un

cuerpo q también de 160 bits, aunque p sea de 1.024 bits.

Seguridad de los 160 bits de q

http://lists.gnupg.org/pipermail/gnupg-users/2000-August/006286.html

Page 800: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 799

• No todos los valores h(M) podrán firmarse con DSS.• Para comprobar la firma en recepción se calcula el valor

w = inv (s, q), donde s = [h(M)+b∗r]∗[inv (k,q)] mod q. Luego, debe existir dicho inverso.

• Si s = 0 no existe el inverso. Luego esta condición deberácomprobarse en emisión antes de proceder a la firma.

• No obstante, la probabilidad de que se dé esta situación en el cuerpo q de 160 bits será de uno en 2160.

• Así mismo, en emisión deberá verificarse que r ≠ 0. En ambos casos se elegirá un nuevo valor de h.

Mensajes que no tienen firma DSS

Page 801: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 800

AdelaBenito

Hola Adela, vamos a ver qué pasa ahora.

Sea ahora h(M) = 17 (un elemento de qB)

Claves BenitopB = 223; qB = 37; α = 17

y = αx mod p = 30x = 25; k = 12Firma

1) inv (k, q) = inv (12, 37) = 342) r = (αx mod p) mod q = (1712 mod 223) mod 37 = 171 mod 37 = 233) s = [h(M)+b∗r]∗[inv (k,q)] mod q = [17+25∗23]∗34 mod 37 = 04) La firma digital de h(M) = 17 sería: (r, s) = (23, 0) ...

Ejemplo de mensaje sin firma por s = 0

Como es obvio si h(M) = 17 + K∗qB, es decir 17, 54, 91, 128, 165, 202 ... caemos en un cuerpo de equivalencia en mod qB y se repite esta situación.

Fin del capítulo

Page 802: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 801

SIMÉTRICAS• Claves: una clave secreta para

ambos comunicantes.• Cifrado: en bloque y en flujo.• Tasas de cifra: MB/seg.• Fiabilidad: baja; necesario un

intercambio previo de clave.• Vida de la clave: efímera, one-

time pad, segundos, minutos.• Algoritmos: Rabin, Desmedt,

Matyas-Meyer, Lamport-Diffie.

Firmas simétricas versus asimétricas

ASIMÉTRICAS• Claves: comunicantes con

claves secreta y pública.• Cifrado: sólo bloque.• Tasas de cifra: KB/seg.• Fiabilidad: alta; no necesita

intercambio previo de clave.• Vida de la clave: duradera, se

repite, meses, un año.• Algoritmos: RSA, ElGamal,

DSS, Rabin, curvas elípticas.

Los sistemas de firma digital actuales son con clave pública.

Page 803: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 802

Cuestiones y ejercicios (1 de 2)

1. ¿Por qué cree que un escenario de integridad en la que hay siempre una tercera parte de confianza activa no sería adecuado en Internet?

2. Si una Autoridad de Certificación es la tercera parte de confianza, ¿actúa de forma activa o pasiva en la comunicación? Explíquelo.

3. ¿Qué importancia tiene la redundancia del lenguaje en un sistema de autenticación? ¿Qué sucedería si no hubiese esa redundancia?

4. Hacemos una autenticación de mensaje mediante un MAC en el que el algoritmo es DES. ¿Sería acertado usar modo ECB? ¿Por qué?

5. En un sistema de autenticación mediante Kerberos, ¿cómo sabe el que comienza el protocolo (A) que no hay un impostor que intentasuplantarle? ¿Cómo sabe el que comienza el protocolo (A) que el segundo usuario (B) o elemento del sistema ha recibido bien la clave de sesión entregada por el centro de distribución de claves KDC?

Page 804: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 803

Cuestiones y ejercicios (2 de 2)

6. ¿Cómo podríamos usar una función hash para comprobar que un archivo no se ha modificado o que está libre de virus?

7. Nos afirman que podemos autenticar un mensaje usando para ello sólo una función hash. ¿Es esto verdadero? ¿Por qué?

8. ¿Por qué se dice que una firma digital tiene condiciones más fuertes que una firma manuscrita?

9. ¿Por qué es importante que la firma digital dependa del mensaje?10. Firme digitalmente con RSA el mensaje M = 121 si los datos del

firmante son p = 19; q = 31, d = 149. Compruebe la firma.11. Con p = 331 y clave privada 15, vamos a firmar digitalmente con

ElGamal el mensaje M = 250 . Para ello, elija los valores más pequeños posibles de los parámetros α y h. Compruebe la firma.

12. Repita el ejercicio 10 con DSS y valores propuestos por Ud.

Page 805: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 804

Prácticas del tema 16 (1/3)Software ExpoCrip: http://www.criptored.upm.es/software/sw_m001l.htm

1. FIRMA RSA. Con la clave p = 3, q = 11, e = 3, compruebe que la firma de mensajes numéricos dentro del cuerpo {0, 1, ..., 32} son todos valores distintos y que no puede haber firmas iguales para mensajes distintos.

2. Observe lo que pasa al firmar los mensajes 0, 1, 10, 11, 12, 21, 22, 23, 32.3. ¿Qué sucede con estos mensajes si ahora se elige la clave e = 13?4. Con esta última clave firme el mensaje numérico N = 13. 5. Compruebe que la firma es correcta. ¿Cómo comprueba esto el programa?6. Cambie el mensaje numérico a N = 35, vuelva a firmar y a comprobar la

firma. ¿Por qué sucede esto ahora? ¿Qué pasa ahora si N = 2?7. Con esta última clave firme el mensaje hexadecimal N = 1F. 8. Con esta clave firme el mensaje M = Hola; compruebe la firma . Con la

ayuda del programa, vea cómo se generan los bloques para la firma.

Page 806: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 805

Prácticas del tema 16 (2/3)9. Para la clave p = 37, q = 53; e = 25, firme el mensaje M = Por este trabajo

le pagaremos 1.000,00 Euros. Compruebe la firma.10. Modifique el texto en claro y cambie 1.000,00 por 9.000,00. Vuelva ahora

a comprobar la firma y comente qué ha sucedido y porqué.11. FIRMA ELGAMAL. Con la clave p = 19, α = 10, x = 7, k = 5, compruebe

que las firmas de todos los valores de cuerpo {0, 1, ..., 18} son valores distintos y no puede haber firmas iguales para mensajes distintos.

12. ¿Qué sucede si supone un generador α = 4? ¿Qué hace el programa?13. ¿Se observa el mismo problema de mensajes no firmables que en RSA?

¿Existe algo que le llame la atención? Si no, vea la siguiente pregunta.14. Genere claves de firma para p = 11, p = 13, p = 17, p = 23, p = 29, p = 37;

y compruebe que la firma del mensaje 0 y p-1 siempre es el mismo valor y que precisamente no aparece entre los restos de firma el valor p-1.

15. Con una de esas claves firme M = Esta es otra firma. Compruebe la firma.

Page 807: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 16: Autenticación y Firma Digital Página 806

Prácticas del tema 16 (3/3)16. Para p = 472287102421, α = 33, x = 31023, k = 40981, firme y compruebe

estos mensajes: N10 = 2001, N16 = FD9C5, MASCII = Hola, ¿qué tal?17. FIRMA DSS. Para la clave DSS p = 19, q = 3, g = 13, x = 2, k = 2, firme

todos los valores de cuerpo q {0, 1, 2} y compruebe que los valores de las firmas están siempre en el cuerpo de q. ¿Son todas distintas?

18. ¿Qué tipo de generador usa el programa? ¿Es un generador de p o de q?19. Repita el ejercicio anterior para p = 23, q = 11, g = 17, x = 5, k = 9.20. Para la clave DSS p = 53, q = 13, g = 31, x = 8, k = 6, firme los primeros 7

mensajes numéricos N = {0, 1, ..., 6}. Para cada una de ellos observe el seguimiento de la comprobación y compruebe manualmente al menos una.

21. Con esta clave firme el mensaje M = A. ¿Puede comprobar la firma? Repita para M = AB, M = ABC. Repita para esos valores en hexadecimal.

22. Si p = 124540019, q = 17389, g = 110217528, (α = 10083255), k = 9557, y x = 12496, compruebe que la firma de M = 5246: (r, s) = (34, 13049). Valores A. Menezes: http://www.cacr.math.uwaterloo.ca/hac/about/chap11.pdf.

Page 808: Seguridad Informatica

Capítulo 17Certificados Digitales y Estándar PKCS

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 21 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 809: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 808

¿Qué son los certificados digitales?

• Un certificado digital es un documento que contiene diversos datos, entre ellos el nombre de un usuario y su clave pública, y que es firmado por una Autoridad de Certificación (AC).

• Como emisor y receptor confiarán en esa AC, el usuario que tenga un certificado expedido por ella se autenticará ante el otro, en tanto que su clave pública está firmada por dicha autoridad.

• Una de las certificaciones más usadas y un estándar en la actualidad en infraestructuras de clave pública PKIs (Public-Key Infrastructure) es X.509.

http://www.ietf.org/html.charters/pkix-charter.html

Page 810: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 809

Certificado digital X.509

• X.509 está basado en criptografía asimétrica y firma digital. • En X.509 se define un framework (una capa de abstracción)

para suministrar servicios de autenticación a los usuarios del directorio X.500.

• La autenticación se realiza mediante el uso de certificados.

- Un certificado contiene: el nombre de la AC, el nombre del usuario, la clave pública del usuario y cualquier otra información como puede ser un un indicador de tiempo o timestamp.

- El certificado se cifra con la clave privada de la AC.- Todos los usuarios poseen la clave pública de la AC.

Page 811: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 810

Formato del certificado digital X.509

Función hash que se cifra con la clave privada de la AC

VersiónNº de serieAlgoritmoParámetros

Autoridad de CertificaciónInicio de la validez

Caducidad de la validezNombre del usuario

AlgoritmoParámetros

Clave pública del usuarioFirma de la AC

Identificador del algoritmo

Período de validez

Clave pública que se firma

Page 812: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 811

Campos del certificado digital X.509

• V: Versión del certificado (actualmente V3).• SN: Número de serie.• AI: identificador del algoritmo de firma que sirve para identificar el

algoritmo usado para firmar el paquete X.509.• CA: Autoridad certificadora.• TA: Periodo de validez.• A: Propietario de la clave pública que se está firmando.• P: Clave pública más identificador de algoritmo utilizado y más

parámetros si son necesarios.• Y{I}:Firma digital de Y por I usando la clave privada de la unidad

certificadora.CA<<A>> = CA { V, SN, AI, CA, TA, A, AP }

Y<<X>> es el certificado del usuario X expedido por la autoridad certificadora Y.

Page 813: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 812

Autoridades de Certificación

A Bcertificado de B

Autoridad de Certificación ACcl

ave

públ

ica

AC

clav

e pú

blic

a A

C

AC

Autoridad de Certificación es un ente u organismo que, de acuerdo con unas políticas y algoritmos, certificará -por ejemplo- claves públicas de usuarios o servidores.

certificado de A

El usuario A enviará al usuario Bsu certificado (la clave pública firmada por AC) y éste comprobará con esa autoridad su autenticidad. Lo mismo en sentido contrario.

Page 814: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 813

Elementos de una AC

El sistema de autenticación debe tener:• Una política de certificación.• Un certificado de la CA.• Los certificados de los usuarios (X.509).• Los protocolos de autenticación, gestión y obtención

de certificados:– Se obtienen de bases de datos (directorio X.500).– O bien directamente del usuario en tiempo de

conexión (WWW con SSL).

Page 815: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 814

Algunas características de diseño de la AC

• Deberá definirse una política de certificación– Ambito de actuación y estructura– Relaciones con otras ACs

• Deberá definirse el procedimiento de certificación para la emisión de certificados:– Verificación on-line– Verificación presencial

• Deberá generarse una Lista de Certificados Revocados

Page 816: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 815

Funcionamiento de una AC

• Puesta en marcha de la AC:– Generará su par de claves.– Protegerá la clave privada

con una passphrase.– Generará el certificado de la

propia AC.• Distribución del certificado de la

AC:– A través del directorio

X.500.– Por medio de páginas Web.

• Podrá certificar a servidores y a clientes.

Si el certificado digital X.509 de un servidor no pertenece a una AC reconocida o instalada en su programa cliente, aparecerá una pantalla similar a la que se muestra.

Page 817: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 816

Certificado de email X.509 de Verisign (1)

• Paso 1• Acceda a la web segura indicada abajo y seleccione navegador.• Introduzca su nombre, dirección de correo y password.• Indique que desea un certificado de prueba gratis por 60 días.• Seleccione el nivel de seguridad que desea para el acceso a su clave

privada; es recomendable elegir el valor alto.• Pulse el botón aceptar.

• Paso 2• Observará el mensaje “You should receive an e-mail from the Digital ID

Center within the hour at the e-mail address you entered in the enrollment form. It will contain instructions for installing the Digital ID” y en menos de 10 minutos recibirá un email para seguir los pasos 3 y 4.

• Pasos 3 y 4 en próxima diapositiva.

https://digitalid.verisign.com/client/enroll.htm

Page 818: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 817

Certificado de email X.509 de Verisign (2)• Paso 3

• Use el Personal Identification Number (PIN) que le envían por correo que será parecido a éste 5cd472bd311f89eb25f2511ce5e86b31 y péguelo en la página de VeriSign's secure Digital ID Center que se indica:https://digitalid.verisign.com/enrollment/mspickup.htm

• Pulse el botón de Submit para instalar el certificado en su computador.• Paso 4

• El Digital IDSM ha sido generado con éxito y con los siguientes datos:– Organization = VeriSign, Inc.– Organizational Unit = VeriSign Trust Network– Organizational Unit = www.verisign.com/repository/RPA Incorp. by

Ref.,LIAB.LTD©98– Organizational Unit = Persona Not Validated– Organizational Unit = Digital ID Class 1 – Microsoft– Common Name = Jorge Ramio– Email Address = [email protected]

• sPulsamos el botón Instalar

Page 819: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 818

Certificado X.509 en Outlook Express

• Abra Outlook Express. • Seleccione Herramientas

- Opciones - Seguridad.• Puede seleccionar que

todos sus mensajes salientes vayan cifrados.

• Puede seleccionar que todos sus mensajes salientes vayan firmados digitalmente.

• Para mayor información vaya a Opciones Avanzadas.

Page 820: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 819

Opciones Avanzadas del certificado X.509

Page 821: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 820

Características del certificado X.509 (1)

Si pulsamos en Ids. Digitales, podemos observar nuestro certificado.

Doble clic en nombre

Page 822: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 821

Características del certificado X.509 (2)

Observe en la clave pública RSA el valor e = 010001

Page 823: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 822

Estándar PKCS

• PKCS: Public-Key Cryptography Standards, son un conjunto de especificaciones técnicas desarrolladas por Netscape, RSA y otros desarrolladores de informática cuyo objeto es uniformizar las técnicas y protocolos de la criptografía pública.

• Publicación de la primera versión 1.0 se hace en el año 1991.• PKCS forma parte de distintos estándares de hecho como ANSI PKIX,

X9, SET, S/MIME y SSL.• A la fecha existen 14 documentos con títulos genéricos que van desde

PKCS #1 a PKCS #15. • El de mayor trascendencia podría ser PKCS #11 llamado CRYPTOKI.• Mantendremos los títulos originales en su versión en inglés de RSA

Security Inc. Public-Key Cryptography Standards PCKS.

http://www.rsasecurity.com/rsalabs/pkcs/

Page 824: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 823

Documentos del estándar PKCS (2002)

• PKCS #1: RSA Cryptography Standard• PKCS #2: Incluido ahora en PKCS #1• PKCS #3: Diffie-Hellman Key Agreement Standard• PKCS #4: Incluido ahora en PKCS #1• PKCS #5: Password-Based Cryptography Standard• PKCS #6: Extended-Certificate Syntax Standard• PKCS #7: Cryptographic Message Syntax Standard• PKCS #8: Private-Key Information Syntax Standard• PKCS #9: Selected Attribute Types• PKCS #10: Certification Request Syntax Standard• PKCS #11: Cryptographic Token Interface Standard• PKCS #12: Personal Information Exchange Syntax Standard• PKCS #13: Elliptic Curve Cryptography Standard• PKCS #15: Cryptographic Token Information Format Standard

Page 825: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 824

PCKS #1 v2.1 del 14 de Junio 2002 (1)

PKCS #1: RSA Cryptography Standard• Tipos de claves: definición de claves pública y privada.• Conversión de primitivas: I2OSP (Integer-to-Octet-String primitive) y

OS2IP (Octet-String-to-Integer primitive).• Primitivas criptográficas cifra: RSAEP (RSA encryption primitive) y

RSADP (RSA decryption primitive). En este último caso se especifica la operación típica para n = p∗q y la operación para n = r1∗r2∗r3∗...∗ru.

• Primitivas criptográficas firma: RSASP1 (RSA signature primitive 1) especificando la operación típica para n = p∗q y la operación en caso de que n = r1∗r2∗r3∗...∗ru y RSAVP1 (RSA verification primitive 1).

• Esquemas de cifrado: RSAES-OAEP (RSA encryption scheme usandoOptimal Asymmetric Encryption Padding). Especificación de las operaciones de cifrado y descifrado.

Page 826: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 825

PCKS #1 v2.1 del 14 de Junio 2002 (2)

• Esquemas de firma con apéndice: RSASSA-PSS (RSA signature scheme with appendix - Probabilistic Signature Scheme). Define la firma y su verificación.

• Métodos de codificación para firmas con apéndices: EMSA-PSS (Encoding Method for Signatures with Appendix - Probabilistic Signature Scheme). Define operaciones de codificación y verificación.

• Sintaxis ASN.1: define los identificadores de objetos ANS.1 para las claves pública y privada RSA, RSAES-OAEP, RSASSA-PSS, etc.

• Técnicas soportadas: algoritmos funciones hash MD2, MD5, SHA-1 y los propuestos SHA-256, SHA-384 y SHA-512 así como funciones de generación de máscaras: MGF1 (Mask Generation Function 1).La patente de RSA ha expirado en septiembre de 2000 no así el nuevo sistema de cifra RSA con múltiples primos.

Fin del capítulo

Page 827: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 826

Cuestiones y ejercicios

1. ¿Qué es lo que certifica o autentica un certificado digital?2. Solicitamos un certificado digital a una empresa. ¿Está nuestra clave

privada entre los datos que nos solicita para el alta?3. Si un certificado digital pierde la validez, ¿qué debemos hacer?4. ¿Por qué una Autoridad de Certificación firma una función hash?5. Si Ud. fuese una Autoridad de Certificación, ¿qué condición pondría

para expedir con seguridad un certificado a un usuario?6. Una Autoridad de Certificación emite certificados digitales de hasta

1.024 bits y duración un año. Si ella tiene un certificado digital raíz de 2.048 bits, ¿sería lógico plantear una validez de éste por 10 años?

7. ¿Qué es y cuándo se solicita la revocación de un certificado digital?8. ¿Qué significa que la Autoridad de Certificación deba gestionar una

lista de certificados revocados?

Page 828: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2001

Capítulo 17: Certificados Digitales y Estándar PKCS Página 827

Prácticas del tema 17

1. Acceda a un gran almacén de su país que permita realizar compras seguras por Internet. Si no conoce una dirección Web use, por ejemplo, la página http:www.elcorteingles.com en España, ponga algún artículo en el carrito de la compra y comience el proceso necesario para efectuar el pago, sin concluirlo, para abrir una sesión SSL. Observe que al pasar el ratón sobre el candado cerrado de su navegador, aparece SSL 128 bits. ¿Qué significa?

2. Haga doble clic en ese candado y observe todas las características del certificado de ese servidor web.

3. Abra la pestaña de la clave pública RSA y observe los últimos 6 dígitos en hexadecimal 010001. Copie este valor en la calculadora de Windows y luego conviértalo a decimal. Compruebe que este valor es el mismo para otros servidores seguros. ¿Le dice algo este valor?

4. En las propiedades u opciones de su navegador, abra los certificados de distintas Autoridades de Certificación y observe sus características.

Page 829: Seguridad Informatica

Capítulo 18Aplicaciones de Correo Seguro

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 97 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 830: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 829

El correo electrónico seguro

En sistemas abiertos como en el caso de Internet, el correo seguro se logra a través de la plataforma S/MIME acrónimo de Secure Multipurpose Internet Mail Extensions.

A comienzos de los años 90 hacen su aparición dos sistemas o aplicaciones de correo electrónico seguro:

PEM: Private Enhanced MailPGP: Pretty Good Privacy

De los dos, ha sido PGP quien se ha convertido en un estándar de hecho en clientes de e-mail seguro en entornos cerrados. Por lo tanto veremos sólo algunos aspectos genéricos de PEM y analizaremos más en profundidad PGP.

Page 831: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 830

Private Enhanced Mail PEM

• Es una propuesta de la IETF Internet Engineering Task Forceen 1985. El documento técnico se publica en 1993.

• Las especificaciones técnicas están en las RFCs Request For Comments números 1421, 1422, 1423 y 1424.

• Se usa conjuntamente con el protocolo SMTP Simple Mail Internet Protocol.

• Cifrado de la información: DES modo CBC.• Generación y gestión de claves: RSA de 508 a 1024 bits.

Estructura de certificados según la norma X.509.• Clave de sesión: DES modo ECB, TripleDES-EDE.• Firma digital: RSA, MD2, MD5.

http://www.ietf.org/rfc/rfc1421.txt

Page 832: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 831

Implementación de PEM

• Es compatible con otros modelos de mensajería como, por ejemplo, X.400.

• PEM se implementa en el nivel de aplicación:• es independiente de los protocolos de los niveles OSI o

TCP/IP inferiores.• es independiente de los sistemas operativos o del

ordenador.

• Se puede implementar como un módulo independiente que trabaje con el cliente de correo habitual para el usuario.

Page 833: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 832

Servicios de seguridad en PEM

• Servicios de seguridad contemplados:– Autenticación del origen.– Confidencialidad.– Integridad del mensaje.– No repudio del origen cuando se utiliza gestión de clave

con algoritmo de clave asimétrica.• Servicios de seguridad no contemplados:

– Control de acceso.– Confidencialidad del tráfico de mensajes.– No repudio del mensaje por parte del receptor.

Page 834: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 833

Formato e implementación de PEM

TIS/PEMPlataformas UNIX. Trusted Information System. Código fuente disponible para los ciudadanos o empresas de Estados Unidos y Canadá. Usa una jerarquía de certificación múltiple.

RIPEMImplementa parte de los protocolos PEMsin certificados para autenticación de claves. Gratuito para aplicaciones no comerciales. Exportación prohibida fuera de Estados Unidos. Existen versiones utilizadas en todo el mundo.

Page 835: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 834

Pretty Good Privacy PGP

• Philip Zimmermann publica la versión 1.0 de PGP en 1991 con mínimos requisitos de hardware y software.

• En 1992 aparece la versión 2.0 en la que ya participan programadores de todo el mundo. Su código se escribe fuera de USA para evitar las leyes restrictivas respecto al software criptográfico y sus problemas legales.

• En 1993 aparece la versión 2.3a muy popular en sitios FTP y válida para varias plataformas de sistemas operativos.

• En 1994 participa en el proyecto el Massachusetts Institute of Technology MIT y aparecen las versiones 2.4, 2.5 y 2.6.

• La versión 2.6.3i se populariza a nivel mundial.

http://www.philzimmermann.com/ES/background/index.html

Page 836: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 835

Nota aclaratoria sobre versiones de PGP

Aunque hay más de una oferta de software para correo seguro que el programa PGP, éste se ha convertido en un estándar de hecho. Si bien las últimas versiones del programa orientadas a entornosWindows presentan altas prestaciones, las operaciones básicas siguen siendo las mismas que en la conocida versión 2.6.3i.

Las nuevas versiones de PGP en entorno Windows cambian muy rápidamente por lo que resulta muy difícil tener unos apuntes permanentemente actualizados. Por ello, se usará la versión 2.6.3i como versión simple para la explicación de las operaciones de cifra y firma con PGP y, posteriormente, haremos un repaso de las características de la versiones 6.5.1 y 8.0, una de las últimas.

La filosofía de las nuevas versiones es exactamente la misma...

Page 837: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 836

Tutorial de PGP 2.6.3i

Si no conoce PGP o no ha trabajado nunca con este entorno, le recomiendo que descargue desde la página Web de la Red Temática CriptoRed el archivo del Tutorial de PGP 2.6.3i en formato html que se indica.

Esta aplicación le servirá para aprender rápidamente los comandos y prestaciones de esta versión de PGP, muy similar a las actuales. PGP 2.6.3i ocupa menos que un disquete de 1,4 MB, aunque todas sus operaciones son en modo comando.

http://www.criptored.upm.es/software/sw_m001g.htm

http://www.criptored.upm.es/software.htm#freeware

Page 838: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 837

Características de PGP 2.6.3i

• PGP, en su versión 2.6.3i (internacional) se convirtió a mediados de la década de los 90 en un estándar de hecho. De hecho, muchos usuarios “siguen fieles” a esta versión.

• Cifra todo tipo de datos en entornos MS-DOS y UNIX. Su orientación principal es el cifrado de los datos y la firma digital en correo electrónico.

• Los algoritmos básicos que usa son:• IDEA para cifrar con sistema de clave secreta.• RSA para intercambio de claves y firma digital.• MD5 para obtener la función hash de la firma digital y

para recuperar clave privada asimétricas y cifrado local.

Page 839: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 838

Algoritmos usados en PGP 2.6.3iCompresión ZIP • Se comprime el mensaje en claro y la firma para

almacenarlo o transmitirlo. Generación de claves RSA, MD5 • Genera una clave pública y otra privada, encontrando

dos números primos muy grandes. El valor privado se guarda cifrado con IDEA usando como clave un resumen MD5 de la frase de paso secreta.

Cifrado Convencional IDEA • Cifra el mensaje con una clave de sesión de 128 bits (única) generada en el emisor de forma aleatoria.

Intercambio de claves IDEA, RSA • Cifra la clave de sesión IDEA con la clave pública del destinatario con RSA y la añade en el criptograma.

Firma Digital MD5, RSA • La función hash MD5 genera un resumen de 128 bits, que representa al mensaje en claro completo, y que se cifra en RSA con la clave privada del emisor. Se añade al mensaje enviado.

Compatibilidad e-mail Base-64 • Permite transmitir el mensaje a todo tipo de aplicaciones e-mail. Convierte los octetos en caracteres imprimibles.

Segmentación • Divide el criptograma final en bloques de menos de 50.000 bytes para su correcta transmisión en Internet y su recuperación.

- Operación - - Algoritmo - - Descripción de su función -

Page 840: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 839

Características del cifrado local

Esta operación sirve para mantener los archivos protegidos, por ejemplo en el disco duro.

El acceso al texto en claro sólo será posible si se conoce una clave o contraseña que es la frase de paso usada al cifrar.

Recuerde que si después de cifrar el archivo borra físicamente el texto en claro -operación que realiza una grabación de unos y ceros aleatorios en la zona de almacenamiento del disco- le será imposible recuperarlo si olvida la contraseña.

Page 841: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 840

Pasos del cifrado local con IDEA

Pasos:

1. PGP solicita una frase de paso: ésta debe ser lo suficientemente larga como para evitar ataques por combinaciones.

2. Se aplica el algoritmo de resumen MD5 a esa contraseña, generando así una clave de 128 bits.

3. Con esa clave, PGP cifra el documento con el algoritmo IDEA y le pone como extensión .pgp.

4. Como una opción, permite luego hacer un borrado físico del archivo en claro.

Page 842: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 841

Esquema de cifrado local con IDEA

Mensaje en claro

Clave Local

de 128 bits

Mensajecifrado

El documento se comprime con el algoritmo ZIP

El archivo cifrado puede guardarse, por ejemplo, en disco.

Borrado del texto en claro opcional.

La contraseña es una frase de paso. Se recomienda que tenga espacios, signos y caracteres de puntuación

CONTRASEÑA

Cada nuevo cifrado requiere una contraseña. Esta puede ser igual o distinta. Recuerde que a igual contraseña (frase de paso), tendremos igual hash.

Page 843: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 842

Operaciones con claves asimétricas

• Las operaciones de PGP para cifrar, descifrar, firmar y la comprobación posterior de la firma digital, usan los algoritmos de funciones hash, de clave pública y de clave secreta ya vistos en capítulos anteriores de este curso.

• Para poder enviar y recibir correo seguro, es necesario contar al menos con las siguientes claves:

Clave pública del destinatario.

Par de claves asimétricas del emisor.

Generación de claves con RSA

Page 844: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 843

Generación de claves asimétricas tipo RSA

• Una vez instalado PGP, se procede a la generación de claves asimétricas del usuario propietario.

• Se elige el tamaño del módulo n, por ejemplo 1.024 bits.• PGP generará un par de números primos e (clave pública)

y d (clave privada) de forma que e∗d mod φ(n) = 1.• Para una mayor facilidad en el descifrado en destino, el

valor de la clave pública e será pequeño. Un valor típico es el número primo 65.537 = 216+1, en hexadecimal 10001.

• PGP pedirá una contraseña o passphrase y con ella y MD5 generará una clave de 128 bits con la que cifrará la clave privada antes de almacenarla en el disco.

Page 845: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 844

Anillos de claves asimétricas

• Con las claves pública y privada generadas y otras claves públicas que el usuario podrá importar de otros usuarios, se crean dos anillos de claves:

Anillo de claves públicas: archivo pubring.pgp en el que se guardan las claves públicas del usuario propietario (puede tener más de una identidad) y las claves públicas importadas.Anillo de claves privadas: archivo secring.pgpen el que se guarda la o las claves privadas del usuario propietario (más de una identidad).Nota: estos anillos cambiarán su extensión en las nuevas versiones por pkr.

Page 846: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 845

Estructura del anillo de claves privadas

Sellado de tiempo Clave ID* Clave pública Clave privada cifrada ID usuario

T1 e1 mod 264 Clave púb. 1 Clave priv. 1 Usuario 1

--- --- --- --- ---

Ti ei mod 264 ei EH(FPi)(di) Usuario i

--- --- --- --- ---

Tn en mod 264 Clave púb. n Clave priv. n Usuario n

Descripción de los campos

(*) Se usa este campo para la indexación de la tabla en ambos anillos

Page 847: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 846

Campos de los anillos de claves

Sellado de tiempo: Fecha y hora de la generación del par de claves.

Clave ID:Identificador de clave (últimos 64 bits de la clave pública e).

Clave pública: Número primo e, inverso del primo d en el cuerpo φ(n).

Clave privada cifrada: Cifra EH(FPi) de la clave privada d con IDEA y la función hash de la frase de paso del propietario como clave secreta.

ID usuario: Identificación del usuario, normalmente dirección de email.

Page 848: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 847

Estructura del anillo de claves públicas (1)

Sellado de tiempo Clave ID* Clave pública Confianza propietario ID usuario

T1 e1 mod 264 Clave púb. 1 flag_confianza 1 Usuario 1

--- --- --- --- ---

Ti ei mod 264 ei flag_confianza i Usuario i

--- --- --- --- ---

Tn en mod 264 Clave púb. n Clave priv. n Usuario n

...

...

...

...

continúa en próxima diapositiva

(*) Se usa este campo para la indexación de la tabla en ambos anillos

Page 849: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 848

Estructura del anillo de claves públicas (2)

Legitimación de clave Firma(s) Confianza de Firmas

flag_confianza 1 • • • • • •

--- --- ---

flag_confianza i • • • • • •

--- --- ---

flag_confianza n • • • • • •

...

...

...

...

viene de la diapositiva anterior

Con la clave pública del destinatario ya podremos enviar correo cifrado y/o firmado. Pero ... ¿cómo se gestionan las claves en PGP?

Page 850: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 849

Gestión del anillo de claves públicas

??

?

A1 Nivel A

B1 B2 B3 Nivel B

D1 Nivel DX Y

X es firmado por Y

Propietario del anillo

C2 C4 C5C3 Nivel CC1

A1 cree en el propietario de la clave para firmar otra clave

A1 cree parcialmente en el propietario de la clave para firmar otra clave

?La clave está firmada por un usuario o Autoridad que no está en anillo de claves de A1

Más...

A1 cree en legitimidad de clave

A1 no cree que la clave sea legítima

Page 851: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 850

Otros escenarios de confianza en PGP

D1

?

A1

B1 B3

C2C1

D2

X YX es firmado por Y

B2

? C1

Otras situaciones en anillo de claves

D1D1

Nodo huérfano con firmas no reconocibles

C1 D1estados iniciales

?

Observe cambios en estados finales

A1 cree en el propietario de la clave para firmar otra claveA1 cree parcialmente en el propietario de la clave para firmar otra clavePGP hace que A1 crea en la legitimidad de las claves pues tienen al menos dos firmas parciales (B1-B2)o una completa (C2) pero no da confianza para firmar A1 no cree que la clave sea legítima

Page 852: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 851

Problema en estos escenarios de confianza

La gestión de claves en PGP se basa en la confianza mutua y es adecuada solamente para entornos privados o intranet.

En un sistema abierto como es Internet y aplicaciones como el comercio electrónico, esta situación y otras más que pueden darse en este sistema de gestión de claves por confianza mutua, resulta inaceptable. La solución, que PGP ya contempla en sus últimas versiones, es la aceptación de las Autoridades de Certificación como certificadores de claves públicas.

¿Los amigos de tus amigos serán mis amigos?

Page 853: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 852

Pasos cifrado con clave pública de destino

Pasos:1. PGP genera un número aleatorio de 128 bits que

será la clave de sesión.2. Se cifra el mensaje con dicha clave usando IDEA.3. Se cifra la clave de sesión con la clave pública RSA

del destinatario y se añade al criptograma.4. Se añade el identificador ID de la clave pública del

destinatario a la clave de sesión cifrada en el paso 3 como indicativo de la identidad del receptor.

Recuerde que el correo electrónico no es en general una comunicación en tiempo real por lo que, aunque se envía una clave para descifrar el criptograma en recepción, no se trata de una clave de sesión en los mismos términos que se usa, por ejemplo, en una comunicación SSL.

Page 854: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 853

Cifrado con clave pública de destino

Mensaje en claro

Clave pública del destinatario

Mensajecifrado

Clave de sesión cifradaClave

de sesión

Se busca en el anillo de claves públicas del emisor

El documento se comprime antes con el algoritmo ZIP

Necesitamos una clave de sesión...

Por compatibilidad de sistemas clientes de correo, se le añade

armadura (Base 64) antes de transmitirlo

Page 855: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 854

Pasos descifrado con clave privada destino

Pasos:

1. PGP busca en la cabecera del criptograma el identificador de usuario ID (receptor) que se ha añadido en la clave de sesión cifrada.

2. Se busca la clave privada del identificador ID en el anillo de claves privadas del receptor.

3. Se accede a la clave privada en claro, descifrándola con IDEA al introducir el propietario ID su frase de paso y el hash MD5 entregue la clave de descifrado.

4. Con la clave privada se descifra la clave de sesión.5. Con la clave de sesión se descifra el criptograma.

Page 856: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 855

Descifrado con la clave privada de destino

Se busca en el anillo de claves privadas del receptor

Mensajecifrado

Clave de sesión cifrada

Clave privada destino cifrada

CONTRASEÑA

Clave privada descifrada

Clave de

sesión

Mensaje en claroSe le quita finalmente la armadura y se descomprime

Page 857: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 856

Firma digital RSA

Mensaje en claro

Bloque de firma digital

Mensaje en claro

Clave privada cifrada IDEA

CONTRASEÑA

Clave privada descifrada

Se va a firmar un mensaje en claro

Necesitamos nuestra clave privada...

Si se desea se puede enviar también cifrado

Page 858: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 857

Comprobación de la firma digital RSA

Clave pública del emisor

Bloque de firma digital

Mensaje en claro recibido

Se calcula en destino la función hash del mensaje y comparamos

¿ IGUALES ?

Firma correcta

Firma incorrecta

H(M) enviado

H(M) calculado

NoSe busca la clave pública del emisor para descifrar la firma

Page 859: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 858

Formato de un mensaje PGP dirigido a B

NOMBRE DEL FICHERO

IDENTIFICADOR DE CLAVE PUBLICA DEL RECEPTOR

CLAVE DE SESION

SELLO DE TIEMPO

IDENTIFICADOR DE CLAVE PUBLICA DEL EMISOR

RESUMEN DEL MENSAJE

TEXTO DEL USUARIO

COMPONENTES DE LA FIRMA

COMPONENTES DEL MENSAJE

DOS PRIMEROS OCTETOS DEL RESUMEN

SELLO DE TIEMPO

COMPONENTES DECLAVE DE SESION

ZIPE(eB)

R64

Orden de las operaciones

Page 860: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 859

Los tiempos cambian, pero ...

La mítica versión de PGP 2.6.3 del MIT se convierte rápidamente en el software de libre distribución freeware más popular en el

mundo de los PCs y especialmente en entornos de correo electrónico: usa cifra y firma con criptografía calificada como fuerte.Las versiones en entorno Windows a través de Network Associatespresentan opciones avanzadas, servicios de red para seguimiento

de paquetes y autenticación mediante Autoridades de Certificación. Existe una versión freeware para usos no comerciales ☺.

Las versiones 5 y 6 tuvieron su código fuente abierto, en la 7 el código deja de ser público y a partir de la versión 8.0 (diciembre

2002) con PGP Corporation se ha liberado otra vez el código.

¿Ha vuelto otra vez la cordura? Aquí puede haber varias opiniones....

Page 861: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 860

Algoritmos en nuevas versiones de PGP

• Generación de claves• RSA: 1.024 - 4.096 bits• Diffie y Hellman: 1.024 - 4.096 bits

• Firma digital• DSS Digital Signature Standard: 1.024 bits

• Cifrado• AES, CAST, IDEA, TripleDES, Twofish

• Resumen• SHA-1 (160 bits) y MD5 (128 bits)

Page 862: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 861

Algunas versiones de PGP en Windows

Desde la versión 5.0 hasta las actuales (versiones 8.0 y siguientes) los esquemas de cifrado local, cifra asimétrica y firma digital han cambiado muy poco aunque presentan mayores prestaciones. No obstante, recuerde que algunas prestaciones sólo estarán activadas en versiones comerciales.

PGP 7.0.3PGP 6.5.1 PGP 8.0

Veremos algunas operaciones de estas tres versiones con mayor detalle. Recuerde, eso sí, que la versión 7.0.3 no tiene su código fuente abierto.

Page 863: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 862

Instalación de la versión PGP 6.5.1PGP 6.5.1 internacional aparece en el año 1999. Puede considerarse como una de las versiones seguras mejor optimizadas desde la primera en entorno Windows.

Puede descargar estas versiones

desde el servidor http://www.pgpi.org

Page 864: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 863

Carpetas y programas de PGP 6.5.1

Encontrará aquí un excelente

manual de PGP en formato PDF Tal vez el programa más

importante de PGP

La instalación creará esta carpeta

Page 865: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 864

Opciones generales de PGP 6.5.1La generación rápida de claves sólo puede hacerse para valores DH de una longitud predeterminada.

Se puede limitar el tiempo de descifrado de la frase de paso en memoria caché.

El borrado físico de datos y ficheros se hace escribiendo 1s y 0s aleatorios en los cluster, desde 8 hasta 32 veces.

Page 866: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 865

Opciones de ficheros de PGP 6.5.1

Los archivos donde guarda las claves públicas y claves privadas siguen llamándose pubring y secring pero ahora, a diferencia de versiones anteriores, usa como extensiones pkr.

El archivo de semilla permite generar números aleatorios para crear claves.

En versiones anteriores había que mover el ratón para obtener una semilla; hoy se hace con datos aleatorios propios de cada computador.

Page 867: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 866

Opciones de e-mail de PGP 6.5.1

El PGP/MIME sólo funciona con plugins.Se puede pedir que cifre, firme o descifre y compruebe firma por defecto al enviar o abrir mensajes.Si usa Secure Viewer, al descifrar un archivo éste sólo se muestra en la pantalla usando para ello una técnica de enmascarado que evita los ataques por captura de radiofrecuencias del teclado, TEMPEST.

Page 868: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 867

Opciones de atajos de PGP 6.5.1

La opción de usar teclas para atajos es poco interesante pero puede activarse si se desea.

Tal vez se podría haber ahorrado esta ventana.

Page 869: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 868

Opciones de servidores de PGP 6.5.1

A estos servidores se puede enviar nuestra clave pública para que los usuarios accedan más fácilmente a ella.

Es interesante estar sincronizado con el servidor por el tema de las claves revocadas.

Page 870: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 869

Opciones de ACs de PGP 6.5.1

También VeriSign OnSite

y Entrust

Page 871: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 870

Opciones avanzadas de PGP 6.5.1IDEA era en versiones anteriores el algoritmo de cifra por defecto.

El aviso sobre uso de Additional Decryption Key (ADK) significa que el administrador del sistema puede usar una clave extra que le permite descifrar lo cifrado, en caso de necesidad o por un requerimiento judicial.

El formato compatible es el código base 64.

Page 872: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 871

El programa PGPtray de acceso directo

Lamentablemente PGPnet no se incluye en nuevas versiones freeware Si PGPnet está instalado, en

la barra de tareas, al lado del candado de PGPtray, nos

aparecerá un icono vertical como se ve en la figura.

La ventana actual cifra texto y no documentos con formato.

El uso de portapapeles es la solución si no tenemos el plugin para correo electrónico.Barra de tareas del PC

Page 873: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 872

Barra flotante de PGPtools

PGPkeys

Encrypt

Sign

Encrypt & Sign

Decrypt/Verify

Wipe

Freespace Wipe

No es muy cómodo y resulta mejor usar el menú contextual con el botón derecho

del ratón. En este casosobre el archivo Kerberos_borrador.doc

Page 874: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 873

Generación de claves con PGPkeys 6.5.1

Esta es la primera pantalla que aparece una vez instalado PGP.

Page 875: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 874

Nombre del usuario y su correo

No es necesario que la dirección de correo sea la real.

No obstante, sirve para los que se quieran comunicar con nosotros sepan que esa clave es real y pertenece a esa dirección de email.

Page 876: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 875

Elección del tipo de clave asimétrica

El estándar para la generación de las claves asimétricas es en la actualidad Diffie y Hellman junto con la Digital Signature Standard, y se representará como DH/DSS.

También puede usar claves RSA que son compatibles con las versiones anteriores de PGP.

Habrá nuevas sorpresas en

otras versiones

Page 877: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 876

Elección de la longitud de la clave

Si genera claves de longitud distinta a los valores que se proponen, puede tardar bastante tiempo generarlas. Algo similar sucede si no usa la opción generación rápida de claves.

Es recomendable que use una clave de 2.048 bits. Esta se generará sólo en esta fase.

Page 878: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 877

Clave sin caducidad

Puede optar porque su clave no caduque nunca eligiendo esa opción que aparece por defecto, o bien...

Page 879: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 878

Clave con caducidad

Puede optar que la clave caduque de acuerdo con un calendario que nos muestra PGP.

En el ejemplo la clave tiene validez desde el 4 de junio de 2000 al 4 de junio de 2001.

Page 880: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 879

Frase de paso para cifrar la clave privada

La frase de paso debe tener varias palabras para que sea difícil un ataque por diccionario.

Si quita la opción Hide Typing, podrá ver lo que escribe.

Por seguridad, no está permitido usar el portapapeles para copiar la frase de arriba en la ventana de confirmación.

No muy buena

Page 881: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 880

Generación de los números primos

PGP genera dos primos tanto para las claves RSA (los valores p y q) como para DH/DSS, en este caso el primo p para el intercambio de clave y el primo q para la firma DSS.

Normalmente tarda pocos segundos si se eligen los valores estándar que nos propone PGP.

Page 882: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 881

Envío de la clave al servidor de claves

Si se desea y la clave es una clave real y de trabajo, ésta se puede enviar a un servidor.

Page 883: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 882

Generación de clave concluida

Se ha concluido satisfactoriamente la generación del par de claves pública y privada que se guardarán en los anillos pubring.pkr y secring.pkr.

La clave privada se guarda cifrada con una clave de sesión que se genera al aplicar una función hash a la frase de paso del propietario.

Page 884: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 883

Visualización de la clave de Benito

Por defecto, el propietario se firma la clave pública con su clave privada.

Page 885: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 884

Exportación de la clave pública de Benito

Botón derecho

del ratón

Page 886: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 885

Claves de dos usuarios para un ejemplo

U1

U2

Frase de paso (muy mala) para descifrar la clave privada de este usuario

Page 887: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 886

Inclusión de fotografía en clave pública

Usuario al que se le añade una fotografía en propiedades.

Se firma la fotografía

En negrita aparece el usuario por defecto (Benito). No es necesario que lo sea para esta operación.

Page 888: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 887

Las claves públicas los amigos de Xfiles

Page 889: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 888

Usuario por defecto y clave revocada

El usuario en negrita es aquel que se ha

definido por defecto. Todas las cifras,

firmas y descifrados serán suyos si no se

cambia el status.

En cursiva: usuario cuya clave ha sido revocada o bien ha caducado su validez.

Page 890: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 889

Ejemplo de cifra y firma con portapapeles

El texto se escribe con WordPad o con

el Bloc de Notas y luego se copia al

portapapeles.

Si lo desea también puede crear el texto con la opción Edit y

copiarlo luego al portapapeles.

Las operaciones (sólo sobre textos) se realizarán en el

portapapeles por lo que en este entorno no creará archivos.

Era el usuario por defecto al realizar este

ejercicio.

Page 891: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 890

Destinatario y frase de paso para la firmaSe elige el destino y se arrastra hacia la zona de destinatarios. Puede ser más de uno y hacerlo con doble clic. Para quitar a un receptor se hace doble clic sobre él.

Como se va a firmar, PGP pedirá la frase de paso del emisor, la agente Scully.

Al trabajar con el portapapeles, el archivo cifrado siempre estará en formato base 64.

Page 892: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 891

Documento portapapeles formato base 64

Todo el texto que hay en el portapapeles, incluido

BEGIN PGP y END PGP, puede ahora copiarse en el cuerpo del cliente de

correo electrónico.

Si desea enviar por el cliente de correo un

archivo adjunto cifrado y/o firmado, deberá crear

primero ese documento con cualquier programa

como Word, Excel, etc. y aplicar sobre el archivo el

menú contextual del botón derecho del ratón.

Page 893: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 892

Descifrado del criptograma por destinatario

Introducimos la clave solicitada para descifrar...

Aunque el usuario por defecto era Scully, al pedir descifrar lo del

portapapeles, PGP detecta que el receptor es el usuario Mulder.

No importa quién sea el usuario por

defecto...

Page 894: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 893

Mensaje en claro y firma comprobada

Comprobación de la firma

Descifrado del criptograma

Texto en claro

Page 895: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 894

Otras operaciones con PGP

PGP permite hacer otras operaciones interesantes:Dividir (split) una clave privada en varias subclaves, de forma que para deshacer una operación de cifra o firmar un documento se requiere un umbral de estas subclaves dadas por diseño. Está basado en el esquema de Blakely-Shamir.Firmar las claves públicas de otros usuarios con distintos niveles de confianza.Revocar una clave, habilitar o deshabilitar una clave.Enviar, buscar y actualizar claves desde servidores.Cifrar con la opción sólo para tus ojos, crear grupos, etc.

Le recomiendo que éstas y otras operaciones las realice a modo de ejercicio, instalando PGP en su computador.

Page 896: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 895

PGP versión 7.0.3

Es básicamente el mismo programa de la versión 6.5.1 pero con ligeras diferencias:• Los mayores cambios se observan en menú PGP Options.

Incluye opción de descifrado automático muy interesante.• Incluye dos nuevos algoritmos: AES y Twofish• La creación de claves es de forma automática DH/DSS con

1.024 bits. Si queremos crear claves RSA, debemos entrar obligatoriamente en la opción experto.

• Añade opciones de configuración de VPNs.El peor inconveniente es que su código no es público por lo que nadie puede asegurar que el programa haga exactamente lo que dice que hace, por ejemplo la fortaleza de la cifra, protección ante ataques tempest, etc.

Page 897: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 896

Opciones de VPN en PGP 7.0.3

Page 898: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 897

Autenticación VPN en PGP 7.0.3

Page 899: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 898

Opciones VPN avanzadas en PGP 7.0.3

Page 900: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 899

Cifrado local de ficheros con PGP 7.0.3Podemos usar el botón derecho del ratón sobre archivo Leame.doc...

Elegimos la opción cifrado convencional

Page 901: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 900

Descifrado de ficheros con PGP 7.0.3

El archivo queda cifrado, con icono de PGP y extensión pgp. Observe que el archivo original permanece porque no hemos activado la opción wipe original.

Pinchando dos veces sobre el icono...

¡Si olvidamos la clave y usamos wipe, nunca podremos recuperar el archivo!

Page 902: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 901

Cifrado en modo SDA con PGP 7.0.3

Opción SDA: Self Decrypting Archive

Page 903: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 902

Descifrado SDA con PGP 7.0.3

Este es un archivo ejecutable y se descifra

de forma automática haciendo doble clic

sobre él, sin necesidad de que el usuario de

destina deba tener PGP instalado en su PC... ☺

Page 904: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 903

Borrado físico de archivos con PGP 7.0.3

Graba 0s y 1s aleatorios en los clúster del disco.

Page 905: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 904

PGP versión 8.0

Las operaciones sobre archivos para cifra y firma digital siguen siendo muy similares a las versiones anteriores. La oferta de producto, además de la versión freeware contempla:

• PGP Desktop• PGP Desktop Upgrade to Enterprise• PGP Enterprise• PGP Mobile• PGP Personal

Además de las carpetas de instalación, veremos algunas de las opciones de configuración con diferencias notables respecto a las versiones anteriores.

Page 906: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 905

Carpeta e iconos de PGP versión 8.0

La versión 8.0 se instala en la carpeta PGP Corporationque cuelga de la carpeta de C:/Archivos de Programa.

Incluye un nuevo programa: PGPdisk

El programa PGPmail es el antiguo PGPtools

Page 907: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 906

Programa PGPdisk

El programa PGPdisk permite montar una sección del disco como si se tratase de una unidad más en su PC.

De esta forma toda la información que allí se almacene estará protegida por una clave.

Desgraciadamente esta opción no viene incluida en la edición freeware.

Page 908: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 907

Opciones generales de PGP 8.0

Incluye al igual que en la versión 7.03 la opción de Single Sign On. Consiste en permitir la cifra/firma digital de documentos durante un tiempo dado, sin tener que introducir en cada uno de ellos la frase de paso para acceder a clave privada.

Las demás opciones son las mismas, con ligeras modificaciones.

Page 909: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 908

Opciones avanzadas de PGP 8.0

El algoritmo por defecto es el nuevo estándar AES (Rijndael) y cambia Blowfish por Twofish.

Incluye la opción de usar tarjetas inteligentes para almacenar y gestionar claves.

Se puede configurar un backup automático del anillo de claves al cerrar el programa.

Page 910: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 909

Acceso a Wipe Free Space desde PGPmail

Desde PGPtray se accede a PGPmail

Page 911: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 910

Free Space Wipe con PGP 8.0

Seleccionamos la unidad en la que vamos a borrar archivos temporales y el espacio libre al final del cluster de

cada archivo del disco.

Se elige el número de pasos que hará el programa de borrado. Nota: es una acción que toma bastante tiempo. En este caso de unidad A:\ y con sólo dos archivos, tres pasadas han significado más de 7 minutos.

Page 912: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 911

Recomendaciones con las claves de PGP

Observe que si crea nuevas claves y cierra el programa, PGP le avisará que es recomendable hacer una copia de seguridad de sus nuevos pares de claves asimétricas.

Esto es así porque cualquier persona que conozca algo de PGP y entre en su computador, puede abrir el programa PGPkeys y borrar las claves. Aunque pueda parecerle poco lógico, no se pide ninguna clave para esta operación.

Por lo tanto, si trabaja con PGP de forma frecuente, haga de vez en cuando un volcado de sus claves asimétricas y de las claves públicas externas como copia de seguridad.

Page 913: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 912

GnuPG: Gnu Privacy Guard

GnuPG es un reemplazo completo y libre para PGP. Debido a que no utiliza el algoritmo patentado IDEA, puede ser utilizado sin restricciones. GnuPG es una aplicación que cumple el RFC 2440 (OpenPGP).

La versión 1.0.0 fue publicada el 7 de septiembre de 1999. La versión actual a comienzos de 2005 es la 1.4.0.

GnuPG es Software Libre. Puede ser utilizado, modificado y distribuido libremente bajo los términos de la Licencia Pública General de GNU.

• Texto sacado de la web de GnuPG http://www.gnupg.org/

Page 914: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 913

Correo seguro a través de S/MIME

S/MIME: Secure Multipurpose Internet Mail ExtensionsA diferencia del PGP estándar, que se basa en la confianza entrelos usuarios, S/MIME usa certificados digitales X.509 entregadospor una Autoridad de Certificación que los clientes de correo deben reconocer como tal.Añadirá servicios de cifrado y firma en los clientes de correo (Outlook Express, Netscape Messenger, ...) en formato MIME.Crea una especie de sobre en el que se envuelven los datos cifrados y/o firmados.Usa plataformas de estándares PKCS, Public-Key Cryptography Standards.

http://www.imc.org/smime-pgpmime.html

Fin del capítulo

Page 915: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 914

Cuestiones y ejercicios (1 de 4)1. Usando la tabla correspondiente represente en base 64 los siguientes

mensajes ASCII: M1 = AMIGOS, M2 = ¿Qué pasa?2. Instale una versión de PGP, vaya a la carpeta del programa y luego

imprima el documento que verá en la carpeta documentation.3. Con cualquier versión de PGP cifre de forma local y con armadura

(base 64) un archivo que haya creado con el bloc de notas y observe los rellenos que introduce en el criptograma y al final de él. Añada una letra al texto en claro y vuelva a comparar los textos ASC.

4. Cifre el documento TXT anterior y observe la salida ASC. Vuelva a cifrarlo y observe la salida. ¿Coinciden? ¿Qué ha pasado?

5. ¿Es posible que PGP cifre un documento y éste salga en claro?6. ¿Por qué siempre se comprime el mensaje antes de cifrar?7. ¿Qué puede decir de la gestión de claves públicas que ofrece PGP?

Page 916: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 915

Cuestiones y ejercicios (2 de 4)8. ¿Qué tipo de esquema de cifra es el que utiliza PGP?9. Después de instalar PGP en nuestro computador, ¿qué es lo primero

que nos sugiere? 10. ¿Qué diferencia hay entre elegir una clave DH/DSS y RSA?11. Si creamos un nuevo par de claves asimétricas, ¿queda el nuevo

usuario como usuario por defecto?12. Cree tres nuevos usuarios Hugo, Paco y Luis con diferentes tipos y

longitudes de clave. Haga que entre ellos se firmen sus claves.13. Incluya en cada uno una fotografía en sus propiedades. Puede ser

cualquier archivo con formato de imagen.14. ¿Qué sucede si creamos que un nuevo usuario Ana con una clave

tipo DH/DSS con una longitud exacta de 4.000 bits? ¿Podemos crear una clave RSA de 4.000 bits?

Page 917: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 916

Cuestiones y ejercicios (3 de 4)

15. Revoque una clave y observe sus propiedades. ¿Se puede recuperaresa clave? ¿Puede deshabilitar una clave? ¿Qué significa esto?

16. Cree el grupo Sobrinos con los usuarios Hugo, Paco y Luis. Envíeun mensaje a ese grupo eligiendo desde PGPkeys Show Groups.

17. Cree el usuario FirmaEspecial con frase de paso UnaFirmaEspecialen la que intervengan 4 usuarios, cada uno con una porción igual de la clave y umbral 3. Cifre y firme un documento con dicha clave.¿Podría alguien tener más de una participación de la clave?

18. Mediante el botón derecho del ratón cifre de forma local un archivo por ejemplo de Word, en modo formato compatible. Vuelva a cifrarel archivo original con otro nombre pero ahora sin formato base 64. ¿Cómo son ambos criptogramas? ¿Cómo son sus tamaños en bytes?

19. Si se cifra un archivo txt con la opción Secure Viewer, ¿se guarda el archivo descifrado? ¿Es seguro? ¿Puede hacerse con archivo Word?

Page 918: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 917

Cuestiones y ejercicios (4 de 4)

20. Cree el nuevo usuario Pepillo y exporte su clave a un archivo. Borre ahora este usuario y desde PGPkey importe ese archivo de clave pública. ¿Se añade el usuario al anillo de claves públicas?

21. ¿Qué pasa en un cifrado local de un archivo con self decrypting? Compruébelo con un archivo cualquiera. ¿Podríamos usar esta opción si además de cifrar vamos a firmar ese documento?

22. ¿Qué significa actualizar una clave desde PGPkeys?23. Añada un nuevo nombre a una clave. ¿Para qué puede servir esto?24. ¿Qué son el KeyID y el Fingerprint? ¿Qué utilidad puede tener que

la huella dactilar también esté dada como un conjunto de palabras?25. Si una clave está revocada, ¿puede recibir archivos cifrados con su

clave pública? ¿Puede firmar nuevos documentos? ¿Puede descifrary/o comprobar documentos anteriores a la fecha de revocación?

Page 919: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 918

Prácticas del tema 18 (1/7)Software PGP 8.0: http://www.criptored.upm.es/software.htm#freeware

1. Si no tiene instalado PGP, descárguelo e instálelo. Acepte por defecto todas las opciones, reiniciando su computador y observe que en este caso le fuerza a crear un par de claves asimétricas: cree una cualquiera. Si tiene instalada una versión anterior a la ésta, instálela indicando que tiene claves y que desea conservarlas en esta nueva versión.

2. Pinche en el icono PGPtray (candado) que aparece en la barra de tareas y observe en PGPkeys que están sus claves y la nueva, si la ha creado.

3. Abra la carpeta Archivos de programa\PGP Corporation\ y observe los documentos pdf en la carpeta Documentation. Si puede, imprímalos.

4. Desde PGPkey - Keys - New Key cree la siguientes clave: Nombre: Juan Pérez email: [email protected]: Esta es la clave de Juanito

5. Observe la clave generada en PGPkeys.

Page 920: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 919

Prácticas del tema 18 (2/7)6. Repita el ejercicio anterior entrando ahora en modo Expert, generado una

clave DH/DSS de 1024 bits y duración un año para el usuario José Ramos; y una clave RSA de 1024 y duración seis meses para el usuario Ana Vélez. Observe las nuevas claves y sus características: Key Properties.

7. Abra la opción View de PGPkeys, active todas las casillas y obsérvelas.8. Active como usuario por defecto a José Ramos: botón derecho del ratón y

Set by Default. Hecho esto, sobre las claves de Juan Pérez y Ana Vélezpulse el botón derecho y firme esas claves: sign. Observe las propiedades de esas claves después de esta firma.

9. Con la opción PGPkeys - Keys - Add - Photo, incluya una fotografía a cada una de estas tres claves. Observe que le pide la clave privada de cada uno, sin necesidad que sea el usuario por defecto. Vea las propiedades.

10. Con PGPkeys - Keys - Export, exporte la clave pública de José Ramos. Observe el fichero creado. Repita el ejercicio exportando ahora además la clave privada y observe el fichero creado.

Page 921: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 920

Prácticas del tema 18 (3/7)11. Copie al portapapeles todo el bloque siguiente y dentro de PGPkeys pegue

su contenido (Crtl V) para importar la clave pública que supuestamente le ha llegado en un correo electrónico o se la ha entregado en mano Patricia:

-----BEGIN PGP PUBLIC KEY BLOCK-----Version: PGP 8.0 - not licensed for commercial use: www.pgp.com

mQGiBEF+iZsRBADV5uEp8xSuM/9s8Yo35ajTivI0sFoGr0X7o0iCGIL3MXMqbLUQt/4gFH2joQQT7FxzCUuLwItFGVbWN6sE/1Pl0WJ24ItTBoS9jkvPJ4GTZSrAZqzjdWgv16VAyKvEMZ/8vjetd/YRcx5KORdbMkZFsn+YEBt+amGEG7bPl+UA3QCg//b/PSn1CgNxfP/MdTHb0IhmspcD/j7G7pA/GAJ1aZi4Xsp4QH2dJhSBBDxdaoRDVuQeCADER2DFgC1KcPHkh1QnNWRNyAL3JLriy884mCSMTC0nF7MBq7bQCng6P6WdfZAPlYAwrmNTIJTJLOISnxPuI++vM+Awqv/zPNkvYog5F12j//0Cm51sQ8rBB5MMppDKwc8jA/0WD31Pt3wT0CPBdlzsywB+S1eXvYriMcK5yezKQElasaXyBtMPOTcfagXCJ/bwYQ/JFZGuAtXcR9YVoUKKPZToibV1Forj4O8g7kOCgFM7hKe+PuwRSFTkrcXKusm0tci+O0c8Wkmkdhtmc4BigRALPk7wfObtjmWhzrTXQWDxl7QcUGF0cmljaWEgPHBhdHR5QGVtcHJlc2EuY29tPokAWAQQEQIAGAUCQX6JmwgLCQgHAwIBCgIZAQUbAwAAAAAKCRBTdLP9mT9CeipHAJ0dBgLluHQ5R2MzZ2K26sEdZ0NcaQCgmPr6GKTU5vSeNunxGUZJXDMWeUO5AQ0EQX6JnhAEAOcINMith6D/dqoqLPyE7Dm9U8wV5I5RjQ8vX+5kRr5nenKs0DZHZD88Q/ciGy/6IZapSrUU8Ob72wVJtsitLjr/9IrZFfaY1M/ry4n57dKbSlUtIuoAMUduyaC2LXIHjA8aHcjkf1HzI5ZyN2VX47kBEvPCFK0X90C6wlCsUMmzAAICBAC0+F5Iqf1Wcuix0tkzpxb85cRHqVkjKoV7vtOvx1wW7NLunAytWolWkmpmGknrxTM2XdHUJBDvi4KYwxOwMJCuxkAzpNWiOaGzjfiSZWcXK0T4oiBs8OL2y9gdpFGvdIzZdc2m09iYJs7hGU5uGOFTyp7YJUsI35zUn0fO/o7vdIkATAQYEQIADAUCQX6JngUbDAAAAAAKCRBTdLP9mT9Ces1tAKDhyokWrHR4DmyWxaJS9cMs9AssfACdEfDYQ/hJa5PVfUPQfk6yDjDg0IY==d8QC-----END PGP PUBLIC KEY BLOCK-----

Page 922: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 921

Prácticas del tema 18 (4/7)12. Observe las propiedades de la clave importada. ¿Se puede definir a Patricia

como usuario por defecto?13. Vamos a crear una clave cualquiera para un usuario de nombre Alicia. Una

vez creada, exporte la clave pública y privada. Hecho esto borre la clave de Alicia en PGPkeys con tecla suprimir o bien Edit - Delete.

14. Con PGPkeys - Keys - Import, importe la clave de Alicia desde el archivo creado en el paso anterior, observe el mensaje y compruébelo desde las propiedades de la misma. Modifique la confianza en dicha clave.

15. Con el usuario Ana Vélez por defecto, firme las claves de los otros usuarios creados con distintos noveles de confianza. Observe luego las propiedades de las claves firmadas por Ana Vélez.

16. Revoque la clave de uno de los usuarios creados y observe las propiedades.17. Con el botón derecho del ratón sobre documento de este libro electrónico

CriptoClasica.doc, cifre de forma convencional o cifrado local con la clave K = Clave de cifra convencional. Abra el archivo con WordPad.

Page 923: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 922

Prácticas del tema 18 (5/7)18. Observe el tamaño del fichero cifrado y compárelo con el original.19. Vuelva a cifrar de forma convencional el documento CriptoClasica.doc

con la misma clave, pero añada ahora la opción Text Output. Abra el archivo con WordPad y vuelva a comprara el tamaño de los ficheros.

20. Cree un documento cualquiera con Word, Excel, etc. sencillo y cífrelo de forma local con la clave K = Borrado de verdad, con las opciones TextOutput y Wipe. El archivo original ha sido destruido.

21. Recupere el archivo cifrado haciendo doble clic en él.22. Para saber con qué algoritmo hemos cifrado, con qué profundidad se ha

realizado el borrado físico y otras propiedades de PGP, desde el icono del candado abra la pestaña Options y observe todas estas opciones.

23. Cifre nuevamente el documento CriptoClasica.doc de forma convencional con la opción Self Decrypting Archive. Observe el icono y el tamaño del fichero. Si puede hacerlo, descífrelo en un computador que no tenga instalada ninguna versión de PGP.

Page 924: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 923

Prácticas del tema 18 (6/7)24. Ponga por defecto al usuario José Ramos y desde el icono PGPtray abra el

portapapeles (Clipboard Edit), escriba un texto de algunas líneas y cópielo al portapapeles (Copy to Clipboard). Luego cífrelo (Clipboard Encrypt) para Ana Vélez, arrastrando su nombre a la ventana. Abra el portapapeles (Clipboard Edit) y observe que el contenido está en Base 64. Si no sabe qué significa esto, vaya al anexo de estos apuntes.

25. Descifre su contenido (Clipboard Decrypt & Verify). Observe que puede copiar ese texto en claro y guardarlo en un achivo.

26. Repita la cifra anterior activando ahora en la cifra el modo Secure Viewer. ¿Puede guardar ahora el texto en claro?

27. Repita el ejercicio anterior pero ahora José Ramos sólo firmará el texto. Hecho esto, abra el portapapeles y observe su contenido. Compruebe que la firma es válida con la opción (Clipboard Decrypt & Verify).

28. Repita el ejercicio anterior activando ahora la opción de cifrar y firmar (Clipboard Encrypt & Sign) . Descifre el criptograma.

Page 925: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 18: Aplicaciones de Correo Seguro Página 924

Prácticas del tema 18 (7/7)29. Si tiene un cliente de correo que tenga los plugins de PGP, envíe y reciba

correo cifrado y firmado, bien a sí mismo o con otro usuario.30. Cree cinco claves de cualquier tipo con nombres Gerente, Consejero1,

Consejero2, Consejero3 y Consejero4. Cree ahora una clave de nombre Empresa. Hecho esto, divida esta última clave (Share Split), defina como umbral para recuperar la clave 5 y arrastre a la ventana a los cinco usuarios antes creados, entregando a Gerente 3 partes y a cada Consejero 1 parte. Observe que en este escenario siempre deberá firmar Gerente.

31. Con Empresa como usuario por defecto, firme CriptoClasica.doc y observe cómo se van solicitando las partes de la clave. Compruebe luego la firma.

32. Si tiene acceso a Internet, compruebe cómo funcionan los servidores de clave, las listas de revocación de certificados, etc.

33. Para terminar, en modo Expert cree algunas claves de tamaños “extraños” como 1893 bits, 2871 bits, 4017 bits, ... y observe los tiempos que tarda PGP en crearlas. ¿Qué opina de la seguridad de esas claves RSA?

Page 926: Seguridad Informatica

Capítulo 19Protocolos y Esquemas Criptográficos

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 73 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madridv 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 927: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 926

Definición de protocolo criptográfico

Veamos 10 ejemplos

• Protocolo: es el conjunto de acciones coordinadas que realizan dos o más partes o entidades con el objeto de llevar a cabo un intercambio de datos o información.

• Protocolos criptográficos serán aquellos que cumplen esta función usando para ello algoritmos y métodos criptográficos.

• Permiten dar una solución a distintos problemas de la vida real, especialmente en aquellos en donde puede existir un grado de desconfianza entre las partes.

¿Qué es un protocolo?

http://www.criptored.upm.es/guiateoria/gt_m023c.htm

Page 928: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 927

Ejemplos de protocolos criptográficos (1)

1.- El problema de la identificación del usuario¿Cómo permitir que un usuario se identifique y autentique ante una máquina -y viceversa- con una clave, password o passphrase y no pueda ser suplantado por un tercero?

2.- El problema del lanzamiento de la moneda¿Cómo permitir que dos usuarios realicen una prueba con probabilidad ½ -como es el lanzamiento de una moneda-si éstos no se encuentran físicamente frente a frente y,a la vez, asegurar que ninguno de los dos hace trampa?

Page 929: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 928

Ejemplos de protocolos criptográficos (2)

3.- El problema de la firma de contratos¿Cómo permitir que dos o más usuarios que se encuentran físicamente alejados puedan realizar la firma de un contrato,asegurando que ninguno de los firmantes va a modificar las condiciones ni negarse a última hora a dicha firma?

4.- El problema del descubrimiento mínimo de un secreto¿Cómo poder demostrar y convencer a otra persona o a un sistema que uno está en posesión de un secreto, sin por ello tener que desvelarlo ni a ella ni a un tercero?

Page 930: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 929

Ejemplos de protocolos criptográficos (3)

5.- El problema del juego de póker mental o por teléfono¿Cómo permitir que dos o más usuarios puedan jugar a través de la red un juego de póker -o cualquier otro- si no están físicamente en una misma mesa de juego y asegurando, al mismo tiempo, que ninguno de ellos va a hacer trampa?

6.- El problema de la división de un secreto o del umbral

Si tenemos un secreto único y por tanto muy vulnerable,¿cómo permitir que ese secreto se divida en n partes, de forma que juntando k < n partes sea posible reconstruirlo y, en cambio, con k-1 partes imposible su reconstrucción?

Page 931: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 930

Ejemplos de protocolos criptográficos (4)

7.- El problema del esquema electoral o voto electrónico¿Cómo realizar unas elecciones a través de una red, de forma que pueda asegurarse que el voto es único y secreto, que los votantes y mesas estén autenticados, y se pueda comprobar que el voto se contabiliza de adecuadamente en el cómputo?

8.- El problema de la transmisión por canales subliminalesDos usuarios desean intercambiar información a través de un tercero del cual desconfían. ¿Cómo pueden hacerlo sin cifrar la información de forma que este tercero sólo vea un mensaje con texto en claro aparentemente inocente?

Page 932: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 931

Ejemplos de protocolos criptográficos (5)

9.- El problema del millonarioDos usuarios desean conocer cuál de los dos tiene más dinero en su cuenta corriente. ¿Cómo pueden hacerlo de forma que, una vez terminado el protocolo, ambos sepan quién de los dos es más rico sin por ello desvelar el dinero que tiene el otro?

10.- El problema del correo electrónico con acuse de recibo¿Cómo hacer que una vez recibido un correo electrónico, éste sólo pueda ser leído (abierto) si el receptor envía, con anterioridad al emisor, un acuse de recibo como sucede de forma similar con el correo ordinario certificado?

Page 933: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 932

El protocolo de firma ciegaSupongamos que Adela desea que Benito le firme algo pero sin queBenito se entere de qué es lo que está firmando. En este caso Benito actúa como un ministro de fe, autenticando a Adela.Protocolo:

Adela pone un documento dentro de un sobre.Adela cierra el sobre y se lo envía a Benito.Benito firma el sobre autenticando a Adela y se lo devuelve.Adela abre el sobre y demuestra que Benito al firmar en el sobrecerrado también ha firmado el documento que estaba en su interior.

En el anterior algoritmo, si Benito necesita una comprobación de la identidad de Adela, ésta sencillamente incluye una firma digital suya en el sobre que le permita a Benito comprobar su autenticidad.

http://www.di.ens.fr/~pointche/Documents/Papers/2003_joc.pdf

Page 934: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 933

Algoritmo de firma ciega RSA (Chaum)

Adela desea que Benito le firme un documento MAdela (A) conoce las claves públicas de Benito (B: nB, eB)A elige un coeficiente de ceguera k de forma que se cumpla mcd (k, nB) = 1, calcula k-1 = inv (k, nB) y luego enmascara su mensaje mediante la siguiente operación:

tA = M ∗ keB mod nB → y lo envía a BB firma el valor: tB = tA

dB mod nB → y lo envía a AA quita la máscara haciendo s = tB ∗ inv (k, nB) mod nBEl resultado es que A tiene MdB mod nB, es decir la firma de B del documento M, una firma ciega sobre M.

Comprobación: tB = (M ∗ keB)dB mod nB = MdB ∗ k mod nBLuego: [MdB ∗ k ∗ inv (k, nB)] mod nB = MdB mod nB

Page 935: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 934

Ejemplo de algoritmo de firma ciega

Adela (A) desea que Benito (B) le firme el mensaje M = 65

Claves públicas de B: nB = 299, eB = 7

Clave privada y datos de B: pB = 13; qB = 23; φ(nB) = 264, dB = 151

A elige k / mcd (k, nB), por ejemplo k = 60. Luego inv (k, nB) = 5

A enmascara el mensaje: tA = M ∗ keB mod nB = 65 ∗ 607 mod 299

A envía a B: tA = 65∗226 mod 299 = 39

B firma tA con clave privada: tB = tAeB mod nB = 39151 mod 299 = 104

A quita la máscara: s = tB ∗ inv (k, nB) = 104 ∗ 5 mod 299 = 221

Este valor (221) es el mismo que se obtendría si B firmase su con clave privada el mensaje M, es decir 65151 mod 299 = 221

Page 936: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 935

Transferencia inconsciente o trascordada

Algoritmo de TI propuesto por Michael Rabin en 1981:• Un usuario A transfiere a un usuario B un dato o

secreto con un cifrado probabilístico del 50%.• El usuario B recibe el dato y tiene una probabilidad

del 50% de descubrir el secreto. Una vez que ha recibido el dato, B sabe si éste es el secreto o no.

• No obstante, el usuario A no tiene forma de saber si el usuario B ha recibido el secreto o no.

Esta incertidumbre mutua forzará a los protagonistas a que terminen el protocolo sin hacer trampas.

Page 937: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 936

Algoritmo de TI de Rabin (1)

Paso 1º A elige dos primos (p y q), calcula n = p∗q y envía el valor n a B.

Paso 2º B elige un número aleatorio x del CCR(n) de forma que que mcd (x,n) = 1, y devuelve a Ael valor K = x2 mod n.

Paso 3º A calcula las cuatro raíces de x2 mod n y envía a B una de ellas. Las raíces de x2 mod n serán: x, n-x, y, n-y. Sólo A puede hacerlo porque conoce los valores de p y q.

Paso 4º B intenta descubrir el valor de p o q.

Page 938: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 937

Conclusión del algoritmo de TI de Rabin

Si B recibe x o n-x no será capaz de encontrar p o q.No tiene más información que la que tenía porque: x y n-x son valores que conoce (B ha elegido x).

Si B recibe y o n-y, podrá encontrar p o q.En este caso, como x2 mod n = y2 mod n, entonces:

☺ (x2 - y2) mod n = (x+y)(x-y) mod n = 0Luego (x+y)(x-y) = k∗n y se cumplirá que:

p = mcd (x+y, n) yq = mcd (x-y, n)

Para entenderlo mejor ... veamos un ejemplo

Page 939: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 938

Ejemplo de algoritmo de TI de Rabin (1)

A Adela tiene como números secretos p y q, valores que corresponden a la factorización del valor n.

B Benito conoce el valor n y deberá descubrir, a partir del protocolo de transferencia inconsciente, p o q.

Ejemplo con valores:Sea p = 7; q = 13. Luego, n = p∗q = 7∗13 = 91.1.- A envía a B el valor n = 91.2.- B elige al azar del CCR(91) el valor x = 15 y calcula

K = 152 mod 91 = 225 mod 91 = 43. Se lo envía a A.3.- A recibe K = 43 y calcula las 4 raíces de x2 mod n.

Page 940: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 939

Cálculo de raíces de la TI de Rabin

A calcula las dos raíces de x2 mod n = K de en p y q:x1

2 = K mod p = 43 mod 7 = 1 ⇒ x1 = 1x2

2 = K mod q = 43 mod 13 = 4 ⇒ x2 = 2Con estos valores usa ahora el Teorema del Resto Chino

Si no recuerda el Teorema del Resto Chino, repase el archivo de matemáticas.

Teníamos que: x1 = 1 y x2 = 2.

Aplicando entonces la ecuación del TRC:

No siempreserá tan fácil el cálculo deestas raíces

como se verá más adelante

Page 941: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 940

Aplicación del TRC en la TI de Rabiny1 = inv (n/p, p) = inv (91/7, 7) = inv (13,7) ⇒ y1 = 6y2 = inv (n/q, q) = inv (91/13, 13) = inv (7,13) ⇒ y2 = 2

x = [(n/p)∗y1∗x1 + (n/q)∗y2∗x2] mod n∴ x = (13∗6∗x1 + 7∗2∗x2) mod 91

Luego para todas las combinaciones xi, p y q se tiene:

{x1, x2} ⇒ [1,2] ⇒ x = 15{x1, q-x2} ⇒ [1,13-2] = [1,11] ⇒ x = 50{p-x1, x2} ⇒ [7-1,2] = [6,2] ⇒ x = 41{p-x1, q-x2} ⇒ [7-1,13-2] = [6,11] ⇒ x = 76

☺ 152 mod 91 = 502 mod 91 = 412 mod 91 = 762 mod 91 = 43.☺ Además se cumple que 15 + 76 = 91 = n y 50 + 41 = 91 = n.

Page 942: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 941

Conclusión del algoritmo de TI de Rabin

A envía a B cualquiera de estos cuatro valores:15, 50, 41, 76.

• Si B recibe el número 15 (el valor que había enviado a A) o bien n-15 = 91-15 = 76 (que llamaremos valores x) no tiene más datos que los que tenía al comienzo del protocolo y no podrá factorizar n.

• Si B recibe cualquiera de los otros dos valores enviados por A(50 ó 41) valores que llamaremos y, podrá factorizar n usando la expresión mcd (x+y, n) con x, precisamente el valor elegido por B al comienzo del protocolo, es decir 15.

• Si y = 50 ⇒ mcd (50+15, 91) = mcd (65, 91) = 13 q = 13

• Si y = 41 ⇒ mcd (41+15, 91) = mcd (56, 91) = 7 p = 7

Page 943: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 942

Elección de p y q en algoritmo de Rabin

Para facilitar el cálculo de las raíces de x2 mod p y x2 mod q, el usuario A elegirá los valores de p y q de forma que cumplan:

El valor (p+1) sea divisible por 4.El valor (q+1) sea divisible por 4.

Si x2 mod p = a mod p ⇒ dos soluciones: x1 y (p – x1)Si x2 mod q = a mod q ⇒ dos soluciones: x2 y (q – x2)Estas soluciones se obtienen aplicando el TRC, no obstante si (p+1) es divisible por 4 entonces para este primo p si x = a(p+1)/4 se cumple:(a(p+1)/4)2 mod p = a(p+1)/2 mod p = a(a(p-1)/2) mod p = aEsto es válido porque : a(p-1)/2 mod p = 1. Lo mismo sucede con q. Luego: x1 = a(p+1)/4 mod p y x2 = a(q+1)/4 mod q

Page 944: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 943

Problema lanzamiento de la moneda (1)

Algoritmo propuesto por Mario Blum en 1982.Se trata de resolver una apuesta entre dos personas A y B distantes entre sí mediante el lanzamiento de una moneda (cara o cruz).

Situaciones si A lanza la moneda al aire:Caso 1

1º A lanza la moneda.2º B hace su apuesta y se lo dice a A.3º A le dice a B que ha salido “justo lo contrario”

... independientemente de lo que haya salido.En este caso el usuario A hace trampa ...

A

Page 945: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 944

Problema lanzamiento de la moneda (2)

Caso 21º A lanza la moneda. 2º B hace su apuesta y se lo dice a A.3º No sale lo apostado por B y A se lo notifica.4º B se desmiente y dice que “esa era su apuesta”.

Ahora es el usuario B quien hace trampa ...

B

Si A y B están distantes y no hay un testigo de fe, ¿cómopuede desarrollarse el algoritmo para que ninguno de los

dos pueda hacer trampa y, si lo hace, el otro lo detecte?

Esquema de Blum

Page 946: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 945

El problema de la moneda según Blum

Soluciones al problema del lanzamiento de la moneda:

• Usar el protocolo de la transferencia inconsciente de Rabin con probabilidad del 50% ya visto, o bien...

• Usar el Esquema General de Blum:

1º A partir de un conjunto de números que la mitad son pares y la otra impares y una función unidireccional f : x→y, el usuario A elige un valor x, calcula y = f (x) y lo envía a B.

2º El usuario B apuesta por la paridad de x.3º A le muestra a B el verdadero valor de x y su paridad.

Page 947: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 946

Condiciones del esquema general de Blum

• B tendrá igual probabilidad de recibir un número par o impar.

• A deberá tener una probabilidad igual (50%) de recibir una apuesta par o impar por parte B.

• Ninguno de los dos podrá hacer trampa.

¿Búsqueda de esa función f?

Antes deberemos explicar qué se entiende por restos cuadráticos y enteros de Blum

Page 948: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 947

Restos cuadráticos de Blum

Buscamos una función unidireccional con trampa que cumpla las características del protocolo anterior.El valor a es un resto cuadrático de Blum R2 mod n si:

x2 mod n = asiendo mcd (a,n) = 1

¿Algún problema? Sí ⇒ No sigue la paridad deseada.Por ejemplo, el resto cuadrático R2 = 4 en mod 11 se obtiene para x = 2 (par) y x = 9 (impar) ya que:

22 mod 11 = 4 mod 11 = 4 y 92 mod 11 = 81 mod 11 = 4

solución

Page 949: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 948

Enteros de Blum

Un entero de Blum es un número resultado del producto de dos primos p y q, ambos congruentes con 3 módulo 4.En este caso se cumplirá que:y = x2 mod n mantendrá la paridad con z = y2 mod n ∀ x ∈ Zn

Ejemplo: sea n = 11∗19 = 209 y el valor x = 2411 mod 4 = 3; 19 mod 4 = 3 (cumplen congruencia 3 mod 4 )

y = x2 mod n = 242 mod 209 = 576 mod 209 = 158z = y2 mod n = 1582 mod 209 = 24.964 mod 209 = 93

Como se observa, en este caso y es par y z es impar.

Luego, para todos los restos principales de y = 158 (par) que se obtengan con valores de x diferentes, el resto cuadrático z2 será siempre el valor 93 (impar).

Page 950: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 949

Paridad en enteros de Blum

Es importante recalcar que:

• Existirá igual número de soluciones y (pares o impares) que de soluciones z (pares o impares).

• Esto no sucederá con enteros que no sean de Blum.• Por lo tanto, esta igualdad de paridad en los valores de

los restos de z y de y, hará que desde el punto de vista del usuario B que recibe como dato el valor z o resto R2 enviado por A, exista una equiprobabilidad.El siguiente cuadro indica la paridad de R2 para algunos módulos enteros y no enteros de Blum.

Page 951: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 950

Ejemplo de paridad en enteros de Blum

n p q y (pares) y (impares) z (pares) z (impares)

21 3 7 10 10 10 10

33 3 11 12 20 12 20

57 3 19 24 32 24 32

69 3 23 36 32 36 32

77 7 11 36 40 36 40

Paridad de elementos de R2 para módulos enteros de Blum

Observe que se obtiene igual cantidad de valores y pares que de z pares. De la misma forma, se obtiene igual cantidad de

valores y impares que de z impares.

Page 952: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 951

Ejemplo de paridad en no enteros de Blum

n p q y (pares) y (impares) z (pares) z (impares)

15 3 5 8 6 6 8

35 5 7 14 20 8 26

39 3 13 22 16 16 22

Paridad de elementos de R2 para módulos no enteros de Blum

En este caso no se obtienen cantidades iguales de valores y, z.

Como ejercicio, compruebe que los números 21, 33, 57, 69 y 77 del ejemplo anterior son enteros de Blum y que, por el

contrario, 15, 35 y 39 no lo son.

Page 953: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 952

El algoritmo de Blum

1) A elige dos primos p y q de forma que n = p∗q es un entero de Blum (p y q son congruentes con 3 mod 4)

2) A elige un elemento x de Zn y calcula y = x2 mod n. Luego calcula z = y2 mod n, valor que envía a B.

3) B recibe z y apuesta por la paridad del valor y.4) A le informa a B si ha acertado o no en su apuesta. Le

muestra también el valor x elegido y el valor de y. Además le comprueba que n es un entero de Blum.

5) B comprueba que y = x2 mod n y que z = y2 mod n.6) A y B han actuado con una probabilidad del 50% en los

pasos 2 y 3, respectivamente.

http://zoo.cs.yale.edu/classes/cs467/2005f/course/lectures/ln20.pdf

Page 954: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 953

Ejemplo del algoritmo de Blum

Sean los primos p = 7 y q = 19 Luego, n = p∗q = 7∗19 = 133Comprobación de que n = 133 es un entero de Blum:

7 mod 4 = 3; 19 mod 4 = 3 • A elige el valor x = 41 y calcula:

– y = x2 mod n• y = 412 mod 133 = 1.681 mod 133 = 85

– z = y2 mod n• z = 852 mod 133 = 7.225 mod 133 = 43

• A envía a B el valor z = 43.• B debe apostar por la paridad de y.

Page 955: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 954

Conclusión del ejemplo de Blum

Situación 1 (B acierta)• Si B acierta y dice que y es impar, A no puede negarle que ha

ganado. A debe mostrarle a B los valores x e y. Además debe demostrarle a B que n era un entero de Blum.

Situación 2 (B no acierta)• Si B no acierta y dice que y es par, A le dice a B que ha

perdido, le demuestra que n era un entero de Blum y le muestra el valor x elegido así como el valor y.

Compruebe que a iguales valores de resto principal y resto cuadrático se llega para x = 22, x = 92 y x = 111. Es decir, si se recibe z = 43 (impar) la única posibilidad es que el valor de y sea 85 (impar) y que A haya elegido como valor x alguno de éstos: 22, 41, 92 ó 111.

Page 956: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 955

La firma de contratos

Dos personas desean firmar un contrato sin un ministro de fe.

- Deben cumplirse dos condiciones:• Que los firmantes queden obligados a culminar la

firma sólo a partir de un punto del protocolo. Esto se conoce como compromiso de los contratantes.

• Que la firma no pueda falsificarse y que, además, pueda ser comprobada por la otra parte.

Un posible algoritmo

Page 957: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 956

Algoritmo básico de firma de contratos (1)

1. El usuario A elige dos claves iA y jA en un sistema de clave pública y calcula sus claves privadas iA-1 y jA

-1.2. El usuario B elige una clave secreta KB.3. A envía a B sus dos claves públicas iA y jA.4. B elige al azar una de las dos claves recibidas y con ella

cifra su clave KB, enviando el resultado al usuario A.5. A elige al azar una de sus dos claves privadas iA-1 y jA

-1 y descifra con dicha clave el valor recibido en el punto 4.

6. A cifra el primer bloque del mensaje de firma usando el valor elegido en el punto 5 como clave y lo envía a B.

7. B descifrará con la clave recibida el bloque de firma.

Page 958: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 957

Algoritmo básico de firma de contratos (2)

Observe que los siete pasos anteriores corresponden

básicamente al algoritmo de transferencia inconsciente entre los usuarios A y B.

Finalización del protocolo

8. A repite la operación de los pasos 5 y 6 para cada uno de los bloques de su firma y B el paso 7.

9. Terminados los bloques de su firma, A repite el paso 6 utilizando ahora su otra clave privada y B el paso 7.

Page 959: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 958

Algoritmo básico de firma de contratos (3)

Si A y B han elegido al azar la misma clave con una probabilidad del 50% para cada uno, B descifrará un mensaje con sentido en la primera vuelta. En caso contrario, B recibe un texto sin sentido y deberá esperar hasta recibir el último bloque de la segunda vuelta para obtener el texto en claro.

Sin embargo, A no tiene cómo saber en cuál de los dos pasos (en la primera o la segunda vuelta) ha logrado Bdescifrar el criptograma y obtener un texto con sentido lo que fuerza a ambas partes a terminar el algoritmo.

Page 960: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 959

Firma de contratos: algoritmo de Even (1)

En el año 1985 Even, Goldreinch y Lempel proponen el uso de sistemas de cifra simétricos para la firma de contratos.

1. A elige un conjunto de 2n claves en un sistema simétrico: C1, C2, ..., Cn, Cn+1, ..., C2n. Las claves se tomarán como parejas, esto es (C1, Cn+1), (C2, Cn+2), ..., (Cn,C2n) aunque no tengan ninguna relación entre sí.

2. A cifra un mensaje estándar MA conocido por B con 2n claves EC1(MA), EC2(MA), ..., EC2n(MA) y le envía a Bordenados los 2n criptogramas.

3. A se comprometerá más adelante a la firma del contrato si B puede presentarle para algún i el par (Ci, Cn+i).

Page 961: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 960

Firma de contratos: algoritmo de Even (2)

4. B elige también un conjunto de 2n claves de un sistema simétrico: D1, D2,..., Dn, Dn+1, ..., D2n y las claves se tomarán como parejas (D1, Dn+1), (D2, Dn+2), ..., (Dn,D2n). B cifra un mensaje estándar MB conocido por A con las 2n claves ED1(MB), ED2(MB), ..., ED2n(MB) y envía a A 2n criptogramas ordenados. B se comprometerá a la firma en los mismos términos que lo hizo A en el punto anterior.

5. A envía a B cada par (Ci, Cn+i) ordenados mediante una transferencia inconsciente; es decir enviando Ci o Cn+icon igual probabilidad. Lo mismo hace B enviando a Aordenadamente uno de los dos valores del par (Di, Dn+i).En este punto A y B tienen la mitad de las claves del otro.

Page 962: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 961

Firma de contratos: algoritmo de Even (3)

6. Si la longitud de cada clave Ci o Di es de L bits, A y Brealizan el siguiente bucle con 1 ≤ i ≤ 2n para la clave Ciy Di que no han usado en los pasos anteriores:

for 1 ≤ j ≤ LbeginA envía a B el bit jésimo de todas esas claves CiB envía a A el bit jésimo de todas esas claves Di

end (Esto se conoce como compromiso bit a bit)7. Al realizar el bucle completo, A y B tienen las 2n claves

del otro y se supone firmado el contrato.A y B pueden generar mensajes del tipo “Esta es mi mitad izquierda i de mi firma” para cifrar con la clave Ci y Di y “Esta es mi mitad derecha i de mi firma” para cifrar con la clave Cn+i y Dn+i

Page 963: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 962

¿Cómo podemos estar seguros que un mensaje enviado por correo electrónico ha sido abierto y su contenido conocido sólo por su destinatario autorizado?

Los sistemas actuales de e-mail permiten emitir desde el cliente de correo del receptor un acuse de recibo.

No obstante, esto sólo significa que “alguien” en extremo receptor desde el buzón de entrada pincha

sobre un mensaje nuevo y a la pregunta ¿enviar acuse recibo al emisor? “pisa” Enter eligiendo la opción Sí.

¿Será para mí ese e-mail? Para evitar estas situaciones podemos

usar el protocolo del correo certificado

El correo electrónico certificado

Page 964: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 963

El correo electrónico certificado

• El usuario A desea enviar un mensaje electrónico como correo certificado al usuario B.

• El usuario A le descubre el mensaje (le envía la clave) sólo después de que el usuario B le envíe el acuse de recibo correspondiente. De la misma manera que actuamos ante un correo certificado: nos entregan “la multa” si primero firmamos.

• El algoritmo será muy similar al anterior de firma de contratos propuesto por Even.

Veamos una implementación del algoritmo

Page 965: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 964

Un algoritmo de correo certificado (1)• A elige de forma aleatoria n+1 claves (a0, a1, a2, ... an) de un sistema

de cifra simétrico. Las claves ai no están relacionadas.• Con la clave a0 A cifrará el documento o carta, C0 = Ea0(M) y se lo

envía a B.• Las claves (a1, a2, ... an) serán la parte izquierda de la clave KIAi.• A calcula an+i = a0⊕ai para 1 ≤ i ≤ n, obteniendo así la parte derecha

de la clave (an+1, an+2, ... a2n) es decir KDAi.• A y B se ponen de acuerdo en un mensaje estándar de validación, por

ejemplo V = “Mensaje de Validación”.• A cifra el mensaje de validación V con las 2n claves secretas, es decir

n claves KIAi y n claves KDAi.• Cifrado de validación de la parte izquierda: VIAi = EKIAi(V).• Cifrado de validación de la parte derecha: VDAi = EKDAi(V).• A envía a B los pares ordenados (VIAi, VDAi) para i = 1, 2, ... n.

Page 966: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 965

Un algoritmo de correo certificado (2)

• B genera de forma similar n parejas de claves KIBi y KDBi, 2n claves.• B genera n parejas de mensajes “Acuse de Recibo de la parte i

Izquierda” (RIi) y “Acuse de Recibo de la parte i Derecha” (RDi).• B cifra las parejas (RIi, RDi) con un sistema simétrico usando las claves

KIBi y KDBi.• B envía a A las parejas ordenadas (IBi, DBi) = [EKIBi(RIi), EKDBi(RDi)].• Mediante una trasferencia trascordada A envía a B una de las dos claves

secretas (KIA1 o KDA1) y lo mismo hace B que envía a A (KIB1 o KDB1).• Este proceso se repite hasta que se envían los n valores de claves.• B usa las claves enviadas por A en el paso anterior para comprobar que

al descifrar DKIAi(VAi) o DKDAi(VAi) obtiene el Mensaje de Validación.• A usa las claves enviadas por B en el paso anterior para comprobar que

al descifrar DKIBi(IBi) o DKDBi(IBi) obtiene siempre RIi o RDi.

Page 967: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 966

Un algoritmo de correo certificado (3)

• No pueden hacer trampa. A y B ya tienen información suficiente para demostrar ante un ministro de fe que el otro no ha seguido el protocolo.

• A y B se intercambian ahora bit a bit todos los bits de las claves deforma alterna. El primer bit de KIA1, el primer bit de KIB1, el primer bit de KIA2, el primer bit de KIB2, ... el primer bit de KDA1, etc.

• Este paso se conoce como compromiso bit a bit entre A y B.• A obtiene todas las claves de B y comprueba todos los Acuse de Recibo

pareados, la parte i Izquierda y su correspondiente parte i Derecha.• B obtiene todas las claves de A y comprueba que todos los envíos de A

contienen el Mensaje de Validación. A deberá mostrar todas sus claves a B para que B compruebe que A ha usado la función an+1 = a0 ⊕ ai.

• Como B tiene todas las claves de A calcula ahora a0 = KIAi ⊕ KDAi. Para ello cualquiera de las parejas de Acuse de Recibo son válidas.

• B descifra el criptograma Da0(C0) = M y recupera el mensaje .

Page 968: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 967

El protocolo del póquer mental (1)

♣♦♠♥ Se trata de encontrar un protocolo que permita el juego del póquer a través de una red de computadores. Debe asegurarse el juego limpio, sin trampas. Aunque el número de jugadores deberíaser 4, veremos un ejemplo sólo para dos jugadores. La condición necesaria es que el sistema de cifra sea conmutativo, es decir que permita DKB{EKA[EKB(x)]} = EKA(x). Un sistema podría ser Polighy Hellman con un único cuerpo p de cifra o Vigenère numérico.

1. A y B usan un sistema de cifra simétrica que tenga propiedades conmutativas, usando claves KA y KB respectivamente.

2. B cifra -acción mezcla- las 52 cartas (codificadas con un número aleatorio ci) con su clave secreta KB: EKB(ci) y las envía a A.

3. A elige al azar 5 valores y envía a B: EKB(cB1, cB2, cB3, cB4, cB5).

Page 969: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 968

El protocolo del póquer mental (2)

4. B recibe estos valores y los descifra con su clave secreta KB. Así obtiene: DKB[EKB(cB1, cB2, cB3, cB4, cB5)] = cB1, cB2, cB3, cB4, cB5. Estas cinco cartas cBi corresponden a la mano de B.

5. A elige otras cinco cartas de las 47 restantes, las cifra con su clave secreta KA y envía a B: EKA[EKB(cA1, cA2, cA3, cA4, cA5)].

6. B descifra con su clave secreta KB la cifra anterior y envía a A el resultado: EKA(cA1, cA2, cA3, cA4, cA5).

7. A descifra lo anterior con su clave secreta KA y obtiene su mano cAi: DKA[EKA(cA1, cA2, cA3, cA4, cA5)] = cA1, cA2, cA3, cA4, cA5.

8. Las restantes 42 cartas permanecerán en poder de A que es quien las reparte. Estas cartas siguen cifradas con la clave de B.

9. Si los jugadores desean cambiar algunas cartas, siguen el mismo procedimiento anterior.

Page 970: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 969

Protocolo de póquer mental con RSA (1)

En este caso se usará un sistema RSA en el que el módulo de trabajo n será compartido y el par de claves asimétricas de cada jugador, e y d, serán ambas secretas. Veamos un ejemplo para 4 jugadores.

1. El jugador A que repartirá las cartas, todas ellas codificadas con un número aleatorio ci, las mezclará cifrándolas con su clave pública eA: EeA[c1, c2, c3, ... c50, c51, c52] y las envía a B.

2. B elige cinco cartas, las cifra con su clave pública eB y devuelve a A : EeB{EeA[cB1, cB2, cB3, cB4, cB5]}.

3. A descifra lo recibido con su clave privada dA y se lo envía a B: EeB[cB1, cB2, cB3, cB4, cB5].

4. B descifra ahora con su clave privada dB lo recibido y se queda con su mano cBi = cB1, cB2, cB3, cB4, cB5.

Page 971: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 970

Protocolo de póquer mental con RSA (2)

5. El jugador B pasa las restantes 47 cartas al jugador C y se repiten los pasos 2 al 4 anteriores entre C y A, usando ahora las claves eC, dA y dC.

6. Terminado el paso 5, el jugador C tendrá entonces como mano cCi = cC1, cC2, cC3, cC4, cC5.

7. El jugador C pasa las restantes 42 cartas al jugador D y se repiten los pasos 2 al 4 entre D y A, usando ahora las claves eD, dA y dD.

8. Terminado el paso 7, el jugador D tendrá entonces como mano cDi = cD1, cD2, cD3, cD4, cD5.

9. El jugador D devuelve las 37 cartas que quedan y que están cifradas con su clave pública: EeD{EeA[c1, c2, c3, ... c36, c37]} al jugador A.

Page 972: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 971

Protocolo de póquer mental con RSA (3)

10. El jugador A elige 5 cartas entre las 37 y devuelve al jugador D: EeD{EeA[cA1, cA2, cA3, cA4, cA5]}.

11. El jugador D descifra con su clave privada dD lo recibido y envía a A: EeA[cA1, cA2, cA3, cA4, cA5].

12. El jugador A descifra con su clave privada dA lo recibido y se queda con su mano cAi = cA1, cA2, cA3, cA4, cA5.

13. Todos tienen su mano de juego. Las restantes 32 cartas quedan en poder de A cifradas por D y A: EeD{EeA[c1, c2, ... c31, c32]}.

14. Si un jugador X desea descarte, pide las cartas a A, elige las que desea, las cifra con su clave pública eX y se las devuelve a A, quien las envía a D para que descifre con su clave privada dD. D las devuelve a A para que descifre con su clave privada dA y A envía a X: EeX[cartas elegidas en su descarte].

Page 973: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 972

El canal subliminal

• Como ejemplo de canal subliminal, en un supermercado podrían incluir en la música ambiental una información no audible y que sólo nuestro subconsciente sea capaz de interpretar. No se extrañe de ello, este tipo de experimentos se han probado hace muchos años atrás.

• El concepto de canal subliminal fue propuesto por Gustavus Simmonsen 1983. Se conoce también como el problema de los prisioneros.

• Dos prisioneros cómplices de un delito son encarcelados en celdas separadas. Si entre ellos pueden intercambiarse mensajes a través de un carcelero que los puede leer, ¿cómo hacen para que esos mensajes en principio inocentes, lleven de forma subliminal un mensaje cifrado y que el carcelero sea incapaz de dilucidar ese secreto?

La técnica denominada esteganografía, hoy en día de moda, realiza una operación similar, normalmente ocultando un texto bajo una fotografía.

Page 974: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 973

El problema de los prisioneros

• El prisionero A genera un mensaje inocente M que desea enviar al prisionero B a través del guardia.

• Utilizando una clave secreta K acordada con anterioridad, el prisionero A “firma” el mensaje de forma que en esa firma se esconda el mensaje subliminal.

• El guardia recibe el mensaje “firmado” por A y como no observa nada anormal se lo entrega al prisionero B.

• El prisionero B comprueba la firma de su compañero A, autentica el mensaje y lee la información subliminal en M.

Existen varios esquemas de uso del canal subliminal para proteger la información, entre ellos el propio esquema de Simmons basado en la factorización de un número grande n compuesto por tres primos p, q y r. Habrá por tanto 23 = 8 raíces de las cuales sólo algunas se usarán como valores válidos y otras no. Hace uso del Teorema del Resto Chino.

Page 975: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 974

Transferencia con conocimiento nulo TCN

La cueva de Alí Babá

A

B

C DPuerta de la cueva: palabra secreta

Algoritmo:1. Mortadelo y Filemón se acercan a la

cueva en el punto A.2. Mortadelo se adentra en la cueva hasta

llegar al punto C o D.3. Filemón se acerca al punto B de la cueva

y le pide a Mortadelo que salga por la ladera derecha o izquierda, según desee.

4. Mortadelo satisface la petición de Filemón y sale por la ladera que éste le ha solicitado, usando si es menester la palabra secreta para abrir la puerta.

5. Se repite el proceso desde el comienzo hasta que Filemón se convence que Mortadelo conoce la palabra secreta.

Este modelo fue presentado por J. Quisquater y L. Guillouen Crypto ‘89 para explicar el protocolo de transferencia con conocimiento cero o nulo.

ábrete sésamo

Page 976: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 975

Esquema de TCN de Koyama• A desea demostrar a B que conoce la clave secreta RSA de un tercer

usuario C, es decir dC. Como es lógico también conocerá pC, qC y φ(nC). Las claves públicas de C son nC y eC que conocen tanto A como B.

• A y B se ponen de acuerdo y eligen dos valores aleatorios k y m con la condición de que k∗m = eC mod φ(nC).

• Como A debe mantener en secreto el valor de φ(nC) le propone a B que en cada ejecución del algoritmo elija un número m primo por lo que Acalcula k = [{inv (m, φ(nC)}∗eC] mod φ(nC).

• A propone a B un texto aleatorio M o bien A y B generan este texto usando, por ejemplo, un algoritmo de transferencia trascordada.

• Usando la clave privada dC de C, ahora A calcula C = MdC mod nC. Luego calcula X = Ck mod nC y envía el valor X a B.

• B recibe X y comprueba si Xm mod nC es igual al texto M. Si es así, quiere decir que A ha usado dC, la clave privada de C.

• Se repite el proceso las veces que haga falta hasta que B acepte que Aconoce clave privada de C.

Page 977: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 976

¿Por qué funciona el esquema de Koyama?

Por simplicidad supondremos que los datos de C no tienen subíndice:

1. A conoce n, e, d, p, q, φ(n) y el texto M; B conoce n, e y el texto M.2. B elige un primo m y se lo envía envía a A.3. A calcula k = [{inv (m, φ(n)}∗e] mod φ(n).4. A calcula C = Md mod n y X = Ck mod n = Mdk mod n y envía este

valor X a B.5. B recibe X y calcula Xm mod n = M(dk)m mod n = Mkm∗d mod n, pero

como k∗m = e mod φ(n) entonces Mkm∗d mod n = Me∗d mod n = M.6. La única posibilidad para que B recupere el texto M en el paso 5, es

que A haya usado en la cifra del paso 4 la clave privada d.7. Si B no se convence en el primer intento, ambos repiten el algoritmo

con valores primos m distintos en cada iteración, hasta que se cumpla un umbral ante el que B acepte que A está en posesión de ese secreto.

Page 978: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 977

Ejemplo del esquema de TCN de Koyama• Supongamos que A desea demostrar a B que conoce la clave privada de

C. Los valores públicos de C son n = 77, e = 13.• El mensaje M acordado por A y B es la palabra PADRINO con la

codificación que se muestra a continuación:A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

• Supongamos que B elige como valor aleatorio m = 29.• A calcula k según el algoritmo de Koyama y para cada valor Mi del

mensaje (P = 18, A = 2, D = 5, etc.) calcula primero C = Mid mod n y

luego X = Ck mod n = 30, 39, 31, 27, 54, 36, 68 que envía a B.• B calcula 3029 mod 77, 3929 mod 77, 3129 mod 77, 2729 mod 77, 5429

mod 77, 3629 mod 77, 6829 mod 77 y obtiene la cadena de caracteres PADRINO.

• El protocolo puede repetirse para otros valores primos m que elija B y siempre se obtendrá como resultado el mismo mensaje M.

Page 979: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 978

Solución del ejemplo de TCN de Koyama• Como n = 77, es obvio que p = 7, q = 11, φ(n) = 60. Por lo tanto, puesto

que e = 13 entonces d = inv {e, φ(n)} = inv (13, 60) = 37.• M1 = 18; M2 = 2; M3 = 5; M4 = 20; M5 = 10; M6 = 15; M7 = 17.• C1 = 1837 mod 77 = 39; C2 = 237 mod 77 = 51; C3 = 537 mod 77 = 47;

C4 = 2037 mod 77 = 48; C5 = 1037 mod 77 = 10; C6 = 1537 mod 77 = 71;C7 = 1737 mod 77 = 52.

• k = [{inv (m, φ(n)}∗e] mod φ(n) = inv (29, 60)∗13 mod 60 = 17.• X1 = 3917 mod 77 = 30; X2 = 5117 mod 77 = 39; X3 = 4717 mod 77 = 31;

X4 = 4817 mod 77 = 27; X5 = 1017 mod 77 = 54; X6 = 7117 mod 77 = 36; X7 = 5217 mod 77 = 68. Luego X = 30, 39, 31, 27, 54, 36, 68.

• 3029 mod 77 = 18 = P; 3929 mod 77 = 2 = A; 3129 mod 77 = 5 = D2729 mod 77 = 20 = R; 5429 mod 77 = 10 = I; 3629 mod 77 = 15 = N6829 mod 77 = 17 = O.

En este ejemplo el valor de n es muy pequeño y resulta muy fácilromper la clave privada simplemente factorizando el módulo ☺.

Page 980: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 979

El voto electrónico o por ordenador

• Todos tenemos de una u otra forma una idea intuitiva, aunque quizás no completa, sobre cómo se desarrolla un proceso electoral.

• La pregunta es si es posible realizar este tipo de eventos desde Internet, lo que se conoce como esquema electoral.

• La respuesta es sí con la ayuda de técnicas y protocolos criptográficos aunque no se trata sólo de un problema de implementación técnica; es menester tener en cuenta otros factores importantes, a saber:

– Socio-políticos, económicos, jurídicos, legislativos...

Page 981: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 980

Definición de esquema electoral

“Un esquema de votación electrónica es una aplicación distribuida y constituida por un conjunto de mecanismos criptográficos y protocolos que, de forma conjunta, permiten que se realicen elecciones en una red de computadores, de forma segura, incluso suponiendo que los electores legítimos pueden tener un comportamiento malicioso.”

Andreu Riera Tesis Doctoral, Universidad Autónoma de Barcelona, España, 1999

Page 982: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 981

Requisitos de un esquema electoral (1)

Requisitos de un esquema electoral:

Sólo pueden votar quienes estén censados.El voto debe ser secreto.El voto debe ser único por cada votante.Se contabilizarán todos los votos válidos.El recuento parcial no debe afectar a votos

que se emitan con posterioridad.sigue

Page 983: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 982

Requisitos de un esquema electoral (2)

Requisitos de un esquema electoral:

Cada votante podrá comprobar que su voto ha sido tenido en cuenta en el escrutinio.

Esto último es muy importante

Y, además:

Se debe proteger el proceso contra ataques en red.El proceso debe ser factible, práctico y dentro de lo posible de uso universal.

Page 984: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 983

Primera aproximación del voto electrónico

MCV = Mesa Central de VotaciónEl votante cifra su voto con la clave pública de MCV.El votante envía su voto a la MCV.La MCV descifra el voto y lo contabiliza.La MCV hace público el resultado.

¿Qué problemas presenta este esquema? TODOS... La MCV no sabe de dónde vienen los votos, si éstos son válidos o no y si alguien vota más de una vez. Además puede conocer la identidad del votante por lo que se vulnera el secreto del voto. Lo único que aquí se protege es el secreto del voto ante terceros.

Page 985: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 984

Segunda aproximación del voto electrónico

MCV = Mesa Central de VotaciónEl votante firma su voto con su clave privada y lo cifra luego con la clave pública de MCV.El votante envía su voto a la MCV.La MCV descifra el voto, lo contabiliza y hace público el resultado.

¿Qué problema tenemos ahora? En este nuevo esquema se satisface que cada votante autorizado vote una sola vez, no obstante seguimos vulnerando el secreto del voto ante la MCV.

Page 986: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 985

Tercera aproximación del voto electrónico

El tercer esquema contempla dos mesas:• MCV = Mesa Central de Votación• MCL = Mesa Central de Legitimación

Evita que la MCV conozca a quién ha votado el votante, mediante un protocolo entre ambas, y además gestionan una lista de votantes censados.

MCV y MCL deben ser órganos independientes

Veamos cómo funciona este esquema

Page 987: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 986

Un protocolo de voto electrónico (1/5)

1. El votante A envía a la MCL el mensaje:Buenos días, soy A y vengo a votar.

2. La MCL verifica si A está censado. Si no es un votante legítimo rechaza la solicitud. Si es legítimo, le envía un número aleatorio de identificación único i(A) y le borra de la lista para impedir que vuelva a votar.

Características de i(A)

Toda la información irácifrada y firmada

Page 988: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 987

Un protocolo de voto electrónico (2/5)

¿Cuáles deben serlas característicasde este número

aleatorio?

Mucho mayor que el número de votantes.Por ejemplo, para unmillón de votantes, unos 10100 números.

I(A)

Page 989: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 988

Un protocolo de voto electrónico (3/5)

3. La MCL envía a la MCV la lista de números de validación.

4. El votante A escoge una identificación secreta s(A) y envía a la MCV el mensaje formado por el trío [i(A), v(A), s(A)] es decir:

• su identificación i(A)• su voto v(A)• su número secreto s(A)

Puede generarlo internamente con su

sistema de cifra. Serátambién un valor de

muchos dígitos.

Page 990: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 989

Un protocolo de voto electrónico (4/5)

5. La MCV verifica que el número i(A) de identificación se encuentra en el conjunto N de los números censados y cruza los datos para evitar que se vote más de una vez. Quita i(A) del conjunto N y añade s(A) al conjunto de electores que han optado por la opción v(A).

6. La MCV contabiliza los votos y hace público el resultado, junto con la lista de números secretos s(A) que han votado a la opción v(A) ... luego

Page 991: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 990

Un protocolo de voto electrónico (5/5)

☺ Cada elector puede comprobar si su voto ha sido contabilizado sin hacer pública su opción.

¿Qué pasa si MCV y MCL no son independientes?

Si las dos mesas, MCV y MCL, no tienen la idoneidad y la integridad que se presume, la solución está en el uso de una diversidad de esquemas más desarrollados que evitan esta anomalía mediante protocolos, entre ellos ANDOS (All-or-Nothing Disclosure Of Secrets) Distribución Anónima de Números de Validación, pero esto ya se escapa del objetivo de este libro.

Page 992: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 991

Otros esquemas de mesas electorales

Hay muchos otros esquemas con dos mesas, una única mesa e incluso ninguna, cada uno con sus características propias. Entre ellos tenemos:

- Modelo de Cohen y Fisher (1985)- Modelo de Fujioka y otros (1992)- Modelo de Park y otros (1993)- Modelo de Sako y Killian (1995)- Modelo de Borrel y Rifà (1996)

Observe que son modelos y esquemas muy recientes.

Page 993: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 992

Estado del arte en voto electrónico

• Existen diversos modelos y esquemas, algunos de ellos probados con éxito con un número reducido de electores.

• No está todavía bien solucionado el problema de la protección física y lógica de la una red como Internet ante ataques masivos, denegación de servicio, etc. Es uno de los problemas al que se enfrentan estos esquemas, su difícil escalabilidad. Noobstante, sí se puede asegurar la factibilidad de un proceso de voto telemático práctico y seguro en cuanto a privacidad y autenticidad.

• Para mayor información sobre voto telemático:

http://vototelematico.diatel.upm.es/

Fin del capítulo

Page 994: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 993

Cuestiones y ejercicios (1 de 4)1. ¿Qué diferencia hay entre un protocolo de red como por ejemplo

TCP/IP con un protocolo criptográfico?2. En una transferencia inconsciente de Rabin, A y B se intercambian

lo siguiente. A envía a B el número compuesto n = 55, B elige elvalor x = 9 y envía x2 mod n a A. ¿Qué valores de los 4 que puede devolver A a B permiten a este último factorizar el cuerpo n?

3. ¿Qué sucede si en el ejemplo anterior B elige x = 10? 4. ¿En el ejemplo anterior, están bien elegidos por A los valores de p y

q? Qué valores usaría si p y q fuesen números mayores que 10?5. Presente una solución al problema del lanzamiento de la moneda a

través del esquema de transferencia inconsciente de Rabin.6. Calcule todos los valores de x2 mod 13. Sea a = 2, 3, 4, 5, 6. ¿Cuáles

son restos cuadráticos de Blum en el cuerpo n = 13?, ¿por qué?

Page 995: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 994

Cuestiones y ejercicios (2 de 4)

7. Para los restos cuadráticos encontrados en el ejercicio anterior, ¿se cumple la paridad en el valor de x? ¿Qué significa esto?

8. ¿Cuáles de los siguientes siete números compuestos son enteros de Blum: 69, 143, 161, 189, 319, 713, 1.333? ¿Justifíquelo?

9. Encuentre todos los restos de y, z para el entero de Blum n = 33.10. En un protocolo con enteros de Blum, A trabaja en n = 77 y elige el

valor x = 15. Calcula y = x2 mod n y luego z = y2 mod n. Envía el valor z a B. ¿Cuál es el escenario del protocolo y cómo trabaja?

11. ¿Qué sucede si en el esquema anterior de Blum el usuario B conoce el valor de los primos p y q? ¿Funciona así el protocolo?

12. En el algoritmo de firma de contratos con claves asimétricas y una clave simétrica, ¿cómo puede comprobar el usuario B que A está usando en cada vuelta una clave privada distinta y no hace trampa?

Page 996: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 995

Cuestiones y ejercicios (3 de 4)

13. ¿Cómo se entiende el compromiso de firma de A y B en el esquema de firma de contratos de Even?

14. En el esquema anterior de Even ¿qué relación tiene el compromiso bit a bit con el término correcto del protocolo? ¿Por qué están A y B obligados a terminar el protocolo hasta el último bit?

15. Se desea que el usuario B le firme de forma ciega al usuario A el mensaje M = 100. Si nB = 253, eB = 19 y el usuario A elige k = 25, realice y compruebe el protocolo de firma ciega.

16. ¿Para qué podría servir un protocolo como el de firma ciega?17. ¿Por qué decimos que el actual acuse de recibo de los clientes de

correo electrónico no corresponde a uno verdadero?18. En el algoritmo de correo con acuse de recibo, compruebe que B

obtiene la clave de descifrado del mensaje haciendo KIAi ⊕ KDAi.

Page 997: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 996

Cuestiones y ejercicios (4 de 4)

19. Generalice el póker mental con cifra simétrica para 4 jugadores.20. ¿Qué diferencia hay en cuanto a la elección de cartas de una mano

entre el esquema de póker mental con cifra simétrica y el esquema con cifra asimétrica? ¿Es esto un inconveniente o no?

21. En el esquema de Quisquater y Guillou de conocimiento nulo, si Mortadelo y Filemón repiten el protocolo 20 veces, ¿cuál es la probabilidad de que el primero engañe al segundo?

22. Usando el software Simulación de Fortaleza de Cifrados, repita el ejercicio de TCN de Koyama con n = 465.256.980.233 y e = 4.171. B elige el valor m = 131, el mensaje M es el mismo y se recibe:X1 = 394.106.275.745; X2 = 342.981.204.125; X3 = 49.911.481.740; X4 = 366.983.136.296; X5 = 56.903.681.682; X6 = 246.374.030.904; X7 = 254.152.395.874. ¿Qué valor tiene la clave privada d?

Page 998: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 19: Protocolos y Esquemas Criptográficos Página 997

Prácticas del tema 19Software Fortaleza: http://www.criptored.upm.es/software/sw_m001e.htm

1. Usando el software que se indica, compruebe los valores de los ejercicios presentados y resueltos en este capítulo.

2. Resuelva los ejercicios que se han propuesto en la sección anterior de este capítulo. Invéntese luego algunos ejemplos con números grandes.

3. Usando este software, compruebe que es posible realizar el protocolo del póquer mental mediante el algoritmo de Poligh-Hellman.

Software CripClas: http://www.criptored.upm.es/software/sw_m001c.htm

1. Usando el software CripClas compruebe que el sistema de Vigenère sirve para realizar el protocolo del póquer mental.

Nota: en este año 2006 ya estará disponible un software de prácticasespecífico para la resolución de algunos protocolos criptográficos.

Page 999: Seguridad Informatica

Capítulo 20Introducción a la Cifra con Curvas

Elípticas

Seguridad Informática y Criptografía

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 30 diapositivas

Dr. Josep María Miret BioscaUniversidad de Lleidav 4.1

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Curso de Seguridad Informática y Criptografía © JRA

Page 1000: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 999

Nota de agradecimiento del editor

• Este tema ha sido entregado para su inclusión en el libro electrónico por parte de mi colega y amigo Josep María Miret Biosca, Dr. en Matemáticas y experto en curvas elípticas e hiperelípticas. Josep es profesor de la Universidad de Lleida, en Catalunya, España.

• Si bien la cifra con curvas elípticas está experimentando últimamente un gran desarrollo, recuerde que lo que aquí se muestra es tan sólo una breve introducción al tema, con ciertas modificaciones con respecto a la documentación de la versión 4.0 del libro.

• Si está interesado en esta línea de investigación, podrá encontrar mucha información en Internet en estos enlaces en español e inglés.

http://www.matematica.udl.es/cas/professor.html?id=23

http://www.google.es/search?hl=es&q=criptografia+curvas+el%C3%ADpticas&meta=

http://www.google.es/search?hl=es&q=elliptic+curve+cryptography&meta=

Page 1001: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1000

Introducción

Page 1002: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1001

Curvas elípticas

Page 1003: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1002

Conjunto de puntos en una curva elíptica

Page 1004: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1003

Suma de puntos en una curva elíptica

Page 1005: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1004

Expresiones analíticas del punto suma

Page 1006: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1005

Múltiplos de un punto de una curva

Page 1007: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1006

Curvas elípticas sobre cuerpos finitos

Page 1008: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1007

Una curva sobre un cuerpo finito Fp

Page 1009: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1008

Criptosistemas con curvas elípticas

Page 1010: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1009

Criptosistema ElGamal elíptico

Page 1011: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1010

Cifrado ElGamal elíptico

Page 1012: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1011

Descifrado ElGamal elíptico

Page 1013: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1012

Ejemplo de cifrado con ElGamal elíptico

Page 1014: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1013

Ejemplo de descifrado con ElGamal elíptico

Page 1015: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1014

ElGamal elíptico vs ElGamal multiplicativo

Page 1016: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1015

Tamaños de clave

Page 1017: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1016

Dificultad del PLDE

Page 1018: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1017

Firma digital con curvas elípticas: ECDSA

Page 1019: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1018

Verificación de firma con ECDSA

Page 1020: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1019

Ejemplo generación de firma ElGamal

Page 1021: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1020

Ejemplo verificación de firma ElGamal

Page 1022: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1021

Curvas criptográficamente útiles

Page 1023: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1022

ECC challenges

Page 1024: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1023

ECC challenges por resolver

Page 1025: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1024

Notaciones usadas en los ECC challenges

Page 1026: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1025

Software libre para usar curvas elípticas

Fin del capítulo

Page 1027: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1026

Cuestiones y ejercicios (1 de 2)

Page 1028: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 20: Introducción a la Cifra con Curvas Elípticas Página 1027

Cuestiones y ejercicios (2 de 2)

Page 1029: Seguridad Informatica

Material Docente de Libre Distribución

Ultima actualización del archivo: 01/03/06Este archivo tiene: 78 diapositivas

Dr. Jorge Ramió AguirreUniversidad Politécnica de Madrid

Seguridad Informática y Criptografía

Curso de Seguridad Informática y Criptografía © JRA

v 4.1

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos

Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los

créditos del autor. Queda por tanto prohibida su venta, excepto la versión 3.1 a través del Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España.

Page 1030: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1029

Bibliografía recomendada en castellano (1)

Pastor, José; Sarasa, Miguel AngelCRIPTOGRAFÍA DIGITAL. FUNDAMENTOS Y APLICACIONESPrensas Universitarias de ZaragozaAño 1998 (597 páginas)Extenso y completo texto sobre técnicas criptográficas modernas, con una buena cantidad de ejemplos y profusión de tablas con datos de interés. Destacan los capítulos de cifra con clave secreta, en donde se estudian más de una docena de criptosistemas, los de clave pública y su aplicación en firmas digitales y un capítulo dedicado a protocolos criptográficos. En particular, están muy bien tratados los apéndices con temas matemáticos así como los algoritmos de factorización y del logaritmo discreto, algo no muy común y que se agradece. Para el buen seguimiento es necesario contar con una buena base matemática.

Page 1031: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1030

Bibliografía recomendada en castellano (2)

Fúster, Amparo; De la Guía, Dolores; Hernández, Luis; Montoya, Fausto; Muñoz, JaimeTÉCNICAS CRIPTOGRÁFICAS DE PROTECCIÓN DE DATOS. TERCERA EDICIÓNEditorial Ra-MaAño 2004 (416 páginas)Detallado y actualizado resumen de las técnicas de cifra modernas, profundizando en los sistemas de clave secreta con cifra en flujo y en bloque, de clave pública y sus aplicaciones en redes. De especial interés resulta el capítulo dedicado a protocolos criptográficos y sus apéndices en donde explica los métodos matemáticos usados en criptografía y nociones sobre complejidad computacional. La edición incluye además una interesante colección de problemas y sus soluciones en un CD ROM.

Page 1032: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1031

Bibliografía recomendada en castellano (3)

Caballero, PinoINTRODUCCIÓN A LA CRIPTOGRAFÍA. SEGUNDA EDICIÓNEditorial Ra-Ma, Textos Universitarios, MadridAño 2002 (160 páginas)Es éste un libro de introducción a las técnicas criptográficas que presenta estos temas bajo una orientación matemática clara y precisa. Corresponde a una actualización de la primera edición de 1996 en la que trata los temas de criptografía teórica, criptografía de clave secreta y pública, problemas de autenticación y accesos y algunas aplicaciones criptográficas. Para un buen seguimiento de la lectura y aprovechamiento de los temas tratados en él, en algunos apartados es recomendable contar con una cierta base de conocimientos en matemáticas a nivel universitario.

Page 1033: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1032

Bibliografía recomendada en castellano (4)

Carracedo Gallardo, JustoSEGURIDAD EN REDES TELEMÁTICASEditorial McGraw - HillAño 2004 (540 páginas)Con 11 capítulos que van desde aspectos básicos de la seguridad y los fundamentos teóricos de criptografía hasta las aplicaciones seguras en redes, sus herramientas de protección y autenticación, terminando con conceptos avanzados y muy actuales sobre servicios de anonimato para la sociedad de la información, este libro hace un amplio y claro barrido de la seguridad en las redes telemáticas. Dedicado al estudio de los problemas y las soluciones presentes en la securización de las comunicaciones, estádirigido tanto a estudiantes universitarios como a profesionales egresados de facultades y escuelas de ingeniería que requieren estar al día.

Page 1034: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1033

Bibliografía recomendada en castellano (5)

Alvarez Marañón, Gonzalo; Pérez García, Pedro PabloSEGURIDAD INFORMÁTICA PARA EMPRESAS Y PARTICULARESEditorial McGraw - HillAño 2004 (440 páginas)Entre otros temas, el libro trata de la protección del anonimato y de la privacidad en Internet, protección de la confidencialidad de la información mediante el cifrado con EFS y SSL, protección de la disponibilidad de la información mediante sistemas tolerantes a fallos, estrategias de recuperación de sistemas y copias de seguridad, planes de contingencia, utilización de las firmas electrónicas y los certificados digitales, elección adecuada de cortafuegos, creación de una red privada virtual, protecciones ante el malware, sistemas de detección y prevención de intrusiones, etc.

Page 1035: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1034

Bibliografía recomendada en castellano (6)

Stallings, WilliamFUNDAMENTOS DE SEGURIDAD EN REDES. APLICACIONES Y ESTÁNDARESPrentice-Hall Inc.Año 2003 (456 páginas)Corresponde a la traducción del inglés al español del libro que se comenta más adelante. Manteniendo la misma filosofía que su edición en inglés, en este caso contiene 225 páginas menos. Presenta temas de cifra simétrica y asimétrica, algoritmos, firmas, hash, autenticación y seguridad en redes. Está más centrada en la seguridad en Internet, profundizando en temas como correo seguro, protocolos de redes, IP seguro, seguridad en Web, intrusiones, cortafuegos, etc. Un excelente libro para el estudiante, si bien para el profesor es recomendable el original en inglés.

Page 1036: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1035

Bibliografía recomendada en castellano (7)

Singh, Simon (traducción de José Ignacio Moraza)LOS CÓDIGOS SECRETOSEditorial Debate S.A.Año 2000 (382 páginas)Interesante libro de Simon Singh editado en 1999, en el que se hace un repaso extenso de la criptografía denominada clásica, máquinas y artilugios de cifra, máquina Enigma, etc., desde una perspectiva un tanto novelesca que, sin desmerecer en absoluto la calidad técnica del mismo, lo convierte en un excelente libro de amena lectura. Encontrará en él una presentación de los sistemas de cifra asimétrica, la historia inmersa en la búsqueda de la criptografía de clave pública y el intercambio de clave, para terminar con PGP y un capítulo dedicado a la criptografía cuántica.

Page 1037: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1036

Bibliografía recomendada en castellano (8)

Morant Ramón, J.L.; Ribagorda Garnacho, A.; Sancho Rodríguez J.SEGURIDAD Y PROTECCIÓN DE LA INFORMACIÓNColección de Informática, Editorial Centro de Estudios Ramón Areces, S.A., MadridAño 1994 (388 páginas)Libro que trata, además de los temas genéricos de la criptografía clásica y moderna, aspectos de seguridad en sistemas operativos, en bases de datos y en redes de computadores. Buen texto descriptivo que profundiza en ciertos aspectos matemáticos y hace un buen estudio de la gestión de claves. Tiene además como característica ser el primer libro con formato universitario sobre criptografía y seguridad informática en España, y seguramente de lengua española. No existen nuevas versiones que serían no obstante muy bien recibidas.

Page 1038: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1037

Bibliografía recomendada en inglés (1)

Menezes, Alfred; Oorsschof, Paul; Vanstone, ScottHANDBOOK OF APPLIED CRYPTOGRAPHYCRC Press Inc. http://www.cacr.math.uwaterloo.ca/hac/Año 1997 (780 páginas)Interesante y completo libro dedicado al estudio de los algoritmos con una visión matemática de alto nivel. Sus capítulos están orientados a bases matemáticas para la criptografía, sistemas de claves secretas y públicas, cifradores de flujo y de bloque, hash, autenticación, firma digital y gestión de claves. Obra imprescindible para el estudiante universitario que desea profundizar en el análisis de los algoritmos, si bien el seguimiento del mismo puede resultar algo complejo por el nivel matemático comentado. Junto al de William Stallings, es probablemente el mejor libro de criptografía en la actualidad. Le recomiendo que descargue el libro gratis desde la página web de su autor que verá más arriba.

Page 1039: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1038

Bibliografía recomendada en inglés (2)

Stallings, WilliamCRYPTOGRAPHY AND NETWORK SECURITY. PRINCIPLES AND PRACTICE. THIRD EDITIONPrentice-Hall Inc.Año 2003 (681 páginas)Con una centena más de páginas que la segunda edición de (1999), el texto está estructurado de una forma óptima que permite una agradable lectura. Además de cifra simétrica y asimétrica, algoritmos, firmas, hash, autenticación y seguridad en redes, esta edición se centra en la seguridad en Internet, profundizando en temas como correo seguro, protocolos de redes, IP seguro, seguridad en Web, intrusiones, cortafuegos, etc. Incluye algunos ejemplos y ejercicios. Junto al de Alfred Menezes, probablemente es el mejor libro de criptografía y seguridad informática en la actualidad.

Page 1040: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1039

Bibliografía recomendada en inglés (3)

Schneier, BruceAPPLIED CRYPTOGRAPHY: PROTOCOLS, ALGORITHMS, AND SOURCE CODE IN C. SECOND EDITIONJohn Wiley & Sons, Inc., New YorkAño 1996 (758 páginas)Segunda edición del libro con mismo título, con mayor énfasis en los algoritmos de cifra, protocolos, firmas, etc., especialmente en los sistemas con clave privada y pública. El texto de Schneier resulta fundamental para los estudiantes universitarios de asignaturas de criptografía. Incluye una bibliografía es muy completa, hay profusión de tablas y estudia una infinidad de criptosistemas, adjuntando el código fuente en C de muchos de los algoritmos estudiados. Se echa en falta, no obstante, que no tenga algunos ejemplos resueltos en cada capítulo.

Page 1041: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1040

Bibliografía recomendada en inglés (4)

Douglas R. StinsonCRYPTOGRAPHY. THEORY AND PRACTICE. THIRD EDITIONChampan & Hall / CRCAño 2006 (593 páginas)Desde su primera edición en el año 1995, el libro de Douglas Stinson se ha actualizado en su totalidad. Manteniendo aquellos capítulos dedicados a la criptografía clásica, el cifrado con clave secreta -en este caso profundizando en el algoritmo AES-, funciones hash, cifras RSA y ElGamal, autenticación y firma digital, en esta edición se agradece la inclusión y actualización en apartados como la generación de bits pseudoaleatorios, primitivas de autenticación con transferencia de conocimiento nulo, distribución de claves, infraestructuras de clave pública y esquemas de compartición de secretos.

Page 1042: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1041

Bibliografía recomendada en inglés (5)

Salomaa, ArtoPUBLIC-KEY CRYPTOGRAPHY. SECOND EDITIONEATCS Monographics on Theoretical Computer ScienceW. Brauer, G. Rozenberg, A. Salomaa (Eds.), Springer-Verlag, New YorkAño 1996 (268 páginas)Interesante y ameno, profundiza en los criptosistemas de clave pública y protocolos criptográficos en esta segunda edición. En algunos capítulos es necesario contar con una base matemática de nivel universitario para una mejor comprensión. No obstante, su lectura es muy agradable y presenta algunos ejemplos resueltos. Incluye un amplio estudio de los sistemas de mochilas, su implementación, debilidades, tipos de ataques, etc.

Page 1043: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1042

Bibliografía recomendada en inglés (6)

Seberry, Jennifer; Pieprzyk, JosefCRYPTOGRAPHY. AN INTRODUCTION TO COMPUTER SECURITYPrentice-Hall, New YorkAño 1989 (375 páginas)Además de los temas propios de criptografía clásica y moderna, incluye un capítulo de introducción a la aritmética modular bien estructurado. Trata también la seguridad informática en bases de datos, en sistemas operativos y en redes. Como lector se agradece en especial la gran cantidad de ejercicios propuestos y resueltos en cada capítulo, incluyendo el código en PASCAL.

Page 1044: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1043

Bibliografía recomendada en inglés (7)

Pflegger P., CharlesSECURITY IN COMPUTINGPrentice-Hall International Editions, LondonAño 1989 (538 páginas)Texto de consulta general sobre seguridad informática que trata los criptosistemas y además estudia la seguridad en los programas, en informática personal, en las comunicaciones, análisis de riesgos, así como los aspectos legales y éticos de esta especialidad. Incluye varios ejercicios propuestos sin incluir sus soluciones. Debido a la fecha de edición, no profundiza en aspectos de cifra asimétrica y algoritmos actuales.

Page 1045: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1044

Bibliografía recomendada en inglés (8)

Kahn, DavidTHE CODE-BREAKERSScribner New YorkAño 1996 (1.181 páginas)Un libro clásico en criptografía y el más completo sobre el apasionante mundo de la criptología en sus primeros años de existencia y en la primera y segunda guerra mundiales. Con una bibliografía de casi mil documentos, este libro es un referente básico de todo el ambiente de espionaje militar tan propio de aquella época y un verdadero documento histórico. Puesto que su primera edición data de 1967, prácticamente no trata la criptografía asimétrica o de clave pública. No obstante, su valor principal es ser un referente único sobre la historia de la criptografía.

Page 1046: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1045

Bibliografía de interés en seguridad

En la última década la bibliografía sobre criptografía y otros temas relacionados con la seguridad informática, en el sentido amplio que se ha comentado en estos apuntes, ha aumentado de una forma espectacular. Cada mes aparecen en el mercado una media de tres a cuatro nuevos libros sobre esta temática.Cada vez hay más publicaciones originales en español de gran interés, así como traducciones al español de textos en inglés.Como es muy difícil estar al día en este tema, y más aún desde unos apuntes en formato electrónico, si desea puede acceder a lapágina de mi asignatura en donde espero tener un enlace con estainformación, aproximadamente a mediados de este año 2006.

http://www.lpsi.eui.upm.es/SInformatica/SInformatica.htm

Page 1047: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1046

Enlaces a páginas Web en capítulos (1)Capítulo 3. Introducción a la Seguridad Informática

REAL ACADEMIA ESPAÑOLA http://www.rae.es/

VIRUSPROT http://www.virusprot.com/Opiniones2002.html

SIR FRANCIS BACON http://www.sirbacon.org/links.html

KERCKHOFFS http://en.wikipedia.org/wiki/Kerckhoffs%27_law

CLAUDE SHANNON http://es.wikipedia.org/wiki/Claude_Shannon

RED IRIS http://www.rediris.es/cert/doc/docu_rediris/poliseg.es.html

BACKUP http://www.criptored.upm.es/guiateoria/gt_m001l.htm

HACKERS http://www.umanizales.edu.co/encuentrohackers/tiposh.htm

Capítulo 4. Calidad de Información y Programas Malignos

Page 1048: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1047

Enlaces a páginas Web en capítulos (2)Capítulo 4. Calidad de Información y Programas Malignos (continuación)

PHISING http://en.wikipedia.org/wiki/Phising

ANIMACION FLASH DE PHISING http://www.hispasec.com/unaaldia/2406

ALERTA ANTIVIRUS http://alerta-antivirus.red.es/virus/ver_pag.html?tema=V

MALWARE WFM http://www.hispasec.com/unaaldia/2639

VIRUS TOTAL http://www.virustotal.com/

DELITOS INFORMÁTICOS http://www.delitosinformaticos.com/delitos/

Capítulo 5. Introducción a la Gestión de la SeguridadMAGERIT http://www.csi.map.es/csi/pg5m20.htm

ANALISIS RIESGO CHINCHON http://www.criptored.upm.es/software/sw_m214_01.htm

Page 1049: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1048

Enlaces a páginas Web en capítulos (3)Capítulo 5. Introducción a la Gestión de la Seguridad (continuación)

BELL LAPADULA http://en.wikipedia.org/wiki/Bell-LaPadula_model

CLARK WILSON http://www.criptored.upm.es/guiateoria/gt_m248c.htm

TAKE GRANT http://www.criptored.upm.es/guiateoria/gt_m248b.htm

BIBA http://www.criptored.upm.es/guiateoria/gt_m248a.htm

HARRISON, RUZZO, ULLMAN http://www.criptored.upm.es/guiateoria/gt_m248e.htm

CHINESE WALL http://www.criptored.upm.es/guiateoria/gt_m248d.htm

SEA VIEW http://www.criptored.upm.es/guiateoria/gt_m248f.htm

CRITERIOS SEGURIDAD MAP http://www.csi.map.es/csi/criterios/seguridad/index.html

LEYES PROTECCIÓN DATOS EN ESPAÑA http://www.agpd.es/index.php?idSeccion=77

Page 1050: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1049

Enlaces a páginas Web en capítulos (4)Capítulo 5. Introducción a la Gestión de la Seguridad (continuación)

REAL DECRETO 994/1999 REGLAMENTO MEDIDAS DE SEGURIDAD FICHEROS AUTOMATIZADOS

https://www.agpd.es/upload/Canal_Documentacion/legislacion/Estatal/A.8%29%20Real%20Decreto%20994-1999.pdf

LOPD https://www.agpd.es/upload/Canal_Documentacion/legislacion/Estatal/Ley%2015_99.pdf

17799 http://www.aenor.es/desarrollo/normalizacion/normas/resultadobuscnormas.asp?campobuscador=17799

ANÁLISIS ISO 17799 http://www.criptored.upm.es/guiateoria/gt_m209b.htm

DISASTER RECOVERY http://recovery-disaster.info/index.htm

Capítulo 6. Teoría de la Información

CLAUDE SHANNON http://es.wikipedia.org/wiki/Claude_E._Shannon

ARTÍCULO SHANNON http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html

Page 1051: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1050

Enlaces a páginas Web en capítulos (5)Capítulo 6. Teoría de la Información (continuación)

ENTROPÍA DE LA INFORMACIÓN http://en.wikipedia.org/wiki/Information_entropy

COMPRESIÓN DATOS HUFFMAN http://articulos.conclase.net/compresion/huffman.html

COMPRESIÓN DE DATOS http://es.wikipedia.org/wiki/Compresi%C3%B3n_de_datos

DIST. UNIDAD http://www.cs.ucla.edu/~jkong/research/security/shannon1949/node14.html

Capítulo 7. Teoría de los Números

ALGORITMO DE EUCLIDES http://es.geocities.com/eucliteam/

INVERSOS MULTIPLICATIVOS http://www.cut-the-knot.org/blue/Modulo.shtml

EULER http://es.wikipedia.org/wiki/Euler

INDICADOR DE EULER http://mathworld.wolfram.com/TotientFunction.html

Page 1052: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1051

Enlaces a páginas Web en capítulos (6)Capítulo 7. Teoría de los Números (continuación)

TEOREMA FERMAT http://es.wikipedia.org/wiki/Peque%C3%B1o_teorema_de_Fermat

ALGORITMO EXTENDIDO DE EUCLIDES http://en.wikipedia.org/wiki/Euclid

TEOREMA DEL RESTO CHINO http://www.math.hawaii.edu/~lee/courses/Chinese.pdf

PÁGINA DE NÚMEROS PRIMOS http://www.utm.edu/research/primes/

RAÍCES PRIMITIVAS http://mathworld.wolfram.com/PrimitiveRoot.html

GALOIS http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Galois.html

CAMPOS FINITOS http://mathworld.wolfram.com/FiniteField.html

Capítulo 8. Teoría de la Complejidad Algorítmica

O(n) http://www.mm.informatik.tu-darmstadt.de/courses/2002ws/ics/lectures/v14.pdf

Page 1053: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1052

Enlaces a páginas Web en capítulos (7)Capítulo 8. Teoría de la Complejidad Algorítmica (continuación)

PROBLEMA DE LA MOCHILA http://en.wikipedia.org/wiki/Knapsack_problem

PROBLEMA DE LA FACTORIZACIÓN http://home.netcom.com/~jrhowell/math/factor.htm

PROBLEMA LOGARITMO DISCRETO http://en.wikipedia.org/wiki/Discrete_logarithm

PROBLEMAS NP http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html

Capítulo 9. Sistemas de Cifra Clásicos

PÁGINA DE LA NSA http://www.nsa.gov/public/publi00007.cfm

ALGORITMOS DE CIFRA http://library.thinkquest.org/27158/concept1_1.html

ART. DIFFIE-HELLMAN http://www.cs.jhu.edu/~rubin/courses/sp03/papers/diffie.hellman.pdf

VERNAM http://www.pro-technix.com/information/crypto/pages/vernam_base.html

Page 1054: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1053

Enlaces a páginas Web en capítulos (8)Capítulo 10. Introducción a la Cifra Moderna

SISTEMAS DE CIFRA http://en.wikipedia.org/wiki/Category:Cryptography

Capítulo 11. Sistemas de Cifra en Flujo

PÁGINA DE SOLOMON GOLOMB http://ee.usc.edu/faculty_staff/bios/golomb.html

AUTÓMATAS CELULARES http://www.criptored.upm.es/investigacion/tfc_m317a.htm

SECUENCIA DE BRUIJN http://mathworld.wolfram.com/deBruijnSequence.html

POLINOMIOS http://mathworld.wolfram.com/PrimitivePolynomial.html

GENERACIÓN DE POLINOMIOS http://www.theory.csc.uvic.ca/~cos/gen/poly.html

ATAQUE B-M http://planetmath.org/encyclopedia/BerlekampMasseyAlgorithm.html

ALGORITMO B-M http://ihome.ust.hk/~trippen/Cryptography/BM/frameset.html

Page 1055: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1054

Enlaces a páginas Web en capítulos (9)Capítulo 11. Sistemas de Cifra en Flujo (continuación)

ATAQUES A CIFRADORES EN FLUJO http://www.cryptosystem.net/stream

ANÁLISIS A5/1 http://www.argo.es/~jcea/artic/hispasec33.htm

RC4 http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html

SEAL http://www.gemplus.com/smart/rd/publications/pdf/HG97chis.pdf

ARTÍCULO ORIGINAL DEL ATAQUE A5/1 http://cryptome.org/a51-bsw.htm

ANÁLISIS DEL ATAQUE A5/1 http://www.criptored.upm.es/guiateoria/gt_m116a.htm

Capítulo 12. Cifrado Simétrico en Bloque

FEISTEL http://en.wikipedia.org/wiki/Feistel_network

COMPENDIO DE CIFRADORES http://www.quadibloc.com/crypto/intro.htm

Page 1056: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1055

Enlaces a páginas Web en capítulos (10)Capítulo 12. Cifrado Simétrico en Bloque (continuación)

ATAQUES A CIFRADORES EN FLUJO http://www.cryptosystem.net/stream

MODOS DE CIFRA EN DES http://www.itl.nist.gov/fipspubs/fip81.htm

ESPECIFICACIONES DEL DES http://www.itl.nist.gov/fipspubs/fip46-2.htm

TRIPLE DES http://www.rsasecurity.com/rsalabs/node.asp?id=2231

IDEA http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm

CLAVES DÉBILES IDEA http://www.cosic.esat.kuleuven.ac.be/publications/article-140.pdf

PÁGINA DEL NIST http://www.nist.gov/

DES CHALLENGE III http://www.rsasecurity.com/rsalabs/node.asp?id=2108

ANUNCIO DEL AES http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Page 1057: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1056

Enlaces a páginas Web en capítulos (11)Capítulo 12. Cifrado Simétrico en Bloque (continuación)

PÁGINA OFICIAL DEL AES http://www.iaik.tu-graz.ac.at/research/krypto/AES/

DOCUMENTO ESTUDIO DEL AES http://www.criptored.upm.es/guiateoria/gt_m480a.htm

PÁGINA RIJMEN http://www.iaik.tu-graz.ac.at/research/krypto/AES/old/%7Erijmen/rijndael/

GRÁFICOS DEL AES http://www.quadibloc.com/crypto/co040401.htm

Capítulo 13. Cifrado Asimétrico con Mochilas

M-H http://www-fs.informatik.uni-tuebingen.de/~reinhard/krypto/English/4.5.3.e.html

MOCHILA M-H http://www.behdad.org/download/Presentations/knapsack/knapsack.ppt

ATAQUE A M-H http://www.behdad.org/download/Presentations/knapsack/knapsack.ppt

ANÁLISIS AES Y BABY AES http://www.criptored.upm.es/guiateoria/gt_m117i.htm

Page 1058: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1057

Enlaces a páginas Web en capítulos (12)Capítulo 14. Cifrado Asimétrico Exponencial

D-H http://www.cs.purdue.edu/homes/ninghui/courses/Fall04/lectures/diffie-hellman.pdf

LOGARITMO DISCRETO http://en.wikipedia.org/wiki/Discrete_logarithm

RSA http://www.di-mgt.com.au/rsa_alg.html

MÉTODOS DE FACTORIZACIÓN http://home.netcom.com/~jrhowell/math/factor.htm

DESAFÍO RSA 640 http://www.rsasecurity.com/rsalabs/node.asp?id=2964

EL SISTEMA RSA http://www.criptored.upm.es/guiateoria/gt_m117f.htm

OPEN SSL http://www.openssl.org

ATAQUES A RSA http://crypto.stanford.edu/~dabo/papers/RSA-survey.pdf

HISTORIA DE RSA http://livinginternet.com/i/is_crypt_pkc_inv.htm

Page 1059: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1058

Enlaces a páginas Web en capítulos (13)Capítulo 14. Cifrado Asimétrico Exponencial (continuación)

POHLIG-HELLMAN http://ieeexplore.ieee.org/xpl/abs_free.jsp?arNumber=1055817

ELGAMAL http://web.usna.navy.mil/~wdj/book/node48.html

LOGARITMO DISCRETO http://en.wikipedia.org/wiki/Discrete_logarithm

Capítulo 15. Funciones Hash en Criptografía

MD5 http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

RFC MD5 http://www.faqs.org/rfcs/rfc1321.html

RFC SHA-1 http://www.faqs.org/rfcs/rfc3174.html

LITTLE ENDIAN – BIG ENDIAN http://www.algoritmia.net/articles.php?id=57

SURVEY ATAQUES A HASH http://www.criptored.upm.es/guiateoria/gt_m238a.htm

Page 1060: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1059

Enlaces a páginas Web en capítulos (14)Capítulo 15. Funciones Hash en Criptografía (continuación)

ATAQUES HASH http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html

Capítulo 16. Autenticación y Firma Digital

RFC MESSAGE AUTHENTICACION CODE http://www.faqs.org/rfcs/rfc3537.html

FIPS HMAC http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf

MODELO NEEDHAM-SCHROEDER http://www.lsv.ens-cachan.fr/spore/nssk.html

SISTEMA KERBEROS http://www.isi.edu/gost/publications/kerberos-neuman-tso.html

PÁGINA L. LAMPORT http://research.microsoft.com/users/lamport/

PÁGINA OFICIAL DE KERBEROS http://web.mit.edu/kerberos/www/

AUTENTICACIÓN http://www.mug.org.ar/Infraestructura/ArticInfraestructura/300.aspx

Page 1061: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1060

Enlaces a páginas Web en capítulos (15)Capítulo 16. Autenticación y Firma Digital (continuación)

RSA http://www.enstimac.fr/Perl/perl5.6.1/site_perl/5.6.1/Crypt/RSA.html

FIRMA ELGAMAL http://www.math.clemson.edu/faculty/Gao/crypto_mod/node5.html

ESTÁNDARES DE FIRMA DEL NIST http://www.itl.nist.gov/fipspubs/fip186.htm

SEGURIDAD DSS http://lists.gnupg.org/pipermail/gnupg-users/2000-August/006286.html

Capítulo 17. Certificados Digitales y Estándar PKCS

PKI X.509 DE LA IEFT http://www.ietf.org/html.charters/pkix-charter.html

CERTIFICADO VERISIGN https://digitalid.verisign.com/client/enroll.htm

PÁGINA Y. DESMEDT http://www.cs.fsu.edu/~desmedt/

PÁGINA M. RABIN http://www.deas.harvard.edu/ourfaculty/profile/Michael_Rabin

Page 1062: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1061

Enlaces a páginas Web en capítulos (16)

PKCS LABORATORIOS RSA http://www.rsasecurity.com/rsalabs/pkcs/

Capítulo 18. Aplicaciones de Correo Seguro

RFC PRIVATE ENHANCED MAIL PEM http://www.ietf.org/rfc/rfc1421.txt

Capítulo 17. Certificados Digitales y Estándar PKCS (continuación)

PHILIP ZIMMERMANN http://www.philzimmermann.com/ES/background/index.html

GNUPG GNU PRIVACY GUARD http://www.gnupg.org/

PGP S/MIME http://www.imc.org/smime-pgpmime.html

Capítulo 19. Protocolos y Esquemas Criptográficos

PROTOCOLOS CRIPTOGRÁFICOS http://www.criptored.upm.es/guiateoria/gt_m023c.htm

FIRMA CIEGA http://www.di.ens.fr/~pointche/Documents/Papers/2003_joc.pdf

Page 1063: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1062

Enlaces a páginas Web en capítulos (17)Capítulo 19. Protocolos y Esquemas Criptográficos (continuación)

ENTEROS DE BLUM http://zoo.cs.yale.edu/classes/cs467/2005f/course/lectures/ln20.pdf

Capítulo 20. Introducción a la Cifra con Curvas Elípticas

CRIPTOGRAFÍA CON CURVAS ELÍPTICAS (Búsqueda Google - español)http://www.google.es/search?hl=es&q=criptografia+curvas+el%C3%ADpticas&meta=

CRIPTOGRAFÍA CON CURVAS ELÍPTICAS (Búsqueda Google - inglés)http://www.google.es/search?hl=es&q=elliptic+curve+cryptography&meta=

VOTO TELEMÁTICO http://vototelematico.diatel.upm.es/

ECC CHALLENGE http://www.certicom.com/index.php?action=res,ecc_solution

LIBRERÍA PARA CURVAS ELÍPTICAS http://shoup.net/ntl/

Page 1064: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1063

Enlaces de interés en Internet (1)

Los enlaces que puede encontrar en Internet sobre temas de seguridad informática son muchos. Es posible que algunos por el paso del tiempo o por una política de gestión del servidor no apropiada, no estén activos. En estas tres diapositivas pondremos sólo unos cuantos enlaces que se recomiendan al lector, en los que encontrará información interesante, documentación, estándares, software, etc. Use el portapapeles.

• CriptoRedhttp://www.criptored.upm.es/

• Hispasechttp://www.hispasec.com/

• RedIRIShttp://www.rediris.es/

• VirusProthttp://www.virusprot.com/

• Kriptópolishttp://www.kriptopolis.com/

• Criptonomicónhttp://www.iec.csic.es/criptonomicon/

• Revista Red Seguridadhttp://www.borrmart.es/redseguridad.php

• Revista SIChttp://www.revistasic.com/

• Organización ISACAhttp://www.isaca.org/

• Computer Security Resource Center del NISThttp://csrc.nist.gov/

• CERT de Carnegie Mellonhttp://www.cert.org/

• National Security Agencyhttp://www.nsa.gov/

Page 1065: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1064

Enlaces de interés en Internet (2)• Página Web de Alfred Menezes

http://www.cacr.math.uwaterloo.ca/~ajmeneze/• Página Web de Bruce Schneier

http://www.counterpane.com/schneier.html• Página Web del libro de William Stallings

http://williamstallings.com/Crypto3e.html• Página Web de Solomon Golomb

http://csi.usc.edu/faculty/golomb.html• Página Web de Vincent Rijmen: Rijndael

http://www.esat.kuleuven.ac.be/~rijmen/rijndael/• Página Web de Philip Zimmermann

http://www.philzimmermann.com/• Crypto++ Library

http://www.eskimo.com/~weidai/cryptlib.html• Conceptos sobre voto electrónico

http://oasis.dit.upm.es/~jantonio/documentos/voto-electronico/article.html

• Esteganografíahttp://www.stegoarchive.com/

• Software libre de esteganografíahttp://members.tripod.com/steganography/stego/software.html

• Página de criptografía visual de Doug Stinsonhttp://www.cacr.math.uwaterloo.ca/~dstinson/visual.html

• Quantum Cryptography Tutorialhttp://www.cs.dartmouth.edu/~jford/crypto.html

• PGP internacionalhttp://www.pgpi.org/

• Computer Security Informationhttp://www.alw.nih.gov/Security/security.html

• Cryptographic Compendium de John Savardhttp://home.ecn.ab.ca/~jsavard/crypto/entry.htm

• PKCS standards: RSA Security Corporationhttp://www.rsasecurity.com/rsalabs/pkcs/

• The Prime Pageshttp://www.utm.edu/research/primes/

• Polinomios primitivoshttp://mathworld.wolfran.com/primitivepolynomial.html

• SW para generación de polinomios primitivoshttp://www.theory.csc.uvic.ca/~cos/gen/poly.html

• Cryptome: documentos sobre criptografíahttp://cryptome.org/

Page 1066: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1065

Enlaces de interés en Internet (3)• Delitos Informáticos y Leyes

http://www.delitosinformaticos.com/• Electronic Frontier Foundation EFF

http://www.eff.org/• Leyes, LOPD, 17799, etc. CSI – MAP - España

http://www.map.es/csi/fr600001.htm#5• SSH – Cryptography A-Z

http://www.ssh.com/support/cryptography/• Linux Security

http://www.linuxsecurity.com/• Ley Orgánica de Protección de Datos LOPD

http://www.igsap.map.es/cia/dispo/lo15-99.htm• The Internet Engineering Task Force

http://www.ietf.org/• FIPS Federal Inf. Process. Standards Publications

http://www.itl.nist.gov/fipspubs/• RFC Editor Homepage

http://www.rfc-editor.org/• Open SSL

http://www.openssl.org/• ANSI American National Standards Institute

http://www.ansi.org/

• ETSI. Política y normas de seguridad Europahttp://www.etsi.org/technicalfocus/home.htm

• Cryptography and Inform. Security Group MIThttp://theory.lcs.mit.edu/~cis/

• Computer Forensics Laboratoryhttp://www.dcfl.gov/index.shtml

• VeriSignhttp://www.verisign.com/

• The Hacker Quarterlyhttp://www.2600.com/

• Web spoofing. Universidad de Princetonhttp://www.cs.princeton.edu/sip/pub/spoofing.html

• Apache Software Foundationhttp://www.apache.org/

• GNU Software de seguridadhttp://www.gnu.org/directory/security/

• Netscape Securityhttp://wp.netscape.com/security/

• Windows Securityhttp://www.microsoft.com/security/

Page 1067: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1066

Tabla de frecuencia de monogramas

A 7,49 A 10,60 A 9,83 Ñ -,-- Ñ 0,10 Ñ 0,07B 1,29 B 1,16 B 0,86 O 7,37 O 8,23 O 7,75C 3,54 C 4,85 C 4,15 P 2,43 P 2,71 P 2,41D 3,62 D 5,87 D 4,04 Q 0,26 Q 0,74 Q 0,73E 14,00 E 13,11 E 11,41 R 6,14 R 6,95 R 5,26F 2,18 F 1,13 F 0,81 S 6,95 S 8,47 S 7,13G 1,74 G 1,40 G 0,85 T 9,85 T 5,40 T 3,62H 4,22 H 0,60 H 0,57 U 3,00 U 4,34 U 3,24I 6,65 I 7,16 I 6,04 V 1,16 V 0,82 V 0,69J 0,27 J 0,25 J 0,17 W 1,69 W 0,12 W 0,00K 0,47 K 0,11 K 0,00 X 0,28 X 0,15 X 0,18L 3,57 L 4,42 L 4,34 Y 1,64 Y 0,79 Y 0,63M 3,39 M 3,11 M 2,42 Z 0,04 Z 0,26 Z 0,29N 6,74 N 7,14 N 6,03 Blanco 6,33Valores de frecuencia en tanto por ciento en archivos de 50.000 caracteres.Columnas: 1º Inglés (mod 26); 2ª Castellano (mod 27); 3ª Castellano (mod 28)

Page 1068: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1067

Monogramas más frecuentes mod 27

E 13,11 C 4,85 Y 0,79A 10,60 L 4,42 Q 0,74S 8,47 U 4,34 H 0,60O 8,23 M 3,11 Z 0,26I 7,16 P 2,71 J 0,25N 7,14 G 1,40 X 0,15R 6,95 B 1,16 W 0,12D 5.87 F 1,13 K 0,11T 5,40 V 0,82 Ñ 0,10

Frecuencia alta Frecuencia media Frecuencia baja

Con los 9 caracteres más frecuentes podemos formar la palabra ESTIRANDO

Page 1069: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1068

Alfabeto castellano y sus inversos mod 27

A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

a inv (a,27) a inv (a,27) a inv (a,27)

1 1 2 14 4 7

5 11 7 4 8 17

10 19 11 5 13 25

14 2 16 22 17 8

19 10 20 23 22 16

23 20 25 13 26 26

Alfabeto y tabla módulo 27

Page 1070: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1069

Alfabeto castellano y sus inversos mod 37

A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

a inv (a,37) a a a inv (a,37) a inv (a,37) a

15 61218243036

2724292318

51117232935

28267

324

12

41016222834

39

15212733

28

14202632

11620236

inv (a,37) inv (a,37)

1 19148

131022

725335

3011

13192531 9

inv (a,37)

313435172136

Alfabeto y tabla módulo 37 0 1 2 3 4 5 6 7 8 927 28 29 30 31 32 33 34 35 36

Page 1071: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1070

Tabla de VigenèreA B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

A A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y ZB B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A C C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B D D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C E E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D F F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E G G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F H H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G I I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H J J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I K K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J L L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K M M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L N N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M Ñ Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ P P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P R R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q S S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R T T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S U U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T V V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U W W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V X X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W XZ Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y

Page 1072: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1071

Código Baudot (cifrador de Vernam)

Código Binario Carácter Código Binario Carácter00000 Blanco 10000 T00001 E 10001 Z00010 = 10010 L00011 A 10011 W00100 Espacio 10100 H00101 S 10101 Y00110 I 10110 P00111 U 10111 Q01000 < 11000 O01001 D 11001 B01010 R 11010 G01011 J 11011 ↑01100 N 11100 M01101 F 11101 X01110 C 11110 V01111 K 11111 ↓

Page 1073: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1072

Código ASCII/ANSI de nivel bajo (1)

Byte carácter0010 0000 Espacio0010 0001 !0010 0010 “0010 0011 #0010 0100 $0010 0101 %0010 0110 &0010 0111 ‘0010 1000 (0010 1001 )0010 1010 *0010 1011 +0010 1100 ,0010 1101 -0010 1110 .0010 1111 /

Byte carácter0011 0000 00011 0001 10011 0010 20011 0011 30011 0100 40011 0101 50011 0110 60011 0111 70011 1000 80011 1001 90011 1010 :0011 1011 ;0011 1100 <0011 1101 =0011 1110 >0011 1111 ?

Byte carácter0100 0000 @0100 0001 A0100 0010 B0100 0011 C0100 0100 D0100 0101 E0100 0110 F0100 0111 G0100 1000 H0100 1001 I0100 1010 J0100 1011 K0100 1100 L0100 1101 M0100 1110 N0100 1111 O

Page 1074: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1073

Código ASCII/ANSI de nivel bajo (2)

Byte carácter0101 0000 P0101 0001 Q0101 0010 R0101 0011 S0101 0100 T0101 0101 U0101 0110 V0101 0111 W0101 1000 X0101 1001 Y0101 1010 Z0101 1011 [0101 1100 \0101 1101 ]0101 1110 ^0101 1111 _

Byte carácter0110 0000 `0110 0001 a0110 0010 b0110 0011 c0110 0100 d0110 0101 e0110 0110 f0110 0111 g0110 1000 h0110 1001 i0110 1010 j0110 1011 k0110 1100 l0110 1101 m0110 1110 n0110 1111 o

Byte carácter0111 0000 p0111 0001 q0111 0010 r0111 0011 s0111 0100 t0111 0101 u0111 0110 v0111 0111 w0111 1000 x0111 1001 y0111 1010 z0111 1011 {0111 1100 |0111 1101 }0111 1110 ~0111 1111

Page 1075: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1074

Tabla de código ASCII extendido

00-0F: Valor decimal: 000–015

10-1F: Valor decimal: 016–031

20–2F: Valor decimal: 032–047

30–3F: Valor decimal: 048–063

40–4F: Valor decimal: 064–079

50–5F: Valor decimal: 080–095

60–6F: Valor decimal: 096–111

70–7F: Valor decimal: 112–127

80–8F: Valor decimal: 128–143

90–9F: Valor decimal: 144–159

A0–AF: Valor decimal: 160–175

B0–BF: Valor decimal: 176–191

C0–CF: Valor decimal: 192–207

D0–DF: Valor decimal: 208–223

E0–EF: Valor decimal: 224–239

F0–FF: Valor decimal: 240–255

Page 1076: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1075

Tabla de código ANSI extendido

00-0F: Valor decimal: 000–015

10-1F: Valor decimal: 016–031

20–2F: Valor decimal: 032–047

30–3F: Valor decimal: 048–063

40–4F: Valor decimal: 064–079

50–5F: Valor decimal: 080–095

60–6F: Valor decimal: 096–111

70–7F: Valor decimal: 112–127

80–8F: Valor decimal: 128–143

90–9F: Valor decimal: 144–159

A0–AF: Valor decimal: 160–175

B0–BF: Valor decimal: 176–191

C0–CF: Valor decimal: 192–207

D0–DF: Valor decimal: 208–223

E0–EF: Valor decimal: 224–239

F0–FF: Valor decimal: 240–255

Page 1077: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1076

La codificación en Base 64

Cada 3 bytes ANSI (24 bits) se convierten en 4 elementos Base 64 de 6 bits cada uno. El fichero aumenta un 33% pero ello se compensará al usar la compresión zip.

Valor Carácter6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter6 bits codificado

Valor Carácter6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w 1 000001 B 17 010001 R 33 100001 h 49 110001 x 2 000010 C 18 010010 S 34 100010 i 50 110010 y 3 000011 D 19 010011 T 35 100011 j 51 110011 z 4 000100 E 20 010100 U 36 100100 k 52 110100 0 5 000101 F 21 010101 V 37 100101 l 53 110101 1 6 000110 G 22 010110 W 38 100110 m 54 110110 2 7 000111 H 23 010111 X 39 100111 n 55 110111 3 8 001000 I 24 011000 Y 40 101000 o 56 111000 4 9 001001 J 25 011001 Z 41 101001 p 57 111001 5 10 001010 K 26 011010 a 42 101010 q 58 111010 6 11 001011 L 27 011011 b 43 101011 r 59 111011 7 12 001100 M 28 011100 c 44 101100 s 60 111100 8 13 001101 N 29 011101 d 45 101101 t 61 111101 9 14 001110 O 30 011110 e 46 101110 u 62 111110 + 15 001111 P 31 011111 f 47 101111 v 63 111111 / (Relleno) = Tabla de codificación en Base 64

Page 1078: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1077

Valor Carácter6 bits codificado

Valor Carácter 6 bits codificado

Valor Carácter6 bits codificado

Valor Carácter6 bits codificado

0 000000 A 16 010000 Q 32 100000 g 48 110000 w 1 000001 B 17 010001 R 33 100001 h 49 110001 x 2 000010 C 18 010010 S 34 100010 i 50 110010 y 3 000011 D 19 010011 T 35 100011 j 51 110011 z 4 000100 E 20 010100 U 36 100100 k 52 110100 0 5 000101 F 21 010101 V 37 100101 l 53 110101 1 6 000110 G 22 010110 W 38 100110 m 54 110110 2 7 000111 H 23 010111 X 39 100111 n 55 110111 3 8 001000 I 24 011000 Y 40 101000 o 56 111000 4 9 001001 J 25 011001 Z 41 101001 p 57 111001 5 10 001010 K 26 011010 a 42 101010 q 58 111010 6 11 001011 L 27 011011 b 43 101011 r 59 111011 7 12 001100 M 28 011100 c 44 101100 s 60 111100 8 13 001101 N 29 011101 d 45 101101 t 61 111101 9 14 001110 O 30 011110 e 46 101110 u 62 111110 + 15 001111 P 31 011111 f 47 101111 v 63 111111 / (Relleno) = Tabla de codificación en Base 64

HolaANSI = 01001000 01101111 01101100 01100001HolaB64 = 010010 000110 111101 101100 011000 01 (00 00) = SG9sYQ= =

Ejemplo de codificación Base 64

Page 1079: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1078

Tabla de primos del 1 al 1000

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199

211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293

307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397

401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499

503 509 521 523 541 547 557 563 569 571 577 587 593 599

601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691

701 709 711 727 733 739 743 751 757 761 769 773 787 797

809 811 821 823 827 829 839 853 857 859 863 877 881 883 887

907 911 919 929 937 941 947 953 967 971 977 983 991 997

Page 1080: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1079

Tabla de primos del 1001 al 2000

1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097

1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193

1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297

1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399

1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499

1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597

1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1667 1699

1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789

1801 1811 1823 1831 1847 1861 1867 1871 1873 1877 1879 1889

1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999

Page 1081: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1080

Polinomios primitivos

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

Algunos polinomios de xn para n = 1 hasta n = 50Explicación de la notación: (50, 4, 3, 2, 0) ⇒ p(x) = x50 + x4 + x3 + x2 + 1

Polinomios para n = 3: x3 + x + 1; x3 + x2 + 1Polinomios para n = 4: x4 + x + 1; x4 + x3 + 1Polinomios para n = 5: x5 + x2 + 1; x5 + x4 + x3 + x2 + 1; x5 + x4 + x2 + x + 1; x5 + x3 + x2 + x + 1;

x5 + x4 + x3 + x + 1; x5 + x3 + 1Polinomios para n = 6: x6 + x + 1; x6 + x5 + x2 + x + 1; x6 + x5 + x3 + x2 + 1; x6 + x4 + x3 + x + 1;

x6 + x5 + x4 + x + 1; x6 + x5 + 1

Page 1082: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1081

Software: el proyecto docente Criptolab

• En el año 1995, terminando el primer curso en que se imparte la asignatura de Seguridad Informática en la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España, el profesor de la misma echa a andar un proyecto docente con el nombre Criptolab. Básicamente, el objetivo es crear un conjunto de aplicaciones y software de prácticas hechas por alumnos memoristas de últimos cursos, con el fin de formar un completo laboratorio de criptografía y demás herramientas de seguridad informática, de libre distribución y orientado hacia un entorno educativo.

• Para ello se van creando y actualizando enunciados de prácticas en distintas versiones del cuaderno de prácticas y se generan aplicaciones para su uso en el laboratorio de criptografía y seguridad informática.

• En esta página encontrará algunos de los programas que han pasado la prueba final y, por lo tanto, están en Internet para su libre descarga.

Page 1083: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1082

Cuaderno de prácticas en html• Basado en un trabajo inicial realizado por Dña. María Eugenia González Lozano

de fecha septiembre de 1999, este cuaderno se ha ido actualizando incluyendo nuevas prácticas y nuevo software de laboratorio desarrollado por alumnos memoristas de la Escuela Universitaria de Informática de la UPM.

• Cuenta con un total de 32 enunciados de prácticas agrupados en este momento en seis bloques con diferentes apartados. En cada uno de estos apartados se incluye un test, en total 15.

• Todas las prácticas se realizan con software propio o bien ajeno siempre de libre distribución.Se han desarrollado distintos proyectos cuyo objetivo era adaptar y actualizar el cuaderno, dándole un formato nuevo y nuevas prestaciones tales como desarrollo de cada práctica y almacenamiento de datos de la misma en línea con el navegador, a través de un perfil de usuario, introducción de un nivel de ayuda contextual en cada enunciado con captura de pantallas, etc., ... pero desgraciadamente no han dado los frutos esperados. Es posible que a final de este año 2006 podamos contar con una versión 4.0 de este cuaderno.

http://www.criptored.upm.es/software/sw_m001k.htm

Page 1084: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1083

Enunciados de prácticas en la versión 3.0• Entropía de la Información • Características del Lenguaje • Cálculos en Matemática Discreta • Cifrado por Desplazamiento Puro • Cifrado por Decimación Pura • Cifrado por Decimación y Despl.• Cifrado de Vigenère • Cifrado de Beaufort • Cifrado de Clave Continua • Cifrado de Vernam • Cifrado por Filas • Cifrado por Columnas • Cifrado de Playfair • Cifrado de Hill Digrámico • Cifrado de Hill N-grámico• DES Modo ECB• Debilidades y Ataques a DES

• IDEA Modo ECB • Función hash MD5 • Función hash SHA-1 • Mochila de Merkle-Hellman • Intercambio de Clave de DH • Generación de Claves RSA • Cifrado RSA con ExpoCrip • Cifrado RSA con gen RSA • Firma Digital RSA • Cifrado ElGamal • Firma Digital ElGamal • Firma Digital DSS • PGP Versión 2.6.3i • Creación de Claves y Cifrado

Convencional con PGP 8.0 • Gestión de Claves y Cifrado

Híbrido con PGP 8.0

Page 1085: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1084

Nuevas prácticas en próxima versión

• Cifra por Homófonos • Cifra y seguimiento del AES• Secuencias Cifrantes • Cifra por Flujo • Ataques por Fuerza Bruta y Paradoja

del Cumpleaños en Funciones Hash • Cifrado con Curvas Elípticas • Gestión Avanzadas de Claves con

PGP 8.0 • Seguimiento Certificados X.509 • Certificado X.509 en Cliente • Análisis de la densidad y tipos de

claves RSA

• Ataques a RSA basado en la paradoja del cumpleaños

• Simulación del Entorno Kerberos • Protocolo de Transferencia

Inconsciente de Rabin • Póquer Mental con Criptografía

Simétrica • Póquer Mental con Criptografía

Asimétrica • Simulación Secure Socket Layer • Esteganografía con Stools • Cifrado con Criptografía Visual • Intercambio de Clave Cuántico

A lo largo del año 2006, y en una nueva versión de este cuadernode prácticas, se espera incluir algunos de los títulos que se indican más abajo, junto al correspondiente software para poder realizarlas.

http://www.criptored.upm.es/paginas/software.htm#propio

Page 1086: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1085

genRSA: generación de claves y cifra RSA• Autor: D. Juan Carlos Pérez García. Fecha: Febrero de 2004.• Software basado en la librería pública Cryptlib que permite realizar los cálculos

correspondientes a la generación del par de claves asimétricas RSA, partiendo de dos primos con igual número de bits o ligeramente distintos. Generación manual o automática. Para valores de p y q desde 16 -valor mínimo- hasta 32 bits, éstos pueden ser decimales o hexadecimales; para valores mayores hasta una clave de 2048 bits, los datos de la clave deberán ser hexadecimales.

• Generación de claves RSA manual y automática hasta 2048 bits. • Test de primalidad de Miller-Rabin y Fermat. • Obtención de claves parejas y cálculo de mensajes no cifrables. • Cifrado y descifrado de texto y números. • Descifrado de números con el TRC. • Ataque al módulo por factorización de primos cercanos. • Ataque al mensaje secreto por cifrado cíclico. • Ataque a la clave privada por paradoja del cumpleaños.

http://www.criptored.upm.es/software/sw_m001d.htm

Page 1087: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1086

ExpoCrip: cifra y firma exponencial• Autor: Dña. Olga Mariana González Ming. Fecha: Febrero de 2004.• Software para prácticas de cifrado exponencial de números decimales, valores

hexadecimales y texto ASCII, realizado con librerías propias y eficiente para operaciones de hasta centenas de bits. Incluye herramientas propias para el trabajo con números primos y ayuda contextual.

• Generación manual de claves RSA. • Cifrado y descifrado RSA de texto y números. • Obtención de claves parejas y cálculo de mensajes no cifrables. • Ataque al módulo por factorización con método Pollard Rho. • Ataque al mensaje secreto por cifrado cíclico. • Ataque a la clave privada por paradoja del cumpleaños. • Firma digital RSA. • Generación manual de claves ElGamal. • Cifrado y descifrado ElGamal de texto y números. • Firma digital ElGamal y firma digital DSS.

http://www.criptored.upm.es/software/sw_m001l.htm

Page 1088: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1087

safeDES: cifra y ataque al DES• Autor: D. Miguel Ángel Jiménez Muñoz. Fecha: Enero de 2003.• Software de cifrado, descifrado y ataques por fuerza bruta de forma similar a los

desarrollados por RSA Challengue al algoritmo Data Encryption Standard DES. Operaciones con archivos o bien texto claro por teclado. Los textos y las claves pueden introducirse en formato ANSI o hexadecimal. Si bien el algoritmo implementa sólo el modo Libro Electrónico de Códigos ECB, es posible comprobar los ataques de los que fue objeto en modo CBC con el simple uso la calculadora científica de Windows. Los módulos de ataque permiten delimitar un espacio de claves subconjunto del espacio real. La aplicación cuenta una amplia ayuda contextual que permite el mejor seguimiento de las prácticas con este software.

• Cifrado y descifrado modo ECB. • Ataque tipo monousuario. • Ataque tipo simulación multiusuario. • Ataque tipo multiusuario: aplicación cliente. • Ataque tipo multiusuario: aplicación servidor.

http://www.criptored.upm.es/software/sw_m001j.htm

Page 1089: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1088

CriptoRES: funciones hash MD5 y SHA-1• Autor: D. José Azaña Alonso. Fecha: Enero de 2001.• Software para el estudio y seguimiento de las funciones hash más conocidas

usadas en la compresión del documento para la firma digital y también en otras aplicaciones de autenticación como los certificados digitales.

• Tanto para MD5 como para SHA-1, la aplicación obtiene los resúmenes de documentos de archivos o texto introducido por teclado.

• Permite hacer un seguimiento del algoritmo de resumen, a nivel de bloques mostrando todas las operaciones en hexadecimal o bien siguiendo los pasos de las operaciones en bajo nivel. Como en este último caso la información mostrada está en bits, por su gran extensión muestra sólo el primer bloque de resumen que es precisamente donde se incluyen los rellenos para congruencia con el tamaño del bloque de 512 bits.

• Incluye una representación gráfica de la ecuación matemática del problema del ataque por la paradoja del cumpleaños.

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001h.htm

Page 1090: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1089

Hill: cifra y criptoanálisis• Autor: Dña Mª Carmen Cogolludo Alcarazo. Fecha: Marzo de 2001. • Aplicación para prácticas de laboratorio con el cifrador poligrámico de Hill.• Permite cifrar y descifrar archivos txt con una matriz clave de tamaño 2x2 hasta

10x10 dentro de los siguientes cuerpos: alfabeto castellano con letras en mayúsculas (mod 27), alfabeto incluyendo además los dígitos (mod 37) y por último un subconjunto de caracteres ASCII imprimibles (mod 191). En este último caso, la salida puede guardarse como un archivo en formato base 64.

• Las matrices clave pueden guardarse como un archivo.• Permite además realizar ataques por criptoanálisis según el método de Gauss-

Jordan. Una vez criptoanalizada la matriz clave, entrega un seguimiento de las ecuaciones que han permitido romper el sistema.

• El programa incluye una herramienta para el cálculo del determinante de una matriz, la matriz inversa y el número de matrices válidas dentro de un cuerpo.

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001i.htm

Page 1091: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1090

CriptoClásicos: cifra y criptoanálisis• Autor: D. Luis Miguel Motrel Berjano. Fecha: Marzo de 1999. • Aplicación para prácticas de sistemas de cifra clásicos que incluye algoritmos

de cifra monoalfabética por sustitución y por transposición, cifra polialfabética con los cifradores de Vigenère, de Beaufort y de clave continua.

• Permite, además de cifrar y descifrar, realizar ataques por criptoanálisis a los sistemas anteriores mediante el uso de técnicas de estadísticas del lenguaje.

• Incluye además el cifrador de Vernam, el cifrador de Playfair, el cifrador de Hill digrámico y cifrado por transposiciones.

• Todas las operaciones de cifra pueden realizarse con los alfabetos castellano módulo 27 (letras mayúsculas), castellano módulo 37 (letras y dígitos) e inglés módulo 26 y módulo 36.

• Incluye un apartado con herramientas características de trabajo dentro de un cuerpo finito y estadísticas básicas del lenguaje. Las operaciones están limitadas a cuerpos menores que 65.536.

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001c.htm

Page 1092: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1091

CryptoIDEA: cifra y seguimiento de IDEA• Autor: Dña. Esther Sánchez Mellado. Fecha: Septiembre de 1999.• Software de prácticas realizado en Delphi que permite cifrar y descifrar con el

algoritmo IDEA así como realizar un seguimiento del proceso y la generación de claves directas e inversas de cifra.

• Muestra además los ficheros en números enteros y en binario. • Incluye un sistema de gestión de bases de datos tipo Paradox 5.0 para el

mantenimiento (creación, modificación, borrado, etc.) de claves.• La generación de claves se hace a partir de un texto o clave ASCII.• Incluye un apartado de herramientas para cálculos típicos dentro de un cuerpo,

en especial mod 65.536 y mod 65.537, valores usados en IDEA. Además el cálculo del máximo común divisor, inversos y conversiones de carácter a ASCII, de entero a binario y de binario a entero.

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001f.htm

Page 1093: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1092

Fortaleza: operaciones en cuerpo de cifra• Autor: Dña. Cristina Chércoles Larriba. Fecha: Febrero de 1999.• Software de prácticas realizado en Visual Basic que permite realizar y simular

las operaciones dentro de un cuerpo más características en sistemas de cifra exponencial como son RSA y ElGamal: operaciones básicas de suma, resta, multiplicación y división, con o sin módulo, raíz, máximo común divisor, cálculo de inversos, potencia y primalidad.

• Usa una librería de números grandes: decenas hasta centenas de dígitos.• Incluye un módulo de factorización de números compuestos por dos primos

mediante los métodos de Pollard Rho, Dixon y Fraccciones Continuas. Además se muestra una lista de primos para poder trabajar con ellos, un conjunto de ejemplos y una tabla de primos titánicos.

• Incluye un módulo de cálculo del logaritmo discreto mediante los métodos de Búsqueda Exhaustiva, Paso Gigante - Paso Enano y Pohlig - Hellman. Además presenta un conjunto de ejemplos.

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001e.htm

Page 1094: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1093

Tutorial PGP 2.63i: cuaderno en html• Autor: D. David Liñán Zayas. Fecha: Julio de 1999.• Curso en html para un correcto aprendizaje del programa PGP en su versión

2.6.3i. El software presenta una explicación de los algoritmos usados por PGP con figuras, la generación y gestión de claves, cifra, firma, etc. Incluye además diversos ejemplos y enlaces a páginas Web de interés.

• Introducción a la criptografía. • Comenzando con PGP. • Generación de claves • Envío y recepción de correo electrónico. • Otras funciones de PGP. • Manejo de claves. • Distribución de claves. • Revocación de claves. • Instalar y configurar PGP. • Enlaces.

http://www.criptored.upm.es/software/sw_m001g.htm

Page 1095: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1094

LECC: libro electrónico de cifra clásica• Autor: Dña. Ana María Camacho Hernández. Fecha: Junio de 1998. • Libro electrónico realizado con ToolBook que hace un repaso a los temas

principales de la criptografía clásica, incluyendo fotografías de máquinas de cifrar así como de los algoritmos más característicos para la realización de prácticas sencillas en un entorno Windows. Cuenta con cinco secciones:

• Sección 0: Historia de la criptografía. Principios de las técnicas criptográficas. Presentación de los algoritmos escítala, de Polybios y del César.

• Sección 1: Máquinas de cifrar. Rueda de Jefferson, discos de Alberti yWheatstone, cifrador de Vernam, máquinas Enigma, M-325 y Hagelin.

• Sección 2: Cifrados por sustitución. Monoalfabética, polialfabética, cifra deVigenère, de Beaufort, por homofonías, de Beale, de Playfair y de Hill.

• Sección 3: Cifrados por transposición. Cifra por grupos, series, columnas y filas.• Sección 4: Algoritmos. Están implementados en la misma aplicación todos los

algoritmos de cifrado y descifrado por sustitución y transposición para poder ejercitarse con ejemplos de textos introducidos por teclado.

http://www.criptored.upm.es/software/sw_m001a.htm

Page 1096: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1095

MH: cifra y criptoanálisis de mochilas• Autor: D. Juan Carlos Rodríguez Castellano. Fecha: Julio de 1997. • Software para prácticas de cifrado y descifrado del sistema de cifra con mochila

de Merkle - Hellman realizado en Delphi. • Se ha incluido una librería para trabajar con números grandes: decenas o

centenas de dígitos, y herramientas básicas de trabajo dentro de un cuerpo. • Permite el diseño de mochilas del tamaño y datos que desee el usuario, con

tamaño recomendable M-H o bien mochilas con un tamaño proporcional al modelo recomendado por Merkle y Hellman.

• Una vez creada una mochila, el programa incluye la opción de criptoanálisis de la misma según el método de Shamir y Zippel, indicando luego de romper la mochila clave los valores analizados hasta lograr su objetivo

• Ayuda en formato Windows estándar y contextual mediante la tecla F1.

http://www.criptored.upm.es/software/sw_m001b.htm

Page 1097: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1096

Otro software que se usa en la asignatura

Además del software propio desarrollado dentro del proyecto Criptolab antes comentado, en las prácticas de la asignatura se usa el siguiente software de libre distribución y enlaces a Internet para la realización de algunas prácticas:

• Generación de claves RSA con OpenSSL• http://www.slproweb.com/products/Win32OpenSSL.html

• Correo electrónico y cifrado: PGP versión 8.0 Windows• http://www.criptored.upm.es/paginas/software.htm#freeware

• Esteganografía: Página de herramientas Steganos Security• http://www.stegoarchive.com/

• Criptografía visual: página Web del Dr.Stinson• http://www.cacr.math.uwaterloo.ca/~dstinson/visual.html

• Criptografía cuántica: página de Dartmouth College• http://www.cs.dartmouth.edu/~jford/crypto.html

Page 1098: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1097

Referencia: “Enseñanza de la Criptografía en España. Primer Informe sobre Perfiles de Asignaturas”. Jorge Ramió A., Pino Caballero G.; revista SIC número 34, España, abril de 1999. Gráfica publicada en Ciberpaís, España.(Email Dra. Pino Caballero: [email protected])

La formación universitaria en España

• Un entorno universitario propicio.• Potenciación del mercado laboral.• Una legislación específica y muy

fuerte en seguridad informática.

El crecimiento tan marcado de esta oferta en España tiene su justificación en diversos hechos de ocurrencia casi simultánea:

Esta expansión no se ha dado aún en los países de Latinoamérica; sin embargo, hay que estar atentos puesto que el auge de las tecnologías de seguridad de la información es un fenómeno de carácter mundial.

En 1990 la oferta es de 1 asignatura. En 1998, ésta crece hasta 37. En 2005, son más de 60.

Page 1099: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1098

Hay un desarrollo muy dispar entre los países de Iberoamérica. Detrás de un crecimiento espectacular en España en los últimos 10 años (1994-2004), sólo muestran una oferta relativamente alta Brasil, Argentina, México y Colombia.

Est

imac

ión

de la

ofe

rta a

med

iado

s de

200

4

Otros países que no aparecen en este

cuadro presentan una oferta docente muy muy baja o casi nula.

Aunque estos datos son una estimación, los valores se basan

en un informe del autor y la posterior

observación de la oferta universitaria

en dichos países.

La oferta docente en Iberoamérica

Page 1100: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1099

Irvine, Chin y Frincke en su artículo Integrating Security into the Curriculum, Revista IEEE, diciembre de 1998, comentaban que: “La Seguridad Informática podría ser el objetivo principal de un curriculum que debería investigar los fundamentos y enfoques técnicos de la seguridad con una profundidad considerable”.El autor de este libro viene insistiendo desde el año 2000 en la necesidad de una formación amplia en seguridad informática en nuestras universidades. Si bien puede ser utópico un título de Ingeniero en Seguridad Informática, gran parte del temario que propongo a continuación se imparte en varios cursos de Máster en España y en algunos países de Latinoamérica. Y en 2005 algunas universidades españolas ya comienza a pensar en ello ☺.En mi ponencia Introducción de las enseñanzas de seguridad informática en los planes de estudio de las ingenierías del siglo XXI, Congreso JENUI, Palma de Mallorca, España, julio de 2001, comentaba: “Se detecta una necesidad en el mercado de nuevos perfiles de ingenieros en seguridad pero no existe respuesta adecuada de la universidad”.

¿Una Ingeniería en Seguridad Informática?

Page 1101: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1100

Fundamentos y Temas Avanzados de la Aritmética Modular (6 cr.)Principios y operaciones con cuerpos finitos.Algoritmos de cálculos en cuerpos finitos: inversos, raíces, etc.Cálculos en Campos de Galois GF.Factorización y cálculos con polinomios en GF.Uso de curvas elípticas en criptografía.

Fundamentos de la Seguridad Informática (4,5 cr.)Conceptos básicos de la seguridad informática.Historia de la criptografía, sistemas de cifra clásicos.Teoría de la información en seguridad y criptografía.Complejidad de los algoritmos en seguridad y criptografía.

Gestión de la Seguridad Informática (6 cr.)Políticas de seguridad informática, normativas y estándares.Planes de contingencia y de recuperación ante desastres.Esquemas de protección física de los datos y copias de seguridad.

Créditos propuestos para un Máster (1/4)1 crédito docente corresponde a 10 horas de clase de teoría o de prácticas

Avance por años o cursos

Page 1102: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1101

Legislación en Seguridad Informática (4,5 cr.)Leyes de protección de datos.Leyes de firma digital, comercio electrónico, etc.Legislación de ámbito internacional.Delito informático.

Criptografía (6 cr.)Cifrado simétrico y asimétrico.Algoritmos de autenticación y funciones hash.Algoritmos de firma digital.Algoritmos y esquemas de certificados digitales.Correo electrónico seguro y esquemas híbridos.Comparativa y fortaleza de los algoritmos de cifra.

Seguridad en Sistemas Operativos, Lenguajes y Bases de Datos (9 cr.)Sistemas operativos seguros, libro naranja.Seguridad en entornos Windows, Linux, Unix, Solaris.Programación y rutinas de seguridad en C++ y Java.Seguridad en SGBD y bases de datos distribuidas.

Créditos propuestos para un Máster (2/4)

Page 1103: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1102

Seguridad en Redes (12 cr.)Protocolos de seguridad en Internet e Intranet.Plataformas y pasarelas seguras: SHTTP, SSL, TLS, IPSec.Instalación y gestión de un servidor Web y de correo seguros.Autenticación en redes: Kerberos, SSH, X.509.Instalación y gestión de Autoridades de Certificación.Protección con cortafuegos, detección de intrusos, DoS.Redes privadas virtuales VPN, túneles.Redes inalámbricas: protocolos, estándares, vulnerabilidades.Gestión y fortificación de la máquina.Herramientas de control y auditoría de la máquina.Hacking ético: test de penetración.

Virus Informáticos (4,5 cr.)Clasificación, características y tipos de virus.Medidas de alerta, protección y eliminación.Análisis de algoritmos malignos, hoax, spam, gusanos y troyanos.Seguimiento y caracterización de un virus en lenguaje de bajo nivel.

Créditos propuestos para un Máster (3/4)

Page 1104: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1103

Negocio y Comercio Electrónico (4,5 cr.)Normas del mercado de e-commerce, e-business.Aspectos comerciales del inicio de actividades.Seguimiento de las transacciones en la red.Norma SET y otros estándares.Caracterización de tipos de comercio electrónico.Aspectos técnicos del e-government.

Auditoría, Peritaje y Forensia Informática (7,5 cr.)Técnicas de auditoría.Auditoría de sistemas y seguridad.Auditoría jurídica.Peritaje y técnicas forenses en seguridad informática.

Temas Avanzados en Criptografía y Seguridad Informática (4,5 cr.)Protocolos criptográficos: e-voting, e-gaming, conocimiento cero, ...Cifra avanzada: esteganografía, autómatas celulares, criptografía cuántica, ...Autenticación avanzada: biometría, smartcards, notarios electrónicos, ...Tecnología de tarjetas inteligentes: interconexión, funcionalidades, ...Protección del copyright, marcas de agua, sellos de tiempo, ... etc.

Con cerca de 350 horas de teoría...

y otras 350 horas de

prácticas.

Una formación técnica con 11 asignaturas y unas 700 horas

Créditos propuestos para un Máster (4/4)

Todos estos temas deberían ser del conocimiento de un Responsable o Director de Seguridad Informática ☺

Page 1105: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1104

Cuestiones y ejercicios (1 de 2)

1. En un texto cifrado por sustitución afín, se tiene como criptograma C = PCERC QBCSK AQBGR LGFJQ KCXKÑ LCECN RKZHL KKXGF LCAFB. ¿Qué es lo primero que hacemos? Ataque el criptograma con el software de la asignatura. ¿Qué puede concluir?

2. Con el cifrador de Vernam y código Baudot ciframos M = SOL con la clave K = MAR. ¿Qué se obtiene como criptograma?

3. Observando el código ASCII/ANSI de nivel bajo en binario, ¿Por qué es desaconsejable cifrar con mochilas de tamaño 4 u 8?

4. La clave DES escrita en código ASCII es K = HOLAhola. ¿Cuál sería en este caso la clave de 56 bits? ¿Qué puede decir de esto?

5. Observando la tabla de primos del 1 al 1.000 y de 1.001 al 2.000, ¿podríamos concluir que en una ventana igual (2.001 al 3.000; 3.001 al 4.000, etc.) cada vez hay más números primos? ¿Por qué?

Page 1106: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1105

Cuestiones y ejercicios (2 de 2)

6. ¿Por qué en módulo 37 existen más inversos que en módulo 27?7. Codifique en base 64 el texto de 10 caracteres M = ¡Qué tal!8. ¿Qué mensaje hay en M’ = v01lb nNham Ugb2N 1bHRv Pw= =

que está codificado en base 64? ¿Por qué el relleno es igual a dos?9. ¿En cuánto aumenta el tamaño cuando convertimos ASCII/ANSI a

código base 64? ¿Es eso significativo en PGP? ¿Por qué sí o no?10. ¿En qué zona podemos decir que el código ASCII y el ANSI son

iguales? 11. ¿Se codificará igual en ASCII que en ANSI el mensaje M1 = “Voy

a entrar”? Y si ahora el mensaje es M2 = “Pasa, está abierto” ¿Qué consecuencias puede tener esto en un programa?

12. Un mensaje codificado en ANSI hexadecimal es 43 72 69 70 74 6F 67 72 61 66 ED 61, ¿cuál es el texto en castellano?

Page 1107: Seguridad Informatica

© Jorge Ramió Aguirre Madrid (España) 2006

Capítulo 21: Bibliografía, Enlaces, Tablas, Software y Documentos Página 1106

Palabras finales del autor

Estimado/a amigo/a: si estas diapositivas le han servido para su formación en seguridad o bien las ha podido usar para dar formación a terceros, puedo decir misión cumplida ☺.Como seguro comprenderá, la tarea de actualizar cada año un libro electrónico como éste, precisamente en un área como la seguridad informática, de un desarrollo vertiginoso, resulta muy pesada... y ya van seis ediciones. Por este motivo y dado que, además de la coordinación de la la Red Temática Iberoamericana de Criptografía y Seguridad de la Información CriptoRed, posiblemente deberé trabajar en proyectos relacionados con la Seguridad de la Sociedad de la Información, es muy posible que a partir de hoy las versiones de este libro tengan una mayor vigencia y su actualización se plantee cada dos o más años.

Fin del capítulo y del libro

Page 1108: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 1

Estimados amigos y amigas: Este capítulo dedicado a las técnicas de la criptografía clásica, corresponde al tercero del libro de título Aplicaciones Criptográficas, en su segunda edición de junio de 1999, ISBN 83-87238-57-2, publicado por el departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España. Puesto que estas técnicas y artilugios no dejan de ser un mero entretenimiento cultural en cuanto a su importancia en la criptografía actual, en posteriores ediciones electrónicas de este libro se ha incluido sólo una pequeña reseña al respecto, dándole la importancia que se merecen los sistemas actuales de cifra simétrica y asimétrica, autenticación, firma digital, protocolos, etc. No obstante, y dado que muchas personas me lo han solicitado, lo incluyo también en esta versión 4.0 del libro electrónico, de forma que al lector le sea más fácil estudiar y familiarizarse con estas técnicas de criptoanálisis ancestrales ;-) ... y que, sin embargo, son muy didácticas y permiten consolidar muchos conceptos. Las referencias que encontrará en este documento a capítulos anteriores sobre Teoría de la Información y Matemática Discreta, así como tablas, puede verlas en el libro electrónico: http://www.criptored.upm.es/guiateoria/gt_m001a.htm. MUY IMPORTANTE: este formato NO está optimizado para ninguna impresora. Por tanto, antes de imprimirlo ajuste el formato de este documento a su impresora para que las figuras, tablas y matrices se impriman correctamente. Madrid, 1 de marzo de 2005 El autor

Lo que conduce y arrastra al mundo no son las máquinas sino las ideas.

Victor Hugo (1802 - 1885)

CRIPTOSISTEMAS CLÁSICOS Antes de comenzar este capítulo, permítame una breve aclaración. Como habrá podido comprobar por el contenido –si es que lo ha leído claro- al apartado de la criptografía clásica le he dedicado un buen número de páginas, casi la cuarta parte del libro. Si esto es mera historia –cultura diría alguien y con toda razón- ¿por qué dedicarle tantas páginas en un libro con un perfil universitario y carácter técnico? Buena pregunta, pero tengo para ello una buena respuesta. Los temas de Teoría de la Información y Matemática Discreta vistos en un capítulo anterior pueden entenderse mucho mejor aplicando estos conceptos a criptosistemas reales. Por otra parte, los sistemas que hemos denominado clásicos son especialmente sencillos y didácticos, lo que los convierte en idóneos para fortalecer aquellos conceptos. Además, si este libro cae en manos de un lector o lectora que no tenga este perfil universitario, le será de gran ayuda y seguramente pasará un rato divertido. No hay mucha bibliografía sobre estos temas. Ahora bien, si no desea inmiscuirse en la historia de la criptografía, puede obviar su lectura No obstante, siempre es bueno adquirir una cierta cultura sobre un tema tan apasionante como éste y que, por una u otra razón, puede estar de moda. Así, en cualquier tertulia podrá hacer el comentario oportuno y ocurrente ante sus amigos/as y quedar muy bien. Por lo tanto, aunque sea a vuelo de pájaro, le recomiendo su lectura. Además del libro electrónico ya comentado, en la asignatura de Seguridad Informática de la EUI–UPM se ha desarrollado diverso software de prácticas con diversos algoritmos, entre ellos éstos clásicos, entre otros, permitiendo al usuario comprobar en su ordenador las técnicas de cifra, descifrado y, lo que es más interesante, el criptoanálisis de muchos de ellos. Puede encontrarlos junto a otros programas en: http://www.criptored.upm.es/paginas/software.htm#propio.

Page 1109: Seguridad Informatica

2 CRIPTOSISTEMAS CLÁSICOS

1.1. INTRODUCCIÓN ¿Qué entendemos por criptosistemas clásicos? En un capítulo anterior comentábamos que los sistemas de cifra podían clasificarse de varias formas, siendo la más aceptada aquella que toma en cuenta la característica del secreto de la clave, dando lugar a criptosistemas de clave secreta y criptosistemas de clave pública. Precisamente en ello nos centraremos tanto en éste como en los siguientes capítulos del libro. Ahora bien, la criptología tal y como hoy en día se concibe, una técnica de enmascaramiento de la información estrechamente unida al mundo de la informática, las redes de ordenadores y las autopistas de la información, poco tiene que ver con aquella asociada a fascinantes máquinas de cifrar, que adquirieron gran fama tras su uso en la Segunda Guerra Mundial y más aún, remontándonos a siglos pasados, con los métodos, técnicas y artilugios utilizados por emperadores, gobernantes, militares y en general diversas civilizaciones para mantener sus secretos a buen recaudo. En aquellos tiempos, el mundo de la criptología estaba vinculado directamente con el poder fáctico, ligado a secretos de estado, asuntos militares, de espionaje y diplomáticos, en todo caso siempre seguido de una aureola de misterio y que incluso salta a la literatura de ficción en el cuento "El escarabajo de oro" de Edgar Allan Poe, publicado en 1843 en "Dollar Newspaper". Se trata de un relato de aventuras cuyo eje principal gira en torno al criptoanálisis de un conjunto de caracteres extraños que aparecen en un pergamino cifrado y cuyo texto esconde el lugar exacto donde se encuentra enterrado el valioso tesoro de un pirata de nombre Kidd. El sistema de cifra es uno de los más simples, el denominado monoalfabético por sustitución con alfabeto mixto, de forma que nuestro protagonista William Legrand no tiene más que aplicar las estadísticas del lenguaje, alguna que otra suposición sobre formación de palabras y una pizca de intuición para hacer corresponder los signos del enigmático criptograma con letras del alfabeto y así descriptar el mencionado pergamino. Le recomiendo su lectura. A comienzos del siglo XX el uso de la criptografía en las transmisiones de mensajes cobra una importancia inusitada por los tiempos que corrían (Primera y Segunda Guerras Mundiales), originando esto un gran auge tanto de las técnicas como de las máquinas de cifrar. El 17 de enero de 1917 William Montgomery, criptoanalista de la sección diplomática de la famosa Habitación 40 del Almirantazgo de la Marina Británica en Londres, intercepta un telegrama lleno de códigos que el Ministro de Relaciones Exteriores alemán Arthur Zimmermann envía a su embajador en los Estados Unidos. Tras romper los códigos, descubren atónitos que entre otras cosas el mensaje anunciaba la guerra con los Estados Unidos. Con ello los Estados Unidos entran en la confrontación mundial y ayudan a los aliados a ganar la guerra. Según palabras de David Khan, autor de la obra más completa sobre historia de la criptografía1, "Nunca un único criptoanálisis ha tenido tan enormes consecuencias". De hecho, el descubrimiento de este secreto cambió el rumbo de la historia. Y no es el único caso.

1 Khan, David, "The Codebreakers. The Story of Secret Writing", Macmillan Publishing Company, New

York, 1967, pp. 266 ss. y 282 ss.

Page 1110: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 3

Otro ejemplo histórico lo tenemos en plena Segunda Guerra Mundial. El 7 de diciembre de 1941, la radio de la estación naval de Bainbridge Island, cerca de Seattle, intercepta un mensaje de solamente 9 minutos desde Tokyo a la Embajada Japonesa en los Estados Unidos. El radiotelegrama estaba cifrado con una máquina que los norteamericanos llamaron Purple, cuyo código fue roto por William Friedman, quizás el criptólogo más importante de la historia, y un grupo de criptoanalistas. Si bien es cierto que ello no pudo evitar el ataque de los japoneses a Pearl Harbor, el esfuerzo realizado por todos en la destrucción de tales códigos jugó luego un papel fundamental y marcó la derrota del pueblo nipón así como el fin de la guerra. En resumen, si se repasa la historia de la primera mitad del siglo XX y en especial todo lo relativo a la información secreta que se transmitía por radio en forma cifrada y que, tras ser interceptada por el enemigo, era criptoanalizada en verdaderas empresas rompedoras de códigos, no resulta nada extraño las afirmaciones hechas por políticos de la época en cuanto a que el uso de las técnicas criptográficas cambió el curso de los acontecimientos, desequilibrando la balanza hacia un sentido. El lector interesado en este apasionante tema histórico, encontrará en el libro de David Khan "The Codebrackers" -verdadero tratado sobre la historia de la criptología clásica- una lectura amena y llena de anécdotas sobre las aplicaciones de la criptografía desde sus albores hasta la década de los sesenta. A partir de esta época, serán los ordenadores y la informática quienes toman el relevo del protagonismo en los sistemas de cifra. Decíamos en un capítulo anterior que dos hechos significativos marcan un punto de inflexión en el mundo de la criptografía. El primero de ellos, los estudios que en el año 1948 realiza Claude Shannon sobre teoría de la información y criptología: desde ese momento, la criptología deja de ser considerada como un mero arte rodeado de un cierto aire de misterio y en algunos casos excepticismo, para ser tratada como una rama más de las matemáticas. Hoy también tienen un papel fundamental la informática y las ciencias de la ingeniería. El segundo hecho es la publicación en el año 1976 de un artículo por parte de Whitfield Diffie y Martin Hellman en el que proponen una nueva filosofía de cifra, dando lugar a los criptosistemas de clave pública. Según lo anterior, podríamos afirmar entonces que la criptografía clásica abarca desde tiempos inmemoriales, como veremos a continuación, hasta los años de la posguerra, es decir, hasta la mitad del siglo XX. El adjetivo de clásica, en contraposición al de criptosistemas modernos, se debe tanto a las técnicas utilizadas en las primeras, básicamente operaciones de sustitución y transposición de caracteres, con o sin clave pero siempre unido al concepto de clave secreta, como al uso de máquinas dedicadas a la cifra. En el caso de los sistemas modernos, éstos hacen uso, además de lo anterior, de algunas propiedades matemáticas como, por ejemplo, la dificultad del cálculo del logaritmo discreto o el problema de la factorización de grandes números, como vimos en el capítulo anterior, unido esto a la representación binaria de la información. No obstante, muchos sistemas modernos y que en la actualidad se siguen utilizando, como los algoritmos de clave secreta DES e IDEA, se basan en conceptos que podríamos denominar clásicos como son los de transposición y sustitución con una clave privada, si bien en estos sistemas la operación se realiza sobre una cadena de bits y no sobre caracteres.

Page 1111: Seguridad Informatica

4 CRIPTOSISTEMAS CLÁSICOS

Muchos de los criptosistemas clásicos, en particular aquellos que transforman el mensaje en claro aplicando técnicas de sustitución y transposición, basan su seguridad principalmente en el secreto de la transformación o algoritmo de cifra. Es ésta también una diferencia fundamental con respecto a los sistemas modernos, en los que el algoritmo se hace público puesto que la fortaleza del sistema reside en la imposibilidad computacional de romper una clave secreta. Observe que el hacer público el algoritmo de cifra permite al criptólogo evaluar la calidad del software desarrollado, en tanto será estudiado por la comunidad científica intentando buscar un defecto, una puerta falsa, una rutina innecesaria, una codificación no depurada, etc. De todos los sistemas clásicos, cuya diversidad es enorme como puede comprobar el lector del libro de Khan, en este capítulo sólo analizaremos algunos; los más conocidos y que, de alguna forma, nos servirán como apoyo para profundizar y aplicar algunos conceptos que sobre criptosistemas, seguridad informática, teoría de la información, de los números y de la complejidad de los algoritmos han sido estudiados en los capítulos anteriores. 1.1.1. Un poco de historia • La escítala Ya en siglo V antes de J.C. los lacedemonios, un antiguo pueblo griego, usaban el método de la escítala para cifrar sus mensajes. El sistema consistía en una cinta que se enrollaba en un bastón y sobre el cual se escribía el mensaje en forma longitudinal como se muestra en la Figura 1.1. A S I C I F R A B A N C O N L A E S C I T A L A Figura 1.1. Cifrado mediante sistema de escítala. Una vez escrito el mensaje, la cinta se desenrollaba y era entregada al mensajero; si éste era interceptado por cualquier enemigo, lo único que se conseguía era un conjunto de caracteres o letras distribuidas al parecer de forma aleatoria en dicha cinta. Incluso si el enemigo intentaba enrollar la cinta en un bastón con diámetro diferente, el resultado obtenido era un conjunto de letras escritas una a continuación de otra sin sentido alguno. Por ejemplo, en el caso de la figura 1.1, la cinta llevará el mensaje M = ASI CIFRABAN CON LA ESCITALA si bien en ella sólo podrá leerse el criptograma C = AACSNIICTCOAINLFLARAAEBS. Para enmascarar completamente la escritura, es obvio que la cinta en cuestión debe tener caracteres en todo su contorno. Como es de esperar, la clave del sistema residía precisamente en el diámetro de aquel

Page 1112: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 5

bastón, de forma que solamente el receptor autorizado tenía una copia exacta del mismo bastón en el que enrollaba el mensaje recibido y, por tanto, podía leer el texto en claro. En este sistema no existe modificación alguna del mensaje; es decir, éste va en claro desde el transmisor hacia el receptor, por lo que como veremos más adelante se tratará de un cifrador por transposición. De esta forma se lograba el objetivo de la confidencialidad, en tanto que la integridad estaba en entredicho y dependía de lo aguerrido y fiel que fuese nuestro mensajero. Si la cinta era robada y se cambiaban los caracteres, podría llegar al receptor un mensaje sin sentido y, lo que es peor, con un duplicado del bastón original podía enviarse un mensaje con sentido completamente distinto al encomendado al mensajero. Haga un viaje mental al pasado e imagínese lo que significaría en aquellos tiempos que el destinatario recibiera el mensaje falso MF = RENDICIÓN TOTAL en vez del verdadero mensaje MV = ATACAMOS MAÑANA, ambos de 14 caracteres. Sin duda a más de alguno este desliz le costaría su preciada cabeza. Para terminar, un apunte curioso y de cultura general. De estos tiempos tan remotos se debe la famosa frase de ostentar el "bastón de mando" –tan popular entre nuestros queridos políticos y en particular alcaldes- y que, como es de suponer, en aquella época no se soltaba por ningún motivo puesto que en él residía la seguridad del sistema de información y la vida política de este pueblo de la antigua Grecia. • El cifrador de Polybios A mediados del siglo II antes de J.C., encontramos el cifrador por sustitución de caracteres más antiguo que se conoce. Atribuido al historiador griego Polybios, el sistema de cifra consistía en hacer corresponder a cada letra del alfabeto un par de letras que indicaban la fila y la columna en la cual aquella se encontraba, en un recuadro de 5 x 5 = 25 caracteres, transmitiéndose por tanto en este caso el mensaje como un criptograma. En la Figura 1.2 se muestra una tabla de cifrar de Polybios adaptada al inglés, con un alfabeto de cifrado consistente en el conjunto de letras A, B, C, D y E aunque algunos autores representan el alfabeto de cifrado como los números 1, 2, 3, 4 y 5. A B C D E 1 2 3 4 5 A A B C D E 1 A B C D E B F G H IJ K 2 F G H IJ K C L M N O P 3 L M N O P D Q R S T U 4 Q R S T U E V W X Y Z 5 V W X Y Z Figura 1.2. Tablas de cifrar de Polybios. Acorde con este método, la letra A se cifrará como AA, la H como BC, etc. Esto significa que aplicamos una sustitución al alfabeto {A, B, C, .., X, Y, Z} de 26 letras convirtiéndolo en un alfabeto de cifrado {AA, AB, AC, ..., EC, ED, EE} de 25 caracteres, si bien sólo existen 5 símbolos diferentes {A, B, C, D, E}. Este tipo de tabla o matriz de cifrado será muy parecida a la que en el siglo XIX se utilizará en el criptosistema

Page 1113: Seguridad Informatica

6 CRIPTOSISTEMAS CLÁSICOS

conocido como cifrador de Playfair y que será tratado más adelante en el apartado de cifradores poligrámicos, salvo que en este último la operación de cifra no se realiza por monogramas como en el de Polybios sino por digramas, conjunto de dos caracteres del texto en claro. Ejemplo 1.1: Usando la Tabla del cifrador de Polybios, cifre el mensaje: M = QUE BUENA IDEA LA DEL GRIEGO. Solución: C = DADEAE ABDEAECCAA BDADAEAA CAAA ADAECA BBDBBDAEBBCD. Aunque resulte elemental, se deja como ejercicio para el lector encontrar el criptograma cuando se utiliza la tabla de Polybios con representación numérica. El criptograma que se obtiene con este cifrador tiene una extensión de caracteres igual al doble de la del texto en claro, característica que no puede considerarse precisamente como una virtud de este método de cifra. En realidad no fue tan buena la idea. • El cifrador del César Unos cincuenta años después del cifrador de Polybios, en el siglo I antes de J.C., aparece un cifrador básico conocido con el nombre genérico de cifrador del César en honor al emperador Julio César y en el que ya se aplica una transformación al texto en claro de tipo monoalfabética. Como se verá en un apartado posterior, el cifrador del César aplica un desplazamiento constante de tres caracteres al texto en claro, de forma que el alfabeto de cifrado es el mismo que el alfabeto del texto en claro pero desplazado 3 espacios hacia la derecha módulo n, con n el número de letras del mismo. En la Figura 1.3. se muestra el alfabeto y por tanto la transformación que utiliza este cifrador por sustitución de caracteres para el alfabeto castellano de 27 letras. Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C Figura 1.3. Alfabeto de cifrado del César para lenguaje castellano. Ejemplo 1.2: Con el cifrador del César según el alfabeto mostrado en la Figura 1.3,

cifre los siguiente mensajes: M1 = VINI, VIDI, VINCI. (Frase célebre de César: llegué, vi, vencí). M2 = AL CÉSAR LO QUE ES DEL CÉSAR. Solución: Aplicando a cada carácter Mi su equivalente Ci de la tabla de la Figura

1.3, se obtienen los siguientes criptogramas: C1 = YLPL, YLGL, YLPFL. C2 = DÑ FHVDU ÑR TXH HV GHÑ FHVDU. A partir del ejemplo anterior, es fácil apreciar ciertas debilidades en este cifrador como, por ejemplo, la repetición de la cadena de caracteres YL en el criptograma primero y FHVDU en el segundo que entregan demasiadas pistas a un posible criptoanalista. Estos y otros puntos débiles del cifrador del César que por ahora no saltan a la vista serán analizados y comentados más adelante.

Page 1114: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 7

• El cifrador de Alberti En el siglo XVI Leon Battista Alberti presenta un manuscrito en el que describe un disco cifrador con el que es posible cifrar textos sin que exista una correspondencia única entre el alfabeto del mensaje y el alfabeto de cifrado como en los casos analizados anteriormente. Con este sistema, cada letra del texto en claro podía ser cifrada con un carácter distinto dependiendo esto de una clave secreta. Se dice entonces que tales cifradores usan más de un alfabeto por lo que se denominan cifradores polialfabéticos, a diferencia de los anteriores denominados monoalfabéticos. Como se aprecia en la Figura 1.4, el disco de Alberti presenta en su círculo exterior los 20 caracteres del latín, esto es, los mismos del alfabeto castellano excepto las letras H, J, Ñ, K, U, W e Y, y se incluyen los números 1, 2, 3 y 4 para códigos especiales. Por su parte, en el disco interior aparecen todos los caracteres del latín además del signo & y las letras H, K e Y. Al ser 24 los caracteres representados en cada disco, es posible definir hasta 24 sustituciones diferentes; es decir, dependiendo de la posición del disco interior la cantidad máxima de alfabetos de cifrado es igual a 24. Luego, para cifrar un mensaje, una vez establecida la correspondencia entre caracteres de ambos discos o, lo que es lo mismo, el alfabeto de cifrado, se repasa letra a letra el texto en claro del disco exterior y se sustituye cada una de ellas por la letra correspondiente del disco interior.

Figura 1.4. Disco cifrador de Alberti. La innovación que supone este sistema consiste en que el alfabeto de sustitución puede ser cambiado durante el proceso de cifrado, por ejemplo cada k caracteres, simplemente girando el disco interior y por tanto utilizando otro alfabeto de sustitución.

Page 1115: Seguridad Informatica

8 CRIPTOSISTEMAS CLÁSICOS

Ejemplo 1.3: Cifre con el disco de Alberti de la Figura 1.4, siendo su posición inicial la

de coincidencia entre el número 1 del disco exterior y el signo & del disco interior, el siguiente mensaje:

M = EL DISCO DE ALBERTI ES EL PRIMER CIFRADOR POLIALFABÉTICO CONOCIDO. Solución: Desplazamos el disco interior dos espacios en el sentido de las agujas del

reloj y leemos el carácter cifrado en el disco interior bajo el carácter correspondiente del texto en claro del disco exterior, obteniéndose:

C = VA EOSMP EV HARVXFO VS VA BXOIVX MOLXHEPX BPAOHALHRVFOMP MPYPMOEP. 1.1.2. CIFRADORES DEL SIGLO XIX En el siglo XIX comienzan a desarrollarse diversos sistemas de cifra con las características polialfabéticas propuestas por Alberti, entre los que destacan el de discos concéntricos de Wheatstone en 1860 y el de cilindros de Bazeries en 1891. • El cifrador de Wheatstone El criptógrafo de Wheatstone mostrado en la Figura 1.5. -según un invento de Decius Wadsworth desarrollado en 1817- sigue, básicamente, el mismo algoritmo de cifra que el de Alberti. Ahora bien, en este caso se utiliza el alfabeto inglés de 26 caracteres más el espacio en blanco para el texto en claro, representado de forma ordenada en el disco exterior, en tanto que el disco interior contiene solamente los 26 caracteres del lenguaje distribuidos aleatoriamente. Las agujas están engranadas de forma que cuando la externa gira 27 posiciones, la interna lo hace 26.

Figura 1.5. Máquina de cifrar de Wheatstone. El método de cifra consiste en hacer girar la aguja externa en el sentido de las manecillas del reloj hasta hacer coincidir cada letra del texto en claro con la letra del disco externo y apuntar el carácter correspondiente que aparece en el círculo interior, incluso para el espacio en blanco. Observe que por la relación de giro de las agujas, éstas se van separando una posición o letra por cada vuelta, de forma que el alfabeto de cifrado será diferente cuando se cumpla cualquiera de estas tres condiciones:

Page 1116: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 9

a) Que se termine una palabra del texto en claro y por tanto demos un giro completo de la aguja mayor al buscar el espacio en blanco.

b) Que aparezcan letras repetidas y tengamos que dar toda una vuelta completa al

buscar la segunda. No obstante, según los autores, en este caso es posible también omitir cifrar la letra repetida o bien cifrar ambas como una única letra poco usual, por ejemplo la letra Q.

c) Que las letras de una palabra no vengan en orden alfabético. Es decir, si ciframos

la palabra CELOS no alcanzamos a dar la vuelta completa al disco exterior, en tanto que la palabra MUJER implica dos vueltas y HOMBRE significa tres. No trate de encontrar ningún mensaje subliminal en estas tres palabras y sus vueltas.

La importancia de este cifrador está en que cada una de las palabras del mensaje influye en la forma en que se cifran las siguientes, una propiedad muy interesante y que precisamente utilizarán los cifradores modernos, sencillamente definiendo el concepto de palabra como bloque de bits para la cifra y aplicando lo que se denomina cifrado con encadenamiento. Ejemplo 1.4: Con la máquina de cifrar de Wheatstone y suponiendo la posición inicial

indicada en la Figura 1.5, cifre los siguientes mensajes: M1 = CHICA FELIZ. M2 = CHICO FELIZ. Solución: C1 = TUNZT T NNWIA. C2 = TUNZW L UUPCZ. Como se observa en el ejemplo anterior, ambos criptogramas presentan los cuatro primeros caracteres iguales pues en el texto en claro de M1 y M2 también son iguales (CHIC). No obstante, la diferencia en el quinto carácter de los textos M1 y M2, hace que los criptogramas resultantes a partir de ese punto sean completamente diferentes, comprobándose así la afirmación de que cada palabra influye en el cifrado de la siguiente. Observe, además, que la primera letra C del texto en claro en ambos casos se cifra como T, en tanto que la segunda vez que aparece se cifra como Z, precisamente un espacio hacia delante en el disco interior. Esto es debido al giro completo que se produce en la operación de cifra luego de cifrar los caracteres C, H e I. Por otra parte, los caracteres repetidos TTNN en C1 y UU en C2 se deben a una revolución completa del disco interior producida por dos caracteres contiguos en el texto en claro y que están separados 26 espacios como es el caso de los digramas "A " y "FE". Por último, apréciese que una misma palabra repetida en el texto en claro se cifrará cada vez con un alfabeto distinto por la rotación completa producida por la búsqueda del espacio en blanco. Por ejemplo el mensaje M = TORA TORA, palabra secreta usada como clave por los japoneses en el ataque a Pearl Harbor y cuyo significado es tigre, se cifrará como C = XWQT Z KQBG.

Page 1117: Seguridad Informatica

10 CRIPTOSISTEMAS CLÁSICOS

• El cifrador de Bazeries El cifrador de Étienne Bazeries, criptólogo francés nacido a finales del siglo XIX, está basado en el cifrador de ruedas de Jefferson, inventado unos 100 años antes por Thomas Jefferson reconocido como el padre de la criptografía americana. El criptógrafo mostrado en la Figura 1.6 consta de 20 discos, cada uno de ellos con 25 letras en su circunferencia, de forma que la clave se establece sobre la generatriz del cilindro, determinándose 25 alfabetos diferentes. Su funcionamiento es el siguiente: para cifrar el mensaje, primero se divide éste en bloques de 20 letras, procediendo luego a su colocación en forma longitudinal en la línea del visor. El criptograma que se envía puede ser cualquiera de las 25 líneas, también llamadas generatrices del cilindro. Por ejemplo, si se elige la generatriz de distancia +2 en la Figura 1.6, el mensaje M = JE SUIS INDECHIFFRABLE del visor se cifraría como C = LOVS PQUU TPUKEJHHCFDA.

Figura 1.6. Máquina de cifrar de Bazeries. Se puede elegir la misma distancia a la generatriz en la cual se lee el criptograma para todo el bloque o bien cambiar ésta en cada bloque o elemento del bloque, de forma que el número de combinaciones o alfabetos distintos en vez de ser solamente 25 podría crecer hasta el factorial de 25, un valor verdaderamente alto. Uno de estos posibles alfabetos podría ser elegir una secuencia de distancias, una vez introducido el mensaje en el visor, igual a -1,-2,-2,-1,1,2,2,1,-1,-2,-2,-1,1,2,2,1,-1,-2,-2,-1. Es decir, una vez se tenga el mensaje en claro en el visor, se envía como primer carácter del criptograma el que, en la misma columna, está desplazado una posición hacia atrás en el anillo; como segundo el que está desplazado dos posiciones atrás, el tercero también dos posiciones atrás, el cuarto una posición atrás, el quinto una posición hacia delante, el sexto dos adelante, etc., de manera que el criptograma forma una especie de zig-zag en torno al texto en claro, sin transmitir ningún carácter de éste puesto que la posición 0 no se encuentra en la secuencia indicada. Como es fácil observar, dicha secuencia sería la clave del sistema y, en este caso, su valor máximo sería igual todas las posible permutaciones es decir 25! = 1,55x1025, un valor muy grande aunque el sistema de cifra sería engorroso y poco práctico. La operación de descifrado consiste en poner los caracteres del criptograma en el visor y buscar en alguna de las líneas el mensaje en claro o seguir el proceso inverso al comentado anteriormente. Como los bloques de criptograma tienen longitud de veinte caracteres, es prácticamente imposible que exista más de una solución con sentido.

Page 1118: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 11

Ejemplo 1.5: Considerando una representación del cifrador de Bazeries como la que se indica a continuación, cifre el mensaje mostrado en el visor de la generatriz 11 del disco: M = INTENTA ROMPER LA CIFRA.

a) Con una distancia constante de +3 espacios. b) Con la secuencia S de distancia de cifrado indicada: S = 0,1,2,1,0,-1,-2,-1,0,1,2,1,0,-1,-2,-1,0,1,2,1. Fila Disco 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 .... 7 V A M W W U I O P S S A H K L V C D U Q 8 M O J F J K L M A C H Y E D X Z G Q I U 9 D B W Q D S B D Q T F D S F D X E W Q G 10 A W K Y H M P E S H U K P U O E S J K D 11 I N T E N T A R O M P E R L A C I F R A 12 R G I S X F W G B A N L F M J H A A S H 13 U I D V C R I I Z D D C Z A K I M B L X 14 K L B O T Z H Y L V C O N D W A L M V Z 15 W H S K L P O U I E E P D N C G Q E O B ...... Solución: a) C = KLBOTZHYLVCONDWALMVZ. b) Según la secuencia indicada, tomamos caracteres consecutivos de las

líneas 11,12,13,12,11,10,9,10,11,12,13,12,11,10,9,10,11,12,13,12 que se encuentran subrayados. C = IGDSNMBEOADLRUDEIALH.

Todos los sistemas comentados y muchísimos otros que se desarrollaron paralelamente en Europa, América y Asia, han sido criptoanalizados incluso sin contar con la ayuda de equipos informáticos. No obstante, la discusión de su criptoanálisis está fuera del objetivo de este libro, por lo que al lector interesado en tales temas históricos se le remite nuevamente al libro de Khan y a las publicaciones que se indican.2

1.1.3. Máquinas de cifrar en el siglo XX Ya entrado el siglo XX, aproximadamente unos 20 años antes de que estalle la Segunda Guerra Mundial, se desarrollan diversas máquinas de cifrar con rotores o ruedas que permiten un cifrado polialfabético, dando lugar a un importante número de claves secretas que, para aquel entonces, dificultaba in extremis el criptoanálisis. Este desarrollo a nivel industrial de los criptosistemas resulta lógico pues en aquellos años previos a dicha confrontación mundial, estaba todavía muy fresco en la memoria de todos, y en especial de gobernantes y militares, los efectos de la Primera Guerra Mundial, por lo que las medidas de seguridad ante el miedo al espionaje adquirían una importancia vital. Recuerde el famoso telegrama de Zimmermann comentado al comienzo del capítulo.

2 Deavours, Cipher; Khan, David; Kruh, Louis; Mellen, Greg; Winkel, Brian, "Cryptology: Machines,

History & Methods", Artech House, 1989. Bauer, F.L., “Decrypted Secrets. Methods and Maxims of Cryptology”, Springer, 1991.

Page 1119: Seguridad Informatica

12 CRIPTOSISTEMAS CLÁSICOS

De estas máquinas, cuyo papel principal fue su utilización para enviar mensajes cifrados precisamente en la Segunda Guerra Mundial, destacan tanto por sus características como por el halo de misterio que las rodeaba dos de ellas: la máquina Enigma y la de Hagelin. Encontrará fotografías y esquemas muy interesantes sobre éstas y otras máquinas de cifrar en el libro de Khan, en la referencia anterior y en el software del Libro Electrónico de Criptografía Clásica en Toolbook que puede descargar gratuitamente desde http://www.criptored.upm.es/software/sw_m001a.htm. • La máquina Enigma Inventada por el ingeniero alemán Arthur Scherbius en el año 1923, la máquina Enigma consiste en un banco de rotores montados sobre un eje, en cuyos perímetros había 26 contactos eléctricos, uno por cada letra del alfabeto inglés. En realidad el precursor de este tipo de máquinas con rotores fue Edward Hugh Hebern que algunos años antes inventa y comercializa los denominados cifradores de códigos eléctricos. Esta máquina debe su fama a la amplia utilización durante la Segunda Guerra Mundial, en especial por parte del ejército alemán. El imperio japonés también cifra sus mensajes con una máquina similar denominada Purple. Estos códigos, por muy difíciles que puedan parecer, fueron rotos por los criptoanalistas de la época. Los rotores se desplazan como un odómetro. Es decir, al cifrar un carácter el primer rotor avanza una posición y sólo cuando éste ha realizado una rotación completa, el segundo se desplaza un carácter, y así sucesivamente. Estos volverán a su posición inicial, tras un período igual a nt. Por ejemplo, en un sistema con 4 rotores, se utilizan de 264 = 456.976 alfabetos. Si aumentamos los rotores a 5, esta cantidad asciende a 11.881.376. La operación de cifra para estas máquinas sigue la siguiente congruencia: Ei(M) = (fi(M - pi)mod 26 + pi) mod 26 1.1 En la ecuación anterior, pi es la posición en la que se encuentra el rotor iésimo y fi la correspondencia de los caracteres de la cara anterior y posterior de este rotor. Por lo tanto, el carácter iésimo Mi del mensaje M = m1m2m3... se cifrará como: Eki(Mi) = Ft ∗ ..... ∗ F1(M) 1.2 • La máquina Hagelin La máquina Hagelin fue inventada por el criptólogo sueco Boris Hagelin, quien adquirió en 1927 la fábrica de máquinas de cifrar de Arvid G. Damm, otro inventor sueco que no tuvo la suerte de sacar un producto competitivo en el mercado. Entre los años veinte y los treinta, Hagelin diseña diversas máquinas (B-21, B-211, C-36, C-48, etc.) en las que a través de ruedas con piñones realiza una cifra similar a la utilizada por el sistema de Beaufort que veremos más adelante. La particularidad de estas máquinas que a la postre hizo millonario a Hagelin, probablemente ante la desesperación de Damm, estaba en una periodicidad muy alta puesto que el número de dientes de las diferentes ruedas eran primos entre sí. Para

Page 1120: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 13

seis ruedas estos valores eran 26, 25, 23, 21, 19 y 17, de forma que el período era igual a su producto, un valor que supera los 100 millones. La ecuación matemática que representa al cifrado de Hagelin es: Eki(Mj) = (ki - Mj) mod 26 1.3 1.2. ALFABETOS Y CARACTERÍSTICAS DEL LENGUAJE 1.2.1. Alfabetos de cifrado En la mayoría de los cifradores clásicos se utiliza como alfabeto de cifrado el mismo alfabeto del texto en claro. Para poder aplicar las operaciones de transformación se asocia a cada letra del alfabeto un número de forma que a la letra A le corresponde el 0, a la letra B el 1, etc. De esta manera, si nos centramos en el castellano, podríamos definir en principio cinco tipos de alfabetos: Alfabeto 1: Letras mayúsculas: aritmética módulo 27. Alfabeto 2: Letras mayúsculas con números 0-9: aritmética módulo 37. Alfabeto 3: Letras mayúsculas y minúsculas: aritmética módulo 59. Alfabeto 4: Letras mayúsculas, minúsculas y números: aritmética módulo 69. Alfabeto 5: Todos los caracteres imprimibles ASCII: aritmética módulo 224. En los cuatro primeros casos no se tiene en cuenta el carácter del espacio en blanco (valor ASCII 32) puesto que ello entregaría en muchos cifradores clásicos una inapreciable pista al hipotético criptoanalista. Tenga en cuenta que para un texto en castellano en el que el alfabeto considerado sea el de 27 letras más el espacio en blanco, este último presenta una frecuencia de ocurrencia de casi un 20%, siguiéndole muy por detrás las letra E y A, con valores en el orden del 10%. No obstante, si eliminamos este carácter y ciframos los mensajes solamente con las 27 letras del alfabeto, la letra E presenta una frecuencia de aproximadamente un 13%, la letra A se alza por encima del 10% y los demás caracteres siguen una distribución característica que será tratada en el apartado siguiente. En cuanto al quinto alfabeto, hay 224 caracteres imprimibles, desde el valor 32 al 255, contando claro está con el espacio en blanco, o bien 223 sin éste. Si utilizamos como alfabeto de cifrado el código ASCII deberemos tener especial cuidado con los caracteres no imprimibles, caracteres especiales como los de salto de línea, fin de archivo, etc., que luego podrían no ser recuperables. Es decir, la operación de cifrado y descifrado debe considerar estas condiciones de forma que sólo se transmitan los caracteres que pueden imprimirse y no incluir caracteres extraños en el criptograma. Evidentemente esto sólo tiene sentido en este tipo de cifradores orientados a caracteres en donde para nada se habla de bits. La cifra moderna es digital y, por tanto, este problema no existe. Es más, también podrán traernos de cabeza los códigos distintos que usan los sistemas operativos DOS y Windows para caracteres especiales como, por ejemplo, las minúsculas acentuadas o la letra ñ, en tanto el primero utiliza la tabla de códigos ANSI/ASCII y el segundo la tabla ANSI/OEM (véase el Anexo en el libro electrónico http://www.criptored.upm.es/guiateoria/gt_m001a.htm.

Page 1121: Seguridad Informatica

14 CRIPTOSISTEMAS CLÁSICOS

La Figura 1.7 muestra la correspondencia del alfabeto de texto en claro con números para el alfabeto 1 y el alfabeto 2. Diremos entonces que las operaciones de transformación se realizan en módulo 27 y 37, respectivamente. 10 20 30 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

A1 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A2 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0

Figura 1.7. Correspondencia numérica de alfabetos. Establecer una correspondencia numérica de los caracteres del alfabeto nos permitirá realizar operaciones matemáticas de desplazamiento (adición) y decimación (multiplicación) (*) a los caracteres del texto en claro, de forma que aplicaremos todas las propiedades de la aritmética de los enteros estudiadas en el capítulo segundo. Por ejemplo, siguiendo la tabla de correspondencia del alfabeto A1 y recordando los conceptos de congruencia, las siguientes operaciones nos entregarán como texto final el mensaje TARZAN, el personaje literario creado en 1912 por E. Rice Borroughs.

(*) Nota de la publicación en 1 de marzo de 2005: aunque la palabra “decimación” no existe, se utilizará aquí para indicar cómo se recorre un módulo dando saltos, en donde el tamaño de ese salto corresponde al valor indicado como “decimación”.

X - E = 24 - 4 = 20 = T 4∗A = 4∗0 = 0 = A H + L = 7+11 = 18 = R 8∗K= 8∗10 = 80 ⇒ 80 - 2∗27 = 26 = Z J + R = 9 + 18 = 27 ⇒ 27 - 1∗27 = 0 = A T + T = 20 + 20 = 40 ⇒ 40 - 1∗27 = 13 = N

Luego, cualquier operación tanto de desplazamiento como de decimación, será representada en el mismo anillo. Para que estas transformaciones puedan ser aplicadas en criptografía, como ya hemos comentado en el capítulo dedicado a la aritmética modular, deberá cumplirse que exista el inverso. En el caso de la suma siempre existe el inverso, no así para la multiplicación en donde deberá cumplirse la condición de que la constante de multiplicación y el módulo de trabajo sean primos entre sí. NOTA: En aras de una mayor sencillez, en lo que sigue del capítulo y en tanto no se especifique lo contrario, se supondrá siempre que el alfabeto utilizado es el castellano con letras mayúsculas, es decir 27 letras, con lo que las operaciones se realizarán en módulo 27. 1.2.2. Estadísticas del lenguaje Comentábamos en el capítulo segundo que el lenguaje castellano presenta una gran redundancia. Esto significa que en algunos criptosistemas (básicamente los de tipo clásico orientados al cifrado de caracteres) podremos aplicar esta característica para criptoanalizar textos cifrados. De hecho, lo primero que se plantea todo criptoanalista es suponer que el cifrado es de tipo básico y, por lo tanto, puede

Page 1122: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 15

intentarse el ataque a partir de las estadísticas del lenguaje. Como veremos en el próximo apartado, en lo que concierne a los cifradores clásicos éstos se dividen en monoalfabéticos y polialfabéticos, en tanto se utilice un único alfabeto para cifrar o más de uno. En tales casos, el análisis de las frecuencias relativas de aparición de los caracteres en el criptograma nos indicará si se trata de uno u otro tipo de cifra. Aunque los sistemas clásicos estén en desuso, no por ello deben ser pasados por alto por el criptoanalista. En realidad sería bastante poco agradable perder horas de esfuerzo en la intención de romper una cifra, suponiendo de antemano que el criptosistema en cuestión empleado es de los denominados modernos, para luego caer en la cuenta que aquel complicado enigma se trataba simplemente de un cifrado elemental, que puede romperse fácilmente con herramientas básicas. No quedaríamos muy bien ante nuestros superiores. Por lo tanto, la primera acción que realizará todo criptoanalista será la de contabilizar los caracteres que aparecen en el criptograma para obtener información sobre el tipo de cifra, monoalfabético o polialfabético, e intentar aplicar las técnicas que describiremos más adelante para romper dicha cifra. Si esto no entrega los resultados esperados, buscará otros caminos, yendo como es lógico siempre desde la dificultad menor a la mayor. En la tabla del anexo ya comentado se incluyen las frecuencias relativas de monogramas en el lenguaje castellano módulo 27, esto es considerando sólo las letras mayúsculas. Estos datos nos permiten formar tres grupos de frecuencias relativas: uno de alta frecuencia, otro de frecuencia media y un tercero de frecuencia baja, como se muestra en la Figura 1.8. E 13,11 C 4,85 Y 0,79 A 10,60 L 4,42 Q 0,74 S 8,47 U 4,34 H 0,60 O 8,23 M 3,11 Z 0,26 I 7,16 P 2,71 J 0,25 N 7,14 G 1,40 X 0,15 R 6,95 B 1,16 W 0,12 D 5,87 F 1,13 K 0,11 T 5,40 V 0,82 Ñ 0,10 Frecuencia Alta Frecuencia Media Frecuencia Baja Valores de frecuencia relativa expresadas en tanto por ciento Figura 1.8. Clasificación de frecuencias de caracteres del lenguaje módulo 27. En la figura anterior, hemos considerado como Frecuencia Alta un valor mayor que el 5 por ciento y Frecuencia Baja un valor similar o menor que un 1 por ciento. Observe que mezclando las letras de alta frecuencia podemos formar la palabra ESTIRANDO. Más adelante volveremos a considerar estos nueve caracteres cuando se aborden las técnicas de criptoanálisis. Dependiendo del tipo de texto analizado, aparecerán ligeras diferencias, si bien podemos concluir que los valores se mantienen en el rango indicado. Esto quiere decir que es posible considerar, por ejemplo, la letra L con más peso que la D, incluir en la zona de alta frecuencia la letra C en vez de la letra T, etc. Piénsese en algún documento que contenga información sobre producción y comercialización de un

Page 1123: Seguridad Informatica

16 CRIPTOSISTEMAS CLÁSICOS

determinado bien; es posible que la letra K tenga una contribución mayor por el hecho de que aparezca muchas veces la palabra kilo; lo mismo en un informe médico de radiología, donde la letra X puede tener un mayor peso que el aquí indicado. No obstante, el estudio estadístico de la frecuencia de caracteres tendrá su utilidad sólo en el criptoanálisis de sistemas clásicos por sustitución, en donde supondremos que los mensajes a cifrar se tratará siempre de textos comunes. Es más, en la mayoría de los casos supondremos que tales mensajes contienen solamente caracteres alfabéticos y no del tipo alfanuméricos. La redundancia del lenguaje no sólo nos dice que existen letras más frecuentes que otras. También nos indica la existencia de digramas comunes, trigramas, poligramas y en general palabras de mayor uso que otras. En la tabla del anexo, se recogen los valores de digramas para un texto en castellano sobre seguridad informática, con más de 40.000 caracteres, el mismo utilizado para la obtención de la tabla de monogramas. En dicha tabla aparecen algunos digramas no existentes en castellano como, por ejemplo, CY, KE y KU. La razón es que el texto utilizado es un documento de 41095 caracteres que habla sobre seguridad informática y virus por lo que aparecen de forma reiterada palabras como secrecy, hackers y backup. Observando la tabla de digramas, encontramos que los tres digramas con mayor frecuencia relativa en castellano son DE (1084), ES (1010) y EN (901), con cerca del 2,5 por ciento. Asimismo, existirán digramas con frecuencia nula como sería el caso de QA, KK, ÑL, WZ, etc., pues no forman parte de palabra alguna ni son término e inicio de dos palabras contiguas. No será éste el caso, por ejemplo, de un digrama como NF pues puede ser final e inicio de palabras contiguas en un mensaje como, por ejemplo, rocínflaco, mastínfurioso, o atracciónfatal. Ejemplo 1.6: Para el siguiente texto clásico: a) Encuentre las frecuencias relativas de monogramas. b) Encuentre los 9 monogramas de mayor frecuencia. c) Encuentre la frecuencia relativa de digramas. d) Encuentre los tres digramas más frecuentes. "En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha

mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda. El resto de ella concluían sayo de velarte, calzas de velludo para las fiestas, con sus pantuflos de lo mismo, y los días de entre semana se honraba con su vellorí más fino. Tenía en su casa una ama que pasaba de los cuarenta, y una sobrina que no llegaba a los veinte, y un mozo de campo y plaza, que así ensillaba el rocín como tomaba la podadera. Frisaba la edad de nuestro hidalgo con los cincuenta años; era de complexión recia, seco de carnes, enjuto de rostro, gran madrugador y amigo de la caza. Quieren decir que tenía el sobrenombre de Quijada, o Quesada".

Solución: Se han contabilizado 730 caracteres. a) Las frecuencias relativas de monogramas módulo 27 en % para este

trozo de texto son:

Page 1124: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 17

A 14,38 J 0,41 R 5,75 B 1,64 K 0,00 S 7,53 C 4,38 L 6,99 T 2,88 D 5,75 M 3,15 U 4,93 E 11,37 N 7,53 V 1,10 F 0,68 Ñ 0,00 W 0,00 G 1,92 O 9,73 X 0,14 H 1,10 P 1,51 Y 1,23 I 3,70 Q 1,51 Z 0,68 b) Los nueve monogramas más frecuentes en el texto son: A, D, E, L, N, O, R, S, U. c) Los valores absolutos de frecuencia de digramas en el texto se

muestran en la siguiente tabla: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A 5 6 7 13 6 1 0 0 0 0 0 13 5 9 0 3 1 5 10 14 0 2 0 0 0 2 2 B 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 C 7 0 0 0 0 0 0 3 4 0 0 1 0 3 0 11 0 0 0 0 0 3 0 0 0 0 0 D 10 0 0 1 22 0 0 0 1 0 0 0 0 0 0 5 0 0 1 0 0 2 0 0 0 0 0 E 3 1 9 3 2 0 1 1 1 1 0 14 2 18 0 0 1 1 8 11 1 0 3 0 1 1 0 F 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 G 5 0 0 0 0 0 0 0 0 0 0 0 0 1 0 6 0 0 1 0 0 1 0 0 0 0 0 H 3 0 0 0 1 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 I 1 0 1 3 6 0 2 0 0 1 0 2 0 7 0 0 0 0 1 2 0 0 1 0 0 0 0 J 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 K 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 L 14 0 0 0 4 0 5 0 0 0 0 7 0 0 0 13 1 0 2 1 0 3 0 0 0 0 1 M 6 2 0 0 1 0 0 0 4 0 0 0 0 0 0 3 3 0 0 3 0 1 0 0 0 0 0 N 8 0 4 2 3 1 1 1 0 1 0 4 2 0 0 8 1 0 2 6 8 2 0 0 0 0 1 Ñ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 O 2 2 5 9 0 0 1 2 0 0 0 2 9 7 0 0 1 3 5 16 3 0 0 0 0 3 1 P 5 0 0 0 0 0 0 0 1 0 0 2 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 R 7 0 0 2 10 0 1 0 2 0 0 0 2 3 0 8 0 1 1 0 2 2 0 0 0 1 0 S 7 1 4 8 6 2 0 0 1 0 0 3 2 1 0 2 2 0 0 1 6 5 3 0 0 1 0 T 3 0 0 0 6 0 0 0 3 0 0 0 0 0 0 4 0 0 4 0 0 1 0 0 0 0 0 U 3 0 2 1 11 1 2 1 3 0 0 0 1 6 0 0 0 0 1 1 1 0 1 0 0 1 0 V 2 0 0 0 4 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Y 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 2 1 1 0 0 0 2 0 0 0 0 0 Z 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 d) Los tres digramas más frecuentes del texto son DE con 22 apariciones,

EN con 18 y OS que aparece 16 veces. En el ejemplo anterior, a pesar de que el texto no tiene la longitud que sería recomendable para obtener unos resultados que sean fieles a la realidad de la ratio y redundancia del lenguaje, sí deja entrever una tendencia marcada del mayor peso de algunas letras y conjunto de letras. De las 9 letras de mayor peso en este texto, 7 corresponden a la clasificación de Alta Frecuencia que habíamos hecho. En cuanto a los digramas, existe una mayor dispersión como es natural porque el texto analizado es muy corto. No obstante, para este texto con 726 digramas, dos de los tres digramas más comunes del texto, DE con un 3,0 % y EN con el 2,5 %, son

Page 1125: Seguridad Informatica

18 CRIPTOSISTEMAS CLÁSICOS

también los más frecuentes en el lenguaje castellano con valores de frecuencia muy similares. 1.3. CLASIFICACIÓN DE LOS CRIPTOSISTEMAS CLÁSICOS El cifrado o cifra es una técnica para ocultar un mensaje y evitar que sea legible si éste es interceptado por una persona no autorizada. Por lo tanto, el objetivo básico es mantener seguros unos datos dentro de un entorno como puede ser una línea de transmisión o un sistema de almacenamiento que ya hemos visto es inseguro. Como protección utilizaremos métodos o algoritmos para cifrar la información. En una primera aproximación, en este caso bajo el punto de vista histórico, clasificaremos estos métodos de cifra como Criptosistemas Clásicos y Criptosistemas Modernos.

TRANSPOSICIÓN SUSTITUCIÓN

GRUPOS Escítala

SERIES

COLUMNAS/FILA

MONOALFABÉTICA POLIALFABÉTICA

MONOGRÁMICA POLIGRÁMICA

ALFABETO ESTÁNDAR Cifrador del César

TRANSFORMACIÓN Cifrador sustitución afín

ALFABETO MIXTO

DIGRÁMICA Cifrador de Playfair

N-GRÁMICA Cifrador de Hill

PERIÓDICA NO PERIÓDICA Cifrador de Vernam

ALFABETOS PROGRESIVOS Máquina Enigma

ALFABETOS LINEALES

ALFABETO ESTÁNDARCifrador de Vigenère

ALFABETO MIXTO

MÉTODOS DE CIFRA CLÁSICOS Figura 1.9. Clasificación de los métodos clásicos de cifra y algunos ejemplos. Los métodos clásicos son aquellos en los que, además de las máquinas dedicadas para cifrar como las estudiadas en el apartado 1.1, se usan por separado

Page 1126: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 19

técnicas de sustitución y transposición aplicadas a los caracteres del texto en claro. Las técnicas criptográficas utilizadas en este caso son en su totalidad orientadas a sistemas de clave secreta, generalmente manteniendo también en secreto el algoritmo, incluso en el caso en que el cifrador cuente con una clave secreta. La operación de cifra se realiza sobre caracteres alfanuméricos, por lo general alfabéticos, y en ese mismo formato se transmiten o almacenan. La Figura 1.9 muestra una clasificación de los sistemas de cifra clásicos, en donde se incluyen algunos cifradores típicos a modo de ejemplo. Estos sistemas de cifra se clasificarán, básicamente, en aquellos que utilizan técnicas de sustitución y aquellos que utilizan técnicas de transposición sobre los caracteres de un texto en claro, ambas técnicas propuestas por Shannon para lograr la confusión y difusión, respectivamente. NOTA: En lo que sigue del texto, para todos los ejemplos supondremos que el texto cifrado viene agrupado en una cantidad fija de caracteres y que tanto los espacios en blanco como los signos de puntuación no serán tomados en cuenta en el proceso de cifra. La agrupación por defecto de los elementos del criptograma será de cinco caracteres. Los cifradores por transposición utilizan la técnica de permutación de forma que los caracteres del texto se reordenan mediante un algoritmo específico. Un caso representativo de esta transformación -que será analizado más detenidamente en un apartado próximo- sería transmitir el mensaje en bloques de cinco caracteres pero reordenados (permutados) éstos de forma que su posición en el criptograma sea, por ejemplo, 43521; es decir, el cuarto carácter del bloque en claro se transmite primero, a continuación el tercero, después el quinto, luego el segundo y, por último, el primero. Esta operación se repetirá en cada bloque de 5 caracteres del mensaje. Por lo tanto, la transposición implica que los caracteres del criptograma serán exactamente los mismos que los del texto en claro. Ejemplo 1.7: Cifre mediante transposición de bloques de cinco caracteres el siguiente

mensaje, usando la permutación 43521. M = AL GRITO DE VIVA ZAPATA SE ARMÓ UNA GORDA. Solución: Siguiendo la permutación indicada, se obtiene: M = ALGRI TODEV IVAZA PATAS EARMO UNAGO RDAXX C = RGILA EDVOT ZAAVI ATSAP MROAE GAONU XAXDA Los cifradores por sustitución utilizan la técnica de modificación de cada carácter del texto en claro por otro correspondiente al alfabeto de cifrado. Si el alfabeto de cifrado es el mismo que el del mensaje o bien único, hablamos entonces de cifradores monoalfabéticos; es decir, existe un único alfabeto en la operación de transformación del mensaje en criptograma. Por el contrario, si en dicha operación intervienen más de un alfabeto, se dice que el cifrador es polialfabético. ¿Cómo es posible utilizar más de un alfabeto en la operación de cifrado? La respuesta es muy sencilla y la abordaremos a continuación. En el cifrador del César, por ejemplo, la letra A del texto en claro se cifraba siempre como la letra D; es por tanto

Page 1127: Seguridad Informatica

20 CRIPTOSISTEMAS CLÁSICOS

un cifrador monoalfabético. A continuación desarrollaremos un algoritmo sencillo para usar más de un alfabeto. Suponga que deseamos diseñar un algoritmo de cifrado similar al del César, de forma que a los caracteres impares aplicamos un desplazamiento de 15 espacios a la derecha del alfabeto y a los caracteres pares 10 espacios también a la derecha según el ejemplo 1.8. Ejemplo 1.8: Utilizando el algoritmo propuesto en el párrafo anterior, se pide cifrar el

mensaje M = DISFRUTAN VACACIONES EN EL MES DE AGOSTO. Solución: Se cifrará de la siguiente forma: los caracteres en posiciones impares

subrayados (dsrtn...aot) se desplazan 15 lugares y los caracteres en posiciones pares (ifuav...gso) se desplazan 10 lugares. Usando entonces las congruencias mi+15 mod 27 para los primeros y mi+10 mod 27 para los segundos, se obtiene:

C = RRHOG EIKBF OMOMW YBÑHÑ BÑZVS CRÑOP DCIY. En el criptograma anterior ha dejado de existir una correspondencia única entre los caracteres del texto en claro y los de un alfabeto de cifrado: la letra A se cifra como el carácter K o como el carácter O, dependiendo se encuentre en el texto en una posición par o impar, respectivamente. Otro tanto ocurre para las letras I, S, E, y O. Por otra parte, el criptograma comienza con el digrama RR que corresponde a dos letras distintas del texto en claro. Al aplicar dos desplazamientos diferentes, hemos utilizado dos alfabetos de cifrado distintos, de ahí que algunas letras según su posición se cifren como dos letras distintas. En la Figura 1.10 se muestran los dos alfabetos utilizados en el ejemplo; A1 para los caracteres impares y A2 para los pares. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A1 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ A2 K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J Figura 1.10. Alfabetos utilizados en el ejemplo. Esta forma de cifrar dará lugar, entre otros, al cifrador de Vigenère que veremos más adelante. Si este fuera el caso, la clave utilizada habría sido K = OK, puesto que el equivalente numérico de la letra O es 15 y el de la letra K es igual a 10, los valores de desplazamiento utilizados para caracteres impares y pares, respectivamente. Observe que al sumarse la clave al texto y como el equivalente de la letra A es igual a cero, se cumplen las congruencias A+O = O y A+K = K, los dos valores con los que comienzan los alfabetos en cuestión. La sustitución polialfabética puede ser periódica como en el caso del ejemplo anterior cuyo período es dos (el tamaño de la clave) o bien no periódica, cuando la clave en cuestión es tan larga como el mensaje. Tanto en el caso monoalfabético como en el polialfabético, se realiza la transformación EK(M) sobre cada uno de los caracteres del texto en claro de forma

Page 1128: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 21

independiente; es decir, la operación se realiza carácter a carácter o lo que es lo mismo a través de monogramas. También es posible cifrar un texto en claro utilizando bloques de más de un carácter. En este caso se hablará de cifradores digrámicos que cifran el texto cada dos caracteres, trigrámicos en bloques de tres caracteres y, en general, poligrámicos. Al hablar de alfabetos mixtos, nos referiremos al uso de alfabetos que contienen caracteres distintos al propio del lenguaje, por ejemplo mediante el uso de símbolos. La Figura 1.11 muestra un posible alfabeto de cifrado mixto. Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci < > ( ) & % / $ ¿ T D A C U E N ? ♣ ♦ ♥ ♠ @ # [ α β ] Figura 1.11. Ejemplo de alfabeto de cifrado mixto. 1.4. CIFRADORES POR SUSTITUCIÓN MONOGRÁMICA MONOALFABETO 1.4.1. Cifradores por sustitución Un cifrador por sustitución es aquel que sustituye cada carácter del texto en claro por otro carácter en el texto cifrado o criptograma. Esta es la forma de aplicar el principio de confusión propuesto por Shannon en cuanto que oculta el texto en claro a cualquier intruso mediante sustituciones, excepto para el destinatario, que conoce el algoritmo y la clave que le permite descifrar el criptograma para recuperar el mensaje. Los cifradores por sustitución se pueden clasificar en tres grupos; a saber, sustitución monográmica monoalfabeto, sustitución monográmica polialfabeto y sustitución poligrámica. En los cifradores por sustitución monográmica monoalfabeto, el cifrado se realiza mediante un algoritmo que hace corresponder una letra del texto en claro a una única letra del criptograma, es decir, cifra monogramas. De ahí su denominación de cifrador monográmico. En cuanto al término monoalfabeto, quiere decir que se utiliza un único alfabeto de cifrado, el mismo que el del texto en claro o uno mixto, pero distribuido bien de forma aleatoria o bien a través de una transformación matemática. Luego, si a la letra M del texto en claro le corresponde la letra V o el símbolo # del alfabeto de cifrado, se cifrará siempre igual pues existe una única equivalencia o, lo que es lo mismo, un único alfabeto de cifrado. Por su parte, en los cifradores por sustitución monográmica polialfabeto, la operación de cifra también se realiza carácter a carácter, es decir por monogramas. No obstante, como ya hemos mencionado en apartados anteriores, a través de una clave, algoritmo o mecanismo, se obtienen varios alfabetos de cifrado de forma que una misma letra puede cifrarse con caracteres distintos, dependiendo de su posición dentro del texto en claro. Por último, los cifradores por sustitución poligrámica tratan el mensaje en bloques de dos o más caracteres sobre los que se aplica la transformación del criptosistema en cuestión, sustituyendo ngramas del mensaje por ngramas de texto

Page 1129: Seguridad Informatica

22 CRIPTOSISTEMAS CLÁSICOS

cifrado. 1.4.2. El cifrador del César Tal vez el cifrador monoalfabético por sustitución más famoso es el denominado Cifrador del César, uno de los cifradores más antiguos, atribuido al emperador romano Julio César. Se trata de un criptosistema en el que se aplica un desplazamiento constante igual de b caracteres sobre el texto en claro, obteniéndose así el criptograma buscado. Este tipo de cifradores, llamados genéricamente cifradores monoalfabéticos por desplazamiento puro o adición, toman en el caso del cifrador del César un valor de desplazamiento b igual a 3. Por lo tanto, este cifrador del César tendrá el alfabeto de cifrado ya representado en la Figura 1.3 con su equivalente numérico, es decir: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C Figura 1.12. Equivalente numérico del alfabeto de cifrado del César. Ejemplo 1.9: Con la tabla del cifrador del César de la Figura 1.12, cifre el mensaje: M = CÉSAR EL EMPERADOR HA SIDO ASESINADO. Solución: Aplicando a cada carácter Mi su equivalente Ci, se obtiene: C = FHVDU HÑHOS HUDGR UKDVL GRDVH VLPDG R. Este sistema de cifra sencillo, apropiado e incluso bastante ingenioso para la época, presenta un nivel de seguridad muy débil; de hecho su distancia de unicidad es muy baja. En el apartado siguiente encontraremos este valor y se demostrará que el criptoanálisis de este cifrador es verdaderamente elemental, un pasatiempo. • Cifrador del César con clave Para aumentar la seguridad o, lo que es lo mismo, la distancia de unicidad de este cifrador, podemos incluir en el alfabeto de cifrado una clave de la siguiente forma: la clave K consiste en una palabra o frase que se escribe a partir de una posición p0 del alfabeto en claro. Si la clave es K = ESTOY ABURRIDO y la posición inicial p0 = 3 tenemos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Clave E S T O Y A B U R I D Los caracteres repetidos de la clave no se escriben. Una vez escrita ésta en la posición indicada, se añaden las demás letras del alfabeto en orden y de forma modular, para obtener así el alfabeto de cifrado, como se observa. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z W X Z E S T O Y A B U R I D C F G H J K L M N Ñ P Q V

Page 1130: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 23

Figura 1.13. Ejemplo de alfabeto de cifrador del César con clave. En este tipo de cifrado se deja de cumplir la condición de desplazamiento constante, característica en el sistema del César primario. Ejemplo 1.10: Con el cifrador del César con clave cifre el siguiente mensaje usando

como clave K = POBRE CHUCHO SIBERIANO con p0 = 2. M = A PERRO FLACO TODO SON PULGAS. Solución: El alfabeto de cifrado resultante será: Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci Y Z P O B R E C H U S I A N D F G J K L M Ñ Q T V W X Luego, C = YGBKK FRIYP FMFOF LFNGÑ IEYL. Como es de esperar, al tener un mayor número de combinaciones de alfabetos, existe una mayor incertidumbre respecto de la clave. La distancia de unicidad de este cifrador será mayor y, por consiguiente, el sistema presentará una mayor fortaleza. • Cifradores tipo César con alfabetos mixtos En este tipo de cifrado se aplica también una relación única entre un elemento del alfabeto en claro y un elemento del alfabeto de cifrado, salvo que este último puede contener otros caracteres o símbolos que no pertenezcan al alfabeto del mensaje. Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci [ « » { } × ♥ ♦ ♣ ♠ ≠ # @ % & ( ) = > < 0 1 2 3 4 5 ] Figura 1.14. Cifrador del César con alfabeto mixto. Ejemplo 1.11: Cifre con el alfabeto mixto de la Figura 1.14 el siguiente mensaje: M = EN EL ESCARABAJO DE ORO APARECEN SIGNOS DISTINTOS A

LOS DEL TEXTO EN CLARO. Solución: Siguiendo el alfabeto de cifra indicado se obtiene el criptograma: C = }%}#} <»[>[ «[♠({ }(>([ )[>}» }%<♣♥ %(<{♣ <0♣%0 (<[#( <{}#0 }40(} %{#[> (. Uno de los casos más interesantes de este tipo de cifradores con alfabetos distintos desde el punto de vista histórico lo encontramos en los grabados realizados en 1794 en una lápida del cementerio de Trinity, un distrito de Nueva York. El mensaje consistía en un conjunto de símbolos como se indica a continuación. Figura 1.15. Criptograma de la lápida del cementerio de Trinity. Sólo 100 años después, en 1896, se logra descriptar este enigma aplicando nociones básicas de estadística y redundancia del lenguaje. Esto indica que, por lo

Page 1131: Seguridad Informatica

24 CRIPTOSISTEMAS CLÁSICOS

menos para aquella época, el criptosistema empleado aunque hoy en día muy inocente, cumplió con creces el principio de/ la caducidad de la información. La resolución del criptograma, de gran dificultad debido al pequeño tamaño del mismo, sigue la siguiente clave de asignación de figuras geométricas a los caracteres: A B C K L M T U V D E F N O P W X Y G H I/J Q R S Z Figura 1.16. Clave para la solución del criptograma de Trinity. Siguiendo entonces las claves de la Figura 1.16, encontramos que el mensaje del criptograma en cuestión es M = REMEMBER DEATH. La dificultad para llegar a este resultado es obvia pues se cuenta con un criptograma demasiado pequeño. En su contra está el hecho de que, precisamente la letra E, la más significativa del inglés, aparece cuatro veces y que el texto que se ha cifrado tiene mucho que ver con el epitafio que alguna mente inquieta y algo retorcida pondría en su tumba. Un sistema muy similar al indicado en la Figura 1.16, denominado Freemasons, es utilizado por las logias de la masonería. El lector interesado en este tipo de cifrados históricos puede consultar el libro Cryptology: Machines, History & Methods, cuya referencia ya ha sido indicada en este capítulo. Este tipo de cifrado, -precisamente el utilizado por Edgar Allan Poe en su famoso cuento El escarabajo de oro- no por ser más espectacular en la presentación del criptograma es más seguro que el del César con clave: en el fondo, son exactamente lo mismo. Como veremos en el próximo apartado de criptoanálisis, con unas cuantas decenas de caracteres de criptograma, romper este tipo de cifra puede ser algo realmente fácil. 1.4.3. Criptoanálisis del cifrado del César Comentábamos en el apartado anterior que la distancia de unicidad del cifrador del César con clave será mayor que en el caso sin clave y, por consiguiente, también su seguridad. No obstante, al producirse en ambos casos una sustitución fija de cada carácter del alfabeto en claro por un único carácter del alfabeto de cifrado, el criptograma podrá romperse fácilmente aplicando técnicas de estadística del lenguaje, siempre y cuando contemos con una cantidad suficiente de texto cifrado. En un capítulo anterior vimos que la distancia de unicidad venía dada por la relación entre la entropía de la clave H(K) y la redundancia del lenguaje D. Volveremos a encontrar este valor para cifradores del tipo César. Ejemplo 1.12: Encuentre la distancia de unicidad de un cifrador del César. Solución: Si n = 27, existirán sólo 26 posibles combinaciones de alfabetos, por lo

tanto H(K) = log226 = 4,70. Como la redundancia D era igual a 3,4

Page 1132: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 25

entonces se tiene que N = H(K)/D ≈ 4,70/3,4 ≈ 1,38. Por lo tanto, necesitamos como mínimo dos caracteres.

Para cifrados del César sin clave, una forma elemental de criptoanálisis consiste en escribir bajo el texto cifrado todas las combinaciones de frases, con o sin sentido, que se obtienen al aplicar a dicho criptograma desplazamientos de 1, 2, 3, ..., n-1 caracteres, siendo n el número de caracteres del alfabeto utilizado. Una de estas combinaciones dará con el texto en claro y esto será válido independientemente del valor asignado a la constante de desplazamiento. Retomemos el Ejemplo 1.9 en el que teníamos el siguiente par mensaje/criptograma, respetando los espacios en blanco para una mayor claridad: M = CESAR EL EMPERADOR HA SIDO ASESINADO. C = FHVDU HÑ HOSHUDGRU KD VLGR DVHVLPDGR. Como nuestro alfabeto contiene 27 caracteres tenemos el cuadro de posibles mensajes a partir del criptograma que se muestra en la Figura 1.17. En esta figura, la única solución con sentido corresponde a un desplazamiento de 24 caracteres en la operación de descifrado. Si al cifrar el mensaje M nos hemos desplazado 3 espacios hacia delante para obtener el criptograma C, representado en la posición b = 0 de la figura, para descifrarlo habrá que desplazarse 3 caracteres hacia atrás o bien, de acuerdo con la modularidad, un desplazamiento hacia delante de 27-3 = 24 espacios. C: b = 0 FHVDU HÑ HOSHUDGRU KD VLGR DVHVLPDGR Texto cifrado b = 1 GIWEV IO IPTIVEHSV LE WMHS EWIWMQEHS b = 2 HJXFW JP JQUJWFITW MF XNIT FXJXNRFIT b = 3 IKYGX KQ KRVKXGJUX NG YÑJU GYKYÑSGJU b = 4 JLZHY LR LSWLYHKVY ÑH ZOKV HZLZOTHKV b = 5 KMAIZ MS MTXMZILWZ OI APLW IAMAPUILW b = 6 LNBJA NT NUYNAJMXA PJ BQMX JBNBQVJMX b = 7 MÑCKB ÑU ÑVZÑBKNYB QK CRNY KCÑCRWKNY b = 8 NODLC OV OWAOCLÑZC RL DSÑZ LDODSXLÑZ b = 9 ÑPEMD PW PXBPDMOAD SM ETOA MEPETYMOA b = 10 OQFNE QX QYCQENPBE TN FUPB NFQFUZNPB b = 11 PRGÑF RY RZDRFÑQCF UÑ GVQC ÑGRGVAÑQC b = 12 QSHOG SZ SAESGORDG VO HWRD OHSHWBORD b = 13 RTIPH TA TBFTHPSEH WP IXSE PITIXCPSE b = 14 SUJQI UB UCGUIQTFI XQ JYTF QJUJYDQTF b = 15 TVKRJ VC VDHVJRUGJ YR KZUG RKVKZERUG b = 16 UWLSK WD WEIWKSVHK ZS LAVH SLWLAFSVH b = 17 VXMTL XE XFJXLTWIL AT MBWI TMXMBGTWI b = 18 WYNUM YF YGKYMUXJM BU NCXJ UNYNCHUXJ b = 19 XZÑVN ZG ZHLZNVYKN CV ÑDYK VÑZÑDIVYK b = 20 YAOWÑ AH AIMAÑWZLÑ DW OEZL WOAOEJWZL b = 21 ZBPXO BI BJNBOXAMO EX PFAM XPBPFKXAM b = 22 ACQYP CJ CKÑCPYBNP FY QGBN YQCQGLYBN b = 23 BDRZQ DK DLODQZCÑQ GZ RHCÑ ZRDRHMZCÑ M: b = 24 CESAR EL EMPERADOR HA SIDO ASESINADO Texto en claro

Page 1133: Seguridad Informatica

26 CRIPTOSISTEMAS CLÁSICOS

b = 25 DFTBS FM FNQFSBEPS IB TJEP BTFTJÑBEP b = 26 EGUCT GN GÑRGTCFQT JC UKFQ CUGUKOCFQ Figura 1.17. Criptoanálisis del cifrador del César. Para los cifradores por desplazamiento puro como el del César, se cumplirá por tanto la siguiente operación de descifrado (D) a partir de un cifrado (E) en el anillo n: Db = En-b ⇒ Db = E27 - b 1.4 De lo visto anteriormente, es fácil deducir que un sistema de cifra por sustitución monoalfabética como el del César presenta un nivel de seguridad mínimo en tanto que para romperlo nos ha bastado con un lápiz, papel y un poco de paciencia para confeccionar el cuadro anterior, nada del otro mundo como puede ver. Esta debilidad se debe a que el número de desplazamientos posibles es muy pequeño al contar sólo con los 26 valores que corresponden a los caracteres del alfabeto; esto es, se cumple que 1 ≤ b ≤ 26, pues un desplazamiento igual a cero o bien múltiplo de veintisiete sería igual que transmitir en claro. En el caso en que el cifrador del César tenga una clave, el ataque anterior no proporciona ninguna solución porque el desplazamiento deja de ser constante y, por lo tanto, es imposible establecer una relación matemática única y directa entre el alfabeto en claro y el alfabeto de cifrado. El único camino que nos queda consiste en llevar las estadísticas del lenguaje al criptograma, observando por ejemplo la frecuencia relativa de aparición de los caracteres en el texto cifrado. Al contrario del método anterior, válido solamente para desplazamientos puros sin clave, este tipo de ataque estadístico será válido tanto para los cifrados de tipo monoalfabético con clave como para aquellos que no la tienen. Ahora bien, en la gran mayoría de los casos será necesario contar con una cantidad de criptograma bastante mayor que la del ejemplo anterior y, cómo no, una pizca de intuición y un poco de suerte. Ejemplo 1.13: Calcule la distancia de unicidad de un cifrador del César con clave. Solución: Si el alfabeto tiene n caracteres, existirán n! combinaciones posibles de n

elementos, luego N = H(K)/D = (log2n!)/D. Utilizando la aproximación de Sterling, log2n! ≈ nlog2(n/e), la distancia de unicidad será N ≈ nlog2(n/e)/D. Para n = 27 se tiene: N ≈ 27log2(27/e)/3,4 ≈ 27,4 caracteres.

Para el cifrador del César, al establecerse en la operación de cifrado una correspondencia directa entre los caracteres del texto en claro y del alfabeto de cifrado, se mantiene la misma relación de frecuencia relativa característica del lenguaje. Por lo tanto, es muy probable que la letra Ci del texto cifrado con mayor frecuencia relativa se corresponda con la letra Mi de mayor frecuencia relativa del lenguaje. Esto es, si la letra W es la de mayor frecuencia en el criptograma, podemos suponer con muy buenas expectativas de éxito que sea la letra E del texto en claro y que, por lo tanto, el desplazamiento aplicado haya sido igual a 19, la distancia que separa ambas letras en el alfabeto. Como ya hemos comentado, estas suposiciones sólo tendrán cierta validez si la cantidad de texto cifrado es grande y por tanto se cumplen las propiedades estadísticas del lenguaje. En el fondo se está realizando una comparación de la

Page 1134: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 27

distribución de frecuencias de todos los elementos del criptograma con la característica del lenguaje, con el objeto de encontrar ese desplazamiento constante. Otra forma de atacar un cifrado por desplazamiento puro con o sin clave es buscar digramas, trigramas, ngramas o poligramas y en general palabras características del lenguaje, para asociar un conjunto de caracteres del criptograma con otro conjunto de caracteres del texto en claro. Obviamente este criptoanálisis es también válido para atacar cifrados con alfabetos mixtos como se observa en el siguiente ejemplo. Ejemplo 1.14: Descripte el siguiente criptograma cifrado con un alfabeto mixto: C = ♦>]♣0 ♥34♦3 44]>} >{:☺♠ {4♥3> 34]02 014:0 34(♠4 ♥♣>♠) 0]{)4 03401 4}034 ♦344] 0♥1>]. Solución: Encontramos las siguientes frecuencias relativas en los caracteres: 4 = 14 0 = 9 3 = 8 > = 6 ] = 6 ♥ = 4 { = 3 ♠ = 3 ♦ = 3 1 = 3 ♣ = 2 ) = 2 : = 2 } = 2 ( = 1 2 = 1 ☺ = 1 Total : 70 caracteres. Suponiendo que los caracteres 4 y 0, de mayor frecuencia relativa en el

criptograma, se corresponden con las letras E y A del alfabeto, se obtiene el siguiente criptograma parcial:

M1 = ♦>]♣A ♥3E♦3 EE]>} >{:☺♠ {E♥3> 3E]A2 A1E:A 3E(♠E ♥♣>♠) A]{)E A3EA1 E}A3E ♦3EE] A♥1>]. Si por alguna pista sospechamos que ]A2A1E:A sea LACABEZA,

tenemos otros 4 caracteres y el criptograma sería en una segunda aproximación:

M2 = ♦>L♣A ♥3E♦3 EE]>} >{:☺♠ {E♥3> 3ELAC ABEZA 3E(♠E ♥♣>♠) AL{)E A3EAB E}A3E ♦3EEL A♥B>L. Ya tenemos entonces 6 caracteres con posible equivalencia: 0 = A; 1 = B; 2 = C; 4 = E; ] = L y : = Z. Del alfabeto anterior podríamos suponer que 3 = D. Si además pensamos

que la cadena ELA♥B>L es ELARBOL, el resultado son tres correspondencias nuevas: 3 = D; ♥ = R y > = O. Obtenemos el alfabeto de cifrado que se indica y una tercera aproximación del criptograma:

Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci 0 1 2 3 4 _ _ _ _ _ _ ] _ _ _ > _ _ ♥ _ _ _ _ _ _ _ : M3 = ♦OL♣A RDE♦D EEL>} >{Z☺♠ {ERDO DELAC ABEZA DE(♠E R♣O♠) AL{)E ADEAB E}ADE ♦DEEL ARBOL. Si ABE}ADE♦DEELARBOL es ABEJADESDEELARBOL, obtenemos

dos nuevas correspondencias entre caracteres } = J y ♦ = S y el siguiente criptograma:

M4 = SOL♣A RDESD EEL>J >{Z☺♠ {ERDO DELAC ABEZA DE(♠E R♣O♠) AL{)E ADEAB EJADE SDEEL ARBOL. La resolución final del criptograma a estas alturas parece ya algo trivial. El

alfabeto utilizado en este ejemplo y el mensaje son los que se indican: Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci 0 1 2 3 4 5 « » { } [ ] ( ) < > J ☺ ♥ ♦ ♣ ♠ $ & @ # : M= SOLTAR DESDE EL OJO IZQUIERDO DE LA CABEZA DE

MUERTO UNA LÍNEA DE ABEJA DESDE EL ÁRBOL.

Page 1135: Seguridad Informatica

28 CRIPTOSISTEMAS CLÁSICOS

La técnica de criptoanálisis del ejemplo anterior es precisamente la usada por Allan Poe en su cuento "El escarabajo de oro". El texto corresponde a una parte de ese enigmático mensaje con un alfabeto de cifrado ligeramente distinto. Como conclusión podemos afirmar que, incluso incluyendo una clave en la cifra, por complicada y larga que ésta sea, estos criptosistemas monoalfabéticos son muy vulnerables a los ataques de un criptoanalista. Si además se cuenta con la ayuda de un simple ordenador, el ataque y posterior solución a estos criptogramas se convierte en la práctica en un divertido juego. 1.4.4. Cifradores genéricos por sustitución Ya hemos comentado en el apartado anterior qué se entiende por un cifrador monoalfabético por sustitución, por lo menos para el caso del cifrador del César en el que la sustitución de los caracteres se obtiene por medio de un desplazamiento constante en el alfabeto. A continuación analizaremos los cifradores monoalfabéticos genéricos, también conocidos como cifradores de transformaciones afines. En este caso la operación de sustitución de los caracteres del alfabeto puede obtenerse de forma matemática aplicando la siguiente expresión de equivalencia: Ci = (a∗Mi + b) mod n 1.5 en donde a se conoce como la constante de decimación, b constante de desplazamiento y n es el orden del grupo. Observe que de acuerdo con la ecuación (1.5) la relación matemática del cifrador del César será: Ci = (Mi + 3) mod n. ¿Puede utilizarse cualquier valor de a y b en la ecuación anterior? La respuesta es no. En primer lugar, es obvio que a no puede ser igual a cero pues no existiría una equivalencia de alfabetos por lo que deberá cumplirse que a ≥ 1. Por otra parte, para la existencia de inversos deberá cumplirse que los valores de la constante a y el módulo n sean primos entre sí; es decir mcd (a,n) = 1. Al trabajar en módulo 27 = 33, los valores permitidos de la constante de decimación a serán los 18 elementos del CRR(27) que no tengan como factor común el número 3, es decir: 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25 y 26. En cuanto a la constante de desplazamiento b, ésta puede tomar cualquier valor comprendido entre 0 y n-1 pues se asegura en todo momento la existencia del inverso para la adición. Desplazamientos mayores que n-1 caerán dentro del mismo anillo por lo que su valor se reduce módulo n. Por ejemplo, un desplazamiento de b = 32 espacios equivale a (32-k∗n) = (32-1∗27) = 5 espacios efectivos. Así mismo, un desplazamiento negativo (caracteres hacia la izquierda del alfabeto) puede trasladarse a su equivalente en el intervalo [0, n-1]. Por lo tanto, podemos decir que un desplazamiento de b = -8 caracteres equivale a (-8+k∗n) = (-8+1∗27) = 19 caracteres hacia la derecha.

Page 1136: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 29

De esta manera, diremos que cuando la constante de decimación a es igual a la unidad, el cifrador genérico de sustitución se transforma en uno de desplazamiento puro; cuando la constante de desplazamiento b es igual a cero hablamos de cifradores por decimación pura y cuando se cumple que la constante a es mayor que la unidad y b es distinto de cero, la cifra es por sustitución afín. • Cifradores por desplazamiento puro Corresponden a los denominados cifradores tipo César ya vistos en el apartado anterior por lo que no vamos a repetir lo allí comentado. Las operaciones de cifra y descifrado serán: Ci = (Mi + b) mod n 1.6 Mi = (Ci - b) mod n 1.7 Mi = (Ci + n - b) mod n 1.8 Las ecuaciones (1.7) y (1.8) son equivalentes en el cuerpo n. Ejemplo 1.15: a) Con n = 27 y un desplazamiento b = 15, cifre el mensaje M = SALVE

CÉSAR utilizando la ecuación (1.6). b) Descifre el criptograma mediante la ecuación (1.7).

Solución: a) Ci = (mi + 15) mod 27 C01 = (S+15) mod 27 = (19+15) mod 27 = 34 mod 27 = 07 = H C02 = (A+15) mod 27 = (00+15) mod 27 = 15 mod 27 = 15 = O C03 = (L+15) mod 27 = (11+15) mod 27 = 26 mod 27 = 26 = X C04 = (V+15) mod 27 = (21+15) mod 27 = 36 mod 27 = 09 = J C05 = (E+15) mod 27 = (04+15) mod 27 = 19 mod 27 = 19 = S C06 = (C+15) mod 27 = (02+15) mod 27 = 17 mod 27 = 17 = Q C07 = (E+15) mod 27 = (04+15) mod 27 = 19 mod 27 = 19 = S C08 = (S+15) mod 27 = (19+15) mod 27 = 34 mod 27 = 07 = H C09 = (A+15) mod 27 = (00+15) mod 27 = 15 mod 27 = 15 = O C10 = (R+15) mod 27 = (18+15) mod 27 = 33 mod 27 = 06 = G El criptograma será: C = HOXJS QSHOG. b) Mi = (ci + 27 - 15) mod 27 = (ci + 12) mod 27 M01 = (H+12) mod 27 = (07+12) mod 27 = 19 mod 27 = 19 = S M02 = (O+12) mod 27 = (15+12) mod 27 = 27 mod 27 = 00 = A M03 = (X+12) mod 27 = (26+12) mod 27 = 38 mod 27 = 11 = L M04 = (J+12) mod 27 = (09+12) mod 27 = 21 mod 27 = 21 = V M05 = (S+12) mod 27 = (19+12) mod 27 = 31 mod 27 = 04 = E M06 = (Q+12) mod 27 = (17+12) mod 27 = 29 mod 27 = 02 = C M07 = (S+12) mod 27 = (19+12) mod 27 = 31 mod 27 = 04 = E M08 = (H+12) mod 27 = (07+12) mod 27 = 19 mod 27 = 19 = S M09 = (O+12) mod 27 = (15+12) mod 27 = 27 mod 27 = 00 = A M10 = (G+12) mod 27 = (06+12) mod 27 = 18 mod 27 = 18 = R El mensaje descifrado es: M = SALVE CÉSAR.

Page 1137: Seguridad Informatica

30 CRIPTOSISTEMAS CLÁSICOS

• Cifradores por decimación pura Ya hemos visto que si la constante de decimación es igual a la unidad, el cifrador se transforma en uno de desplazamiento puro como el del César. Si además la constante de desplazamiento es cero, entonces se transmite en claro lo que no tiene sentido criptográfico. Por el contrario, si la constante de decimación es mayor que la unidad y la constante de desplazamiento es cero, nos encontramos con un cifrador por decimación pura. En este caso las ecuaciones de cifra y descifrado serán: Ci = a ∗ Mi mod n 1.9 Mi = a- 1 ∗ Ci mod n 1.10 donde a- 1 será el inverso del factor de decimación en el cuerpo n; es decir inv (a,n). Ejemplo 1.16: a) Encuentre el alfabeto de cifrado para la transformación monoalfabética

por decimación Ci = 20 ∗ Mi mod 27. b) Cifre con este alfabeto el siguiente mensaje M = DILE A LAURA QUE

LA QUIERO. Solución: a) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci A T N G Z S M F Y R L E X Q K D W P J C V O I B U Ñ H C0 = 20∗A mod 27 = 20∗0 mod 27 = 0 = A C1 = 20∗B mod 27 = 20∗1 mod 27 = 20 = T C2 = 20∗C mod 27 = 20∗2 mod 27 = 40 mod 27 = 13 = N, etc. b) El criptograma será C = GYEZA EAOJA POZEA POYZJ D. Puesto que sólo se aplica este algoritmo de cifra si el valor de la constante de decimación es primo entre sí con el módulo de trabajo, se asegura la existencia del inverso y por tanto la posibilidad de descifrar el criptograma según la ecuación (1.10). Ejemplo 1.17: Descifre el criptograma que se indica utilizando la ecuación (1.10) si se

conoce que éste se ha obtenido con sustitución por decimación pura con una constante de decimación igual a 22.

C = MÑZHW DHBGR HZZAU DHRG. Solución: El inverso del factor de decimación 22 es inv(22,27) = 16, luego: M01 = 16 ∗ 12 mod 27 = 192 mod 27 = 03 = D M02 = 16 ∗ 14 mod 27 = 224 mod 27 = 08 = I M03 = 16 ∗ 26 mod 27 = 416 mod 27 = 11 = L M04 = 16 ∗ 07 mod 27 = 112 mod 27 = 04 = E M05 = 16 ∗ 23 mod 27 = 368 mod 27 = 17 = Q M06 = 16 ∗ 03 mod 27 = 048 mod 27 = 21 = U M07 = 16 ∗ 07 mod 27 = 112 mod 27 = 04 = E M08 = 16 ∗ 01 mod 27 = 016 mod 27 = 16 = P M09 = 16 ∗ 06 mod 27 = 096 mod 27 = 15 = O M10 = 16 ∗ 18 mod 27 = 288 mod 27 = 18 = R M11 = 16 ∗ 07 mod 27 = 112 mod 27 = 04 = E M12 = 16 ∗ 26 mod 27 = 416 mod 27 = 11 = L M13 = 16 ∗ 26 mod 27 = 416 mod 27 = 11 = L

Page 1138: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 31

M14 = 16 ∗ 00 mod 27 = 000 mod 27 = 00 = A M15 = 16 ∗ 21 mod 27 = 336 mod 27 = 12 = M M16 = 16 ∗ 03 mod 27 = 048 mod 27 = 21 = U M17 = 16 ∗ 07 mod 27 = 112 mod 27 = 04 = E M18 = 16 ∗ 18 mod 27 = 288 mod 27 = 18 = R M19 = 16 ∗ 06 mod 27 = 096 mod 27 = 15 = O El mensaje descifrado es M = DILE QUE POR ELLA MUERO • Cifradores por transformación afín En los cifradores genéricos, si se cumple que la constante de decimación a es mayor que 1 y la constante de desplazamiento b distinto de cero, hablamos de cifra por transformación afín. Las ecuaciones serán en este caso: Ci = (a∗Mi + b) mod n 1.11 Mi = a-1 (Ci - b) mod n 1.12 La ecuación de descifrado también podemos escribirla como sigue: Mi = a-1 (Ci + n - b) mod n 1.13 Ejemplo 1.18: Encuentre el alfabeto de cifrado monoalfabético para la siguiente relación

de transformación Ci = (4∗Mi + 5) mod 27. Solución: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci F J N Q U Y C G K Ñ R V Z D H L O S W A E I M P T X B C0 = (4∗A + 5) mod 27 = (4∗0 + 5) mod 27 = 5 = F C1 = (4∗B + 5) mod 27 = (4∗1 + 5) mod 27 = 9 = J C2 = (4∗C + 5) mod 27 = (4∗2 + 5) mod 27 = 13 = N, etc. Del ejemplo anterior, observe que el desplazamiento indica dónde comienza la secuencia del alfabeto de cifrado y la decimación los saltos que va dando en el alfabeto original para recorrerlo en su totalidad. ¿Qué sucederá si aplicamos una relación de trasformación monoalfabética que no cumpla con las condiciones anteriores? El siguiente ejemplo nos aclarará esta situación.. Ejemplo 1.19: Encuentre el alfabeto de cifrado monoalfabético para la siguiente relación

de transformación Ci = (3∗Mi + 2) mod 27. Solución: Aplicando la ecuación (1.5) se obtiene: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci C F I L Ñ Q T W Z C F I L Ñ Q T W Z C F I L Ñ Q T W Z ¿Qué sucede en este caso? Con los valores anteriores, no es válida la relación de transformación de alfabetos pues mcd (3,27) ≠ 1 lo que se comprueba en el hecho de que no obtenemos una equivalencia unívoca entre caracteres. Para este caso en que a = 3, se va repitiendo el mismo conjunto de 9 (27/3) caracteres CFILÑQTWZ por lo que no se obtiene el conjunto completo de restos del módulo y, por tanto, no es

Page 1139: Seguridad Informatica

32 CRIPTOSISTEMAS CLÁSICOS

posible utilizarlo como cifrador. De hecho si el criptograma presenta la letra C, no se sabe si corresponde a la acción de cifrar en el texto en claro las letras J, R o A. Ejemplo 1.20: Usando un cifrador monoalfabético por decimación y adición según la

transformación (5∗Mi + 8) mod 27, cifre el siguiente mensaje. M = DÁBALE ARROZ A LA ZORRA EL ABAD. Solución: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci I N R W B G L P U Z E J Ñ S X C H M Q V A F K O T Y D Luego, C = WINIJ BIQQC DIJID CQQIB JINIW. Al igual que en el cifrador del César, podemos incluir una clave secreta para aumentar la seguridad del sistema. Primero aplicamos la relación de transformación para encontrar un alfabeto de cifrado, luego escribimos la clave a partir de una posición p0 y finalmente se desplazan los caracteres restantes del alfabeto de cifrado encontrado a partir de la posición final de la clave como se muestra en el siguiente ejemplo. Ejemplo 1.21: Aplicando la transformación Ci = (7∗Mi + 2) mod 27 conjuntamente con la

clave K = REFRANERO ESPAÑOL posicionada en p0 = 5, se pide cifrar el mensaje M = NO HAY MAL QUE POR BIEN NO VENGA.

Solución: Aplicando la transformación (7∗Mi + 2) mod 27, obtenemos el siguiente alfabeto de cifrado:

Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci C J P W D K Q X E L R Y F M S Z G N T A H Ñ U B I O V A continuación escribimos la clave en p0 = 5: _ _ _ _ _ R E F A N O S P Ñ L _ _ _ _ _ _ _ _ _ _ _ _ Completando ahora el alfabeto de cifrado desde la posición final de la

clave, se obtiene: Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci H U B I V R E F A N O S P Ñ L C J W D K Q X Y M Z G T Luego, C = ÑCFHG PHSWX VJCDU AVÑÑC YVÑEH. La transformación anterior sigue manteniendo una relación monoalfabética, independientemente de cómo se distribuyan los caracteres; es más, el alfabeto de cifrado no tiene por qué seguir una lógica ni mucho menos una relación matemática como parece deducirse por lo visto; basta con que exista una relación de uno a uno entre alfabeto claro y alfabeto de cifrado. Lo único que logramos con ello es cambiar la relación de correspondencia de caracteres y, en última instancia, ponerle las cosas algo más difíciles a nuestro enemigo criptoanalista, desgraciadamente sólo un poquito. Puesto que estos cifradores monoalfabéticos genéricos poco se diferencian de los vistos en los apartados anteriores, tendrán la misma fragilidad ante un hipotético ataque de un criptoanalista. 1.4.5. Criptoanálisis de cifrados monoalfabéticos por sustitución El criptoanálisis de los cifradores monoalfabéticos genéricos por sustitución, esto es aquellos en los que se cumple la relación afín (a∗M + b), pueden resolverse fácilmente aplicando estadísticas del lenguaje al igual que en el cifrado del César. En

Page 1140: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 33

este caso, como además de un desplazamiento b existe una constante de decimación a, podemos plantear un sistema de dos ecuaciones para asignar posibles valores a ambas variables en función del comportamiento estadístico que observamos en los caracteres del criptograma. Como la transformación es Ci = (a∗Mi + b) mod n asociamos, según la frecuencia relativa de aparición de caracteres en el criptograma, valores de posición de dichos caracteres con los del alfabeto en claro. A continuación haremos un ensayo con diferentes relaciones de congruencia, a partir de unas supuestas correspondencias entre caracteres del criptograma con los caracteres del texto en claro, para ver cómo funciona este método de ataque. Si sospechamos que la letra más frecuente en un criptograma cualquiera, por ejemplo la letra M = 12, se corresponde con la letra más frecuente en el lenguaje castellano, es decir la letra E = 4, establecemos la primera relación de equivalencia: a∗4 + b = 12 mod 27 Siguiendo con la característica de los monogramas en castellano, pensamos ahora que existe una relación directa entre el segundo carácter más frecuente del criptograma, por ejemplo la letra G = 6, con la segunda letra más frecuente del lenguaje, A = 0. Esto nos da una segunda ecuación: a∗0 + b = 6 mod 27 Deducimos que b = 6. Si reemplazamos este valor en la primera ecuación: a∗4 + 6 = 12 mod 27 ⇒ a∗4 = 6 mod 27 a = 6∗inv(4,27) mod 27 ⇒ a = 6∗7 mod 27 ⇒ a = 15 Este resultado no nos sirve pues si a = 15 entonces mcd (a,n) = 3 y esto no puede dar lugar a un alfabeto de cifrado pues no genera el CCR(27). A un resultado similar habríamos llegado si, por ejemplo, manteniendo la relación de la primera ecuación hubiésemos supuesto una correspondencia entre la letra R = 18 del criptograma y la letra C = 2 del texto en claro. Le dejo esto como ejercicio. Para no aburrirle con esto, vamos a suponer ahora que las correspondencias válidas observadas entre caracteres del criptograma y texto en claro son las siguientes: M = 12 del criptograma se corresponde con E = 4 del texto en claro. T = 20 del criptograma se corresponde con R = 18 del texto en claro. Establecemos así el siguiente sistema de ecuaciones: a∗4 + b = 12 mod 27 a∗18 + b = 20 mod 27 Restando la primera de la segunda se tiene: a∗14 = 8 mod 27 ⇒ a = 8∗[inv(14,27)] mod 27 = 8∗2 mod 27 = 16

Page 1141: Seguridad Informatica

34 CRIPTOSISTEMAS CLÁSICOS

Sustituyendo a = 16 en una de las ecuaciones, obtenemos b = 2. Como ahora mcd (16,27) = 1, entonces el sistema de ecuaciones encontrado podría entregar una solución válida. En este caso la transformación de cifrado aplicada podría ser: Ci = (16∗Mi + 2) mod 27 Si esta congruencia no nos entrega un texto en claro con sentido, tendremos que buscar otras correspondencias entre caracteres del criptograma y del alfabeto, según su distribución de frecuencias, y volver a plantear el sistema de ecuaciones hasta encontrar la transformación que dé lugar al mensaje esperado. Observe que, aunque las relaciones de congruencia sean válidas, no por ello dicha transformación dará lugar a una solución válida en el espacio de los mensajes. Ejemplo 1.22: Descripte el siguiente criptograma obtenido mediante una transformación

monoalfabética por decimación y desplazamiento sin clave: C = NAQÑF EKNDP NCIVU FPUAN EJUIP FCNER NFRÑF UNPLN AFPFQ TFPEI JRTÑE FPKÑI KTAPF LIKIÑ AIPÑU RCUJI PCIVU CUNER IRLNP TJIAF NEOIÑ CFLNC NLUFA TEF.

Solución: Los caracteres de mayor frecuencia del criptograma anterior son: F = 14, N = 13 e I = 12. Esto nos hace sospechar que se correspondan con las letras A, E y O del alfabeto en claro.

Puesto n = 27 = 33 entonces φ(27) = 33-1(3-1) = 18. Haremos sólo dos intentos para mostrar cómo funciona este método de ataque:

1ª Aproximación (que nos lleva a una solución falsa): Texto claro: E(4) ⇒ Criptograma: F(5) Texto claro: A(0) ⇒ Criptograma: N(13) Texto claro: O(15) ⇒ Criptograma: I(8) Luego: (a∗4 + b) = 5 mod 27 (a∗0 + b) = 13 mod 27 ⇒ b = 13 (a∗15 + b) = 8 mod 27 Restando la primera ecuación a la tercera: a∗11 = 3 mod 27. Luego, a = (3∗inv(11,27))mod 27 = 3∗5 mod 27 = 15 ⇒ a = 15. La solución E(M) = (15Mi + 13) se descarta pues mcd (15,27) ≠ 1. 2ª Aproximación (que nos lleva ahora sí a una solución verdadera): Texto claro: E(4) ⇒ Criptograma: N(13) Texto claro: A(0) ⇒ Criptograma: F(5) Texto claro: O(15) ⇒ Criptograma: I(8) Luego: (a∗4 + b) = 13 mod 27 (a∗0 + b) = 5 mod 27 ⇒ b = 5 (a∗15 + b) = 8 mod 27 Restando la primera ecuación a la tercera: a∗11 = 22 mod 27. Luego a = (22∗inv(11,27))mod 27 = 22∗5 mod 27 ⇒ a = 2. Esto da lugar a E(M) = (2Mi + 5) mod 27, cuyo alfabeto es: Mi A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ci F H J L N O Q S U W Y A C E G I K M Ñ P R T V X Z B D Luego el criptograma se descripta como: M = EL GRAN PEZ SE MOVÍA SILENCIOSAMENTE A TRAVÉS DE

LAS AGUAS NOCTURNAS, PROPULSADO POR LOS RÍTMICOS

Page 1142: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 35

MOVIMIENTOS DE SU COLA EN FORMA DE MEDIA LUNA. (Primer párrafo del libro "Tiburón", de P. Benchley). En el caso en que se utilice una clave, el método anterior falla porque deja de existir una relación matemática directa y constante entre el alfabeto en claro y el alfabeto de cifrado. La única solución de ataque, siempre y cuando se conozca o sospeche que se trata de un cifrado monoalfabético, consistirá en buscar digramas, trigramas, y en general formación de palabras características del lenguaje repetidos en el criptograma, evidentemente con caracteres diferentes, y de esta forma obtener el alfabeto de cifrado como ya ha sido comentado en párrafos anteriores. Nos encontramos pues con una tarea más tediosa que la anterior pero, no obstante, relativamente sencilla para este tipo de cifradores. ¿Qué sucede con la distancia de unicidad en estos criptosistemas genéricos? Si analizamos las distintas posibilidades de alfabetos de cifrado, observamos que las posibles transformaciones están ligadas directamente con el factor de decimación. Esto es, la constante de desplazamiento puede tener cualquier valor puesto que asegura una operación inversa; sin embargo, la constante de decimación debe cumplir la condición de ser primo con el módulo. Esto va a indicar que las combinaciones de alfabetos de cifrado serán n∗φ(n); es decir, los n posibles desplazamientos por el indicador de Euler que indica el número de elementos que contiene el CRR(n), es decir primos con el módulo y que por tanto sirven como factor de decimación. Ejemplo 1.23: Encuentre la distancia de unicidad de un cifrador genérico de sustitución

sin clave para n = 27. Solución: N = H(K)/D = log2(nφ(n))/D = log2(27∗18)/3,4 = 2,6. Esto es, debemos

contar con 3 caracteres cifrados como mínimo. El valor de la distancia de unicidad para estos cifradores afines es muy bajo puesto que también lo es la cantidad de alfabetos. Con un valor de n = 27, solamente existen 486 alfabetos distintos, es decir, 26 desplazamientos por 18 decimaciones. Para hacer crecer este valor podemos usar una clave. En esta situación, el cifrador se convierte en uno monoalfabético con clave, con 27! ≈ 1028 alfabetos diferentes, un valor considerable no cabe duda y que nos entrega una distancia de unicidad igual a 28 caracteres como vimos en el Ejemplo 1.13. Como hemos comprobado, cualquier cifrador por sustitución monoalfabeto, bien sea por decimación, por desplazamiento o genérico con ambas transformaciones, incluso cuando utilizamos una clave, es muy poco seguro y su ataque en muchos casos se convierte en un paseo para el hipotético criptoanalista. El principal problema de estos cifradores está en que el texto cifrado es un fiel reflejo del lenguaje, manifestándose en aquél las características de redundancia del lenguaje. La primera solución que se nos puede ocurrir, que no la óptima por cierto, para evitar que en el criptograma se vea reflejada la redundancia del lenguaje es la utilización de homófonos, lo que da lugar a este tipo de cifradores que veremos a continuación. 1.5. CIFRADORES POR HOMÓFONOS

Page 1143: Seguridad Informatica

36 CRIPTOSISTEMAS CLÁSICOS

1.5.1. Cifradores por homófonos de primer orden ¿Qué entendemos por homófonos? La definición del vocablo puede encontrarse en cualquier diccionario: "palabras de igual pronunciación o sonido y distinto significado" como por ejemplo hola y ola. En criptografía entenderemos por homófonos a las distintas representaciones que damos al mismo carácter sin seguir ninguna relación o función determinada. Por ejemplo, si establecemos una relación entre los 27 caracteres del alfabeto con los 100 primeros números del 00 al 99, podríamos asociar a la letra A los siguientes números: 3, 16, 19, 24, 56, 71, 73, 88, 97. Luego, el receptor autorizado al conocer esta correspondencia simplemente reemplaza dichos números por la letra A para descifrar el mensaje. Esto da lugar a los denonimados cifradores por homófonos, cuya característica principal es la de suavizar la distribución de frecuencias típica del lenguaje, de forma que el criptoanalista no pueda emplear las técnicas estadísticas vistas en los apartados anteriores. La técnica consiste entonces en asignar un mayor número de homófonos a los caracteres más frecuentes del lenguaje y un menor número a aquellos menos frecuentes, con el objeto de que la distribución de estos valores se asemeje lo más posible a una distribución normal. Observe que en tanto un carácter del texto en claro se cifrará con más de un carácter o símbolo del alfabeto de cifrado, no estamos ya en presencia de un criptosistema monoalfabético. Además, el algoritmo de cifra no tiene porqué seguir una función determinada de asignación de homófonos durante el proceso. Por lo tanto, en este tipo de cifrados hacemos corresponder cada uno de los caracteres del alfabeto del texto en claro con un conjunto de elementos f(a) que denominamos homófonos y que pueden ser cualquier tipo de signos, figuras o números. Luego, si el mensaje M está compuesto por los elementos {M1, M2, ..., Mm}, entonces se tiene que {C1, C2, ..., Cm} será el conjunto de elementos del criptograma en donde cada Ci se toma al azar a partir de un conjunto de homófonos para f(Mi). Esto quiere decir que un mensaje M con una cadena de caracteres M1M2M3...Mm se cifrará como se indica: M = M1M2M3...Mm ⇒ C = f (M1) f (M2) f (M3)... f (Mm) Por ejemplo, si se asignan los homófonos que se muestran en la Figura 1.18, podríamos cifrar el mensaje M = BÁJAME LA JAULA JAIME como se indica: A ⇒ 03 19 36 83 91 B ⇒ 23 62 E ⇒ 07 25 28 62 70 88 89 97 I ⇒ 13 55 70 J ⇒ 43 L ⇒ 18 53 60 M ⇒ 10 33 71 80 U ⇒ 06 M = B A J A M E L A J A U L A J A I M E C = 62 36 43 03 71 25 18 91 43 19 06 53 83 43 83 55 10 97. Figura 1.18. Asignación de homófonos para la cifra que se indica.

Page 1144: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 37

No obstante, cualquier criptograma que respete la asignación antes indicada es también válido, pues el receptor autorizado conocerá dicha tabla de homófonos y podrá descifrar el criptograma. Es decir, para el ejemplo anterior, también es válida entre otras la siguiente transformación C = 2303439133 0718 3643030660 834336131070. El cifrador homofónico más importante de la historia de la criptografía es el atribuido al aventurero Thomas Jefferson Beale, quien en 1821 deja tres mensajes cifrados, llamados respectivamente B1, B2 y B3, en el que supuestamente entrega todas las pistas para descubrir un fabuloso tesoro por él enterrado en Virginia, Estados Unidos. La técnica aplicada por Beale para formar el conjunto de homófonos del cifrado B2 no deja de ser sorprendente: asigna números a los caracteres del alfabeto según la posición de la palabra en cuestión que comienza con dicha letra dentro del texto de la Declaración de la Independencia de los Estados Unidos, cuyas 107 primeras palabras se muestran en la Figura 1.19. Lo siento, tendrá que traducirlo Ud. mismo. When, in the course of human events, it becomes necessary (01-10) for one people to dissolve the political bands which have (11-20) connected them with another, and to assume among the Powers (21-30) of the earth the separate and equal station to wich (31-40) the Laws of Nature and of Nature's God entitle them, (41-50) a decent respect to the opinions on mankind requires that (51-60) they should declare the causes wich impel them to the (61-70) separation. We hold these truths to be self-evident; that (71-80) all men are created equal, that they are endowed by (81-90) their Creator with certain unalienable rights; that among these are (91-100) Life, Liberty, and the pursuit of Happiness. (101-107) Figura 1.19. Comienzo de la Declaración de Independencia de los Estados Unidos. Por ejemplo, siguiendo el texto de la Declaración de la Independencia de los Estados Unidos mostrado en la figura anterior, se obtienen los homófonos de valor menor que 100 para las letras A, B, C, D y E que se recogen en la Figura 1.20. A ⇒ 24 25 27 28 36 45 51 81 83 88 98 B ⇒ 9 18 77 90 C ⇒ 4 21 65 84 92 94 D ⇒ 15 52 63 E ⇒ 7 33 37 49 79 85 89 Figura 1.20. Algunos homófonos del cifrado B2 de Beale. Así, el cifrado B2 que especificaba el valor del tesoro y cómo había sido enterrado, comenzaba de la siguiente forma: "I have deposited..." y terminaba con el siguiente mensaje: "Paper Number One describes the exact locality of the vault, so that no difficulty will be hand in finding it" (su traducción es elemental). Esto trajo de cabeza a criptoanalistas aficionados cuya mayor ilusión era encontrar dicho tesoro. Tras diversos estudios más serios por parte del Laboratorio de Criptografía George Fabyan en Riverbank Illinois, se llega a la conclusión de que B1 sigue el mismo principio de cifrado que B2 pero, por muchos intentos que se hacen, no se llega a descriptarlo.

Page 1145: Seguridad Informatica

38 CRIPTOSISTEMAS CLÁSICOS

Ultimamente, James J. Gillogly y Louis Kruh, exponen en 1980 y 1982, respectivamente, en sendos artículos de la revista Cryptologia3, las anomalías encontradas en el primer criptograma de Beale, llegando a la conclusión de que se trata de una gran broma, posiblemente llevada a cabo por James B. Ward, vecino de Campbell County en Virginia, a quien supuestamente habían llegado los criptogramas de mano de Robert Morris, el tabernero a quien Beale habría confiado su secreto al abandonar el pueblo... algo enrevesado, lo reconozco, pero que no deja de ser curioso. El problema de la generación de homófonos a partir de un texto está en que, salvo que éste tenga una extensión muy grande, no se consiguen homófonos para algunas letras pocas frecuentes como inicios de palabras, como sería el caso de las letras K, Ñ y W para el castellano. La única solución consistiría en dejar unos números al final del cuerpo de homófonos para estos caracteres poco frecuentes. Ejemplo 1.24: Construya una tabla de homófonos con las 99 primeras palabras del libro

"Cien años de soledad" de Gabriel García Márquez y luego cifre el siguiente mensaje: M = UNA GRAN NOVELA.

Solución: El texto indicado es el siguiente: "Muchos años después, frente al pelotón de fusilamiento, el coronel 10 Aureliano Buendía había de recordar aquella tarde remota en que 20 su padre lo llevó a conocer el hielo. Macondo era 30 entonces una aldea de veinte casas de barro cañabrava construidas 40 a la orilla de un río de aguas diáfanas que 50 se precipitaban por un lecho de piedras pulidas, blancas y 60 enormes como huevos prehistóricos. El mundo era tan reciente, que 70 muchas cosas carecían de nombre, y para mencionarlas había que 80 señalarlas con el dedo. Todos los años, por el mes 90 de marzo, una familia de gitanos desarrapados plantaba su ..." 99 Los caracteres con homófonos serán en este caso: A 2 5 11 16 25 33 41 48 87 B 12 38 59 C 10 26 36 39 40 62 72 73 82 D 3 7 14 34 37 44 47 49 56 74 84 91 95 97 E 9 19 27 30 31 61 65 67 83 89 F 4 8 94 G 96 H 13 28 63 79 L 23 24 42 55 86 M 1 29 66 71 78 90 92 N 75 O 43 P 6 22 52 53 57 58 64 77 88 98 Q 20 50 70 80 R 15 18 46 69 S 21 51 81 99 3 Deavours Cipher, Kahn David, Kruh Louis, Mellen Greg, Winkel Brian, "Cryptology: Machines,

History & Methods", Artech House, 1989, pp. 491-505.

Page 1146: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 39

T 17 68 85 U 32 45 54 93 V 35 Y 60 76 Uno de los tantos criptogramas podría ser: C = 327511 96463375 754335305548. Como puede apreciar, en el ejemplo anterior no se ha podido encontrar homófonos para todo el alfabeto por lo que no podríamos cifrar, por ejemplo, el mensaje M = Una obra magistral. Además de lo anterior, si bien el método utilizado por Beale para la generación de homófonos entrega un cifrado que es difícil romper, cumple sólo parcialmente con el principio básico de estos cifradores, cual es la destrucción de la distribución característica de los caracteres a través de una distribución plana de los mismos en el criptograma. Esto es, si en un determinado lenguaje (castellano por ejemplo en módulo 27) las letras P, U, R y A presentan unos valores aproximados de frecuencia relativa iguales a 3, 4, 7 y 11 por ciento, respectivamente, entonces sobre 100 números o signos elegidos como homófonos, asignaríamos 3 homófonos a la letra P, 4 a la letra U, 7 a la R y 11 a la letra A. En el método propuesto por Beale, no se consigue esta distribución de homófonos. De los ejemplos anteriores, ninguno de los dos textos tomados como referencia para los homófonos -la Declaración de la Independencia de los Estados Unidos en el primero y el libro de García Márquez en el segundo- cumplen con esto. Entre otras diferencias notables, en ambos casos la letra A está por encima de la letra E, lo que no se corresponde ni con el lenguaje inglés ni el castellano. La única ventaja que tiene elegir estos textos como generadores de homófonos está en la sencillez del algoritmo de asignación y he aquí, precisamente, su gran debilidad puesto que el criptoanalista puede llegar a descubrir toda la clave por intuición a partir de un pequeño trozo por todos conocidos. Por ejemplo, está claro que el texto "En un lugar de La Mancha ..." es una malísima elección puesto que es una pista excelente para un probable criptoanalista. Un sistema de homófonos con una mayor seguridad sería, por ejemplo, asignar números de tres dígitos a las letras del alfabeto, obteniendo dichos números a partir de una página en particular de una Guía de Teléfonos; si es de otro país y antigua mejor aún. Dicha posición o página sería la clave secreta del criptosistema en cuestión. 1.5.2. Cifradores por homófonos de orden mayor A mayor cantidad de texto cifrado existe una mayor facilidad para abordar el criptoanálisis. La razón es que una única clave descifra el criptograma C en un texto con sentido en el espacio de los mensajes M. Esto se ve agravado si la clave está asociada con algún documento o texto ampliamente conocido como ya se ha comentado. El método de cifrado con homófonos de mayor orden intenta solucionar este problema. La idea es que un mismo criptograma pueda ser descifrado o, mejor aún, descriptado con claves diferentes y produzcan en cada caso un mensaje con sentido en

Page 1147: Seguridad Informatica

40 CRIPTOSISTEMAS CLÁSICOS

el espacio M con igual probabilidad. Recuerde que este tipo de soluciones eran consideradas como falsas según el modelo de cifrador aleatorio de Hellman visto en un capítulo anterior. • Cifrador homofónico de segundo orden En este cifrador se realiza la asignación de homófonos mediante una cuadrícula de forma que dicho valor representa a una letra si se lee a través de las filas y otra letra distinta si la lectura se hace a través de las columnas. Así, enviamos el mensaje verdadero y uno falso, ambos cifrados con el valor de dicha cuadrícula, de forma que el criptoanalista en el mejor de los casos podrá contar con dos mensajes, sin saber cuál de ellos es el verdadero. El algoritmo es el siguiente:

a) Los números 1 al n2 se distribuyen de forman aleatoria en una matriz K de orden n x n, cuyas filas y columnas corresponden a los caracteres del alfabeto.

b) Para cada carácter a del alfabeto, la fila de la matriz K define un conjunto de

homófonos fF(a) y la columna define otro conjunto de homófonos fC(a).

c) Para proceder al cifrado, se escriben los dos mensajes, uno debajo del otro, el verdadero que llamaremos M y uno falso que denominaremos X. El homófono que se envía como elemento del criptograma es el valor que aparece en la matriz K, en la intersección entre la fila del carácter en claro verdadero y la columna del carácter del mensaje falso.

d) Con esto, el criptograma se forma mediante el valor de las siguientes

intersecciones fF(M1)fC(X1), fF(M2)fC(X2), ..., fF(Mm)fC(Xm), en donde fF es la función lectura en filas y fC la lectura en columnas.

En la Figura 1.21 se muestra parte de una hipotética tabla de asignación de homófonos para un cifrador con estas características. A B C D E F G H I J ... A 60 47 13 37 5 91 33 19 92 80 B 39 8 53 72 9 89 57 93 38 54 C 73 1 21 94 65 10 82 58 36 18 D 12 48 2 84 20 59 3 11 55 99 E 40 88 97 26 52 71 79 35 64 56 F 14 95 66 22 83 78 16 41 34 27 G 96 85 15 69 25 51 42 76 17 23 H 4 61 28 46 100 24 98 70 67 90 I 74 29 77 86 50 62 6 43 44 32 J 7 49 68 30 45 75 63 87 31 81 ... Figura 1.21. Posible asignación de homófonos para un cifrador de segundo orden. Luego, al cifrar el mensaje M = CEDIDA con el mensaje falso X = FIJADA con la tabla anterior se obtiene C = 10 64 99 74 84 60. Observe que en estos cifrados el tamaño del texto en claro debe ser el mismo que el del texto falso.

Page 1148: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 41

1.5.3. Criptoanálisis de los cifrados por homófonos Los criptosistemas con homófonos pueden llegar a ser extremadamente difíciles de romper, especialmente si la asignación de tales valores no sigue una lógica como en los ejemplos anteriores, en que éstos eran obtenidos a partir de un texto muy conocido. Con una gran cantidad de texto cifrado es posible encontrar algunas cadenas de números o símbolos que se repiten y, por tanto, se pueden forman digramas, trigramas y en el mejor de los casos palabras y frases completas. Si todo va bien, con un poquitín de suerte podremos obtener en algunos casos la tabla de homófonos. Para los cifradores por homófonos de segundo orden, una técnica que puede dar algún fruto, también en función de que se cuente con una gran cantidad de texto cifrado, consiste en asociar los números repetidos a pares de letras de alta frecuencia, ir rellenando la matriz y, a su vez, buscar digramas, trigramas, palabras, etc., con el objeto de obtener la matriz de cifrado. Análogamente, lo mismo puede decirse para cifradores de mayor orden. No profundizaremos en este tipo de criptoanálisis en este libro pues es menester contar con un texto cifrado muy grande y no tiene sentido ocupar páginas en ello. El lector interesado en las técnicas para romper estos cifradores puede consultar las referencias anteriores como Deavours, Khan y otros. Ejemplo 1.25: Haciendo uso de nuestras habilidades y fuentes de información que no

vamos a desvelar en este momento, hemos encontrado el siguiente trozo de una tabla de homófonos, relacionada con el criptograma de 43 elementos que se indica. Encuentre los mensajes que han dado lugar al criptograma que se indica.

C = 699 289 492 124 005 693 404 017 126 559 710 590 700 258 046 124 200 705 159 200 545 581 545 644 503 388 590 219 150 041 480 727 086 346 468 603 444 013 668 077 590 100 301. Parte de la Tabla de Homófonos (ordenada numéricamente) 1er carácter (Fila) 2º carácter (Columna). 005 013 017 041 046 077 086 100 124 EL RE EA ED DL TC AV ES AA 126 150 159 200 219 258 289 301 346 AP TO UR SE AT OE EO SA NU 388 404 444 468 480 492 503 545 559 TA VL EV UE GO LV SI AN PE 581 590 603 644 668 693 699 700 705 LU RA ML EC OA ZE PN TP YZ 710 727 ON IY Solución: Leyendo los primeros caracteres de los homófonos del criptograma, es

decir filas, tenemos: 699=PN ⇒ P 289=EO ⇒ E 492=LV ⇒ L 124=AA ⇒ A 005=EL ⇒ E 693=ZE ⇒ Z 404=VL ⇒ V 017=EA ⇒ E 126=AP ⇒ A 559=PE ⇒ P 710=ON ⇒ O 590=RA ⇒ R 700=TP ⇒ T 258=OE ⇒ O 046=DL ⇒ D 124=AA ⇒ A 200=SE ⇒ S 705=YZ ⇒ Y 159=UR ⇒ U 200=SE ⇒ S

Page 1149: Seguridad Informatica

42 CRIPTOSISTEMAS CLÁSICOS

545=AN ⇒ A 581=LU ⇒ L 545=AN ⇒ A 644=EC ⇒ E 503=SI ⇒ S 388=TA ⇒ T 590=RA ⇒ R 219=AT ⇒ A 150=TO ⇒ T 041=ED ⇒ E 480=GO ⇒ G 727=IY ⇒ I 086=AV ⇒ A 346=NU ⇒ N 468=UE ⇒ U 603=ML ⇒ M 444=EV ⇒ E 013=RE ⇒ R 668=OA ⇒ O 077=TC ⇒ T 590=RA ⇒ R 100=ES ⇒ E 301=SA ⇒ S De esta forma se obtiene el mensaje por filas: MFila = PELÁEZ, VE A POR TODAS Y USA LA ESTRATEGIA NÚMERO

TRES. Leyendo los segundos caracteres de los homófonos del criptograma,

tenemos: 699=PN ⇒ N 289=EO ⇒ O 492=LV ⇒ V 124=AA ⇒ A 005=EL ⇒ L 693=ZE ⇒ E 404=VL ⇒ L 017=EA ⇒ A 126=AP ⇒ P 559=PE ⇒ E 710=ON ⇒ N 590=RA ⇒ A 700=TP ⇒ P 258=OE ⇒ E 046=DL ⇒ L 124=AA ⇒ A 200=SE ⇒ E 705=YZ ⇒ Z 159=UR ⇒ R 200=SE ⇒ E 545=AN ⇒ N 581=LU ⇒ U 545=AN ⇒ N 644=EC ⇒ C 503=SI ⇒ I 388=TA ⇒ A 590=RA ⇒ A 219=AT ⇒ T 150=TO ⇒ O 041=ED ⇒ D 480=GO ⇒ O 727=IY ⇒ Y 086=AV ⇒ V 346=NU ⇒ U 468=UE ⇒ E 603=ML ⇒ L 444=EV ⇒ V 013=RE ⇒ E 668=OA ⇒ A 077=TC ⇒ C 590=RA ⇒ A 100=ES ⇒ S 301=SA ⇒ A Ahora se obtiene el mensaje por columna: Mcolumna = NO VALE LA PENA PELÁEZ, RENUNCIA A TODO Y VUELVE

A CASA. En el ejemplo anterior, incluso conociendo de qué va el affaire de nuestro querido amigo Peláez, no seremos capaces de dilucidar cuál de los dos mensajes que hemos criptoanalizado será verdadero y cuál falso, salvo que conozcamos la clave de lectura en la tabla. Por lo tanto, nuestro esfuerzo en romper la tabla de homófonos nos ha llevado a un callejón sin salida: tener mucho texto con sentido pero asociado a una gran incertidumbre sobre la información que contiene y la veracidad del mismo. En otras palabras y aunque parezca un sarcasmo, después de rompernos la cabeza, no tenemos nada. 1.6. CIFRADORES POR SUSTITUCIÓN MONOGRÁMICA POLIALFABETO Los criptosistemas monoalfabéticos por sustitución y los de transposición o permutación presentan una gran debilidad al poder romperse en muchos casos los criptogramas aplicando unas técnicas sencillas de estadísticas del lenguaje. Esta debilidad está asociada directamente al hecho de que en el primero de ellos la sustitución se realizaba siempre con un único carácter del alfabeto de cifrado y, en el segundo, a que las letras del criptograma serán exactamente las mismas que las del texto en claro y sólo se han roto algunas adyacencias de caracteres. Ambos escenarios entregan una ayuda inapreciable al hipotético criptoanalista. Para solucionar estos problemas, aparecen los cifradores por sustitución polialfabéticos que, como su nombre lo indica, usan más de un alfabeto para cifrar. En el fondo, hacen uso de la característica ya apuntada por Alberti y que hemos comentado al comienzo de este capítulo en el apartado 1.1.1.

Page 1150: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 43

Los algoritmos de sustitución polialfabética tienen por objeto producir una distribución plana de la frecuencia relativa de los caracteres en el criptograma, de una manera similar a la técnica de los homófonos. Para ello utilizan sustituciones múltiples de forma que en un texto largo se combinan las altas frecuencias de algunos caracteres con otros de menor frecuencia. En otras palabras, si por ejemplo la letra A, de alta frecuencia en el lenguaje castellano, se cifra algunas veces como la letra O y otras veces como la letra J (una de alta frecuencia y la otra de baja) y lo mismo ocurre para la letra W, de baja frecuencia en el lenguaje, el efecto final es suavizar la mencionada distribución de frecuencia de todos los caracteres del criptograma. La técnica anterior consiste en aplicar dos o más alfabetos de cifrado de forma que cada uno de ellos sirva para cifrar los caracteres del texto en claro, dependiendo de la posición relativa de éstos en dicho texto. Por ejemplo, si utilizamos un alfabeto A1 para cifrar los caracteres de las posiciones impares del mensaje y otro alfabeto A2 para los caracteres en posiciones pares, entonces en un texto lo suficientemente extenso se tendrá que, aproximadamente, sólo en la mitad de las ocasiones las letras repetidas del texto en claro se repiten como un mismo elemento ci en el criptograma, lográndose por tanto el efecto de enmascaramiento de la distribución de frecuencia de los monogramas característica del lenguaje. 1.6.1. Cifradores polialfabéticos periódicos Los sistemas por sustitución polialfabética tienen, por lo general, un período que vendrá dado por la longitud de la clave de cifrado. La única excepción la encontramos en los denominados cifradores polialfabéticos de clave continua, siendo un ejemplo característico el cifrador de Vernam a estudiar en el apartado 1.6.8 y que, como su nombre lo indica, posee una clave tanto o más larga que el texto en claro por lo que serán cifradores no periódicos. Luego, si dependiendo de la longitud de la clave tenemos d alfabetos de cifrado, habrá una periodicidad en los elementos del criptograma indicada por la siguiente cadena: C = C1 ... Cd Cd+1 ... C2d C2d+1 ... C3d ... 1.14 O lo que es lo mismo, si f: A → C es una aplicación de correspondencia del alfabeto A del texto en claro con el alfabeto de cifrados Ci, con 1 ≤ i ≤ d, entonces tendremos que el mensaje M = M1...MdMd+1...M2d..., se cifrará repitiendo la secuencia f1...fd cada d caracteres. Por lo tanto, podemos concluir que: EK(M) = f1(M1)... fd(Md)f1(Md+1)...fd(M2d)f1(M2d+1)... 1.15 1.6.2. Cifrador de Vigenère El cifrador polialfabético más conocido es el sistema de Vigenère, así denominado en honor al criptólogo francés Blaise de Vigenère (1523-1596). El sistema utiliza el mismo método que el cifrador del César, esto es una sustitución monográmica

Page 1151: Seguridad Informatica

44 CRIPTOSISTEMAS CLÁSICOS

por desplazamiento de k caracteres en el texto, con la diferencia de que dicho desplazamiento viene indicado por el valor numérico asociado a uno de los caracteres de una clave que se escribe cíclicamente bajo el mensaje como se indica a continuación: TEXTO: E N U N L U G A R D E L A M A N C H A D E C U Y O N O M B R E ... CLAVE: C E R V A N T E S C E R V A N T E S C E R V A N T E S C E R V ... Según lo anterior, la clave utilizada será CERVANTES y tendrá una periodicidad igual a 9, pues son los caracteres que forman esta palabra. Luego, al primer carácter del texto en claro (E) se le aplica un desplazamiento equivalente al primer carácter de la clave (C), dando lugar a E + C = (4 + 2) mod 27 = 6 = G; el segundo carácter (N) se cifra sumándolo con el segundo carácter de la clave (E), N + E = (13 + 4) mod 27 = 17 = Q, etc. El resultado final será el criptograma: C = GQMIL HZEKF ICVMN GGZCH VXULI. Tómese ahora un merecido descanso y compruebe este resultado. Ejemplo 1.26: Aplicando relaciones de congruencia como las indicadas en el párrafo

anterior, cifre el siguiente mensaje según el método de Vigenère. M = DESASTRE NUCLEAR EN MURUROA. Clave K = SOS. Solución: D E S A S T R E N U C L E A R E N M U R U R O A S O S S O S S O S S O S S O S S O S S O S S O S D+S = (3+19) mod27 = 22 ⇒ V E+S = (4+19) mod27 = 23 ⇒ W E+O = (4+15) mod27 = 19 ⇒ S A+O = (0+15) mod27 = 15 ⇒ O S+S = (19+19) mod27 = 11 ⇒ L R+S = (18+19) mod27 = 10 ⇒ K A+S = (0+19) mod27 = 19 ⇒ S E+S = (4+19) mod27 = 23 ⇒ W S+O = (19+15) mod27 = 7 ⇒ H N+O = (13+15) mod27 = 1 ⇒ B T+S = (20+19) mod27 = 12 ⇒ M M+S = (12+19) mod27 = 4 ⇒ E R+S = (18+19) mod27 = 10 ⇒ K U+S = (21+19) mod27 = 13 ⇒ N E+O = (4+15) mod27 = 19 ⇒ S R+O = (18+15) mod27 = 6 ⇒ G N+S = (13+19) mod27 = 5 ⇒ F U+S = (21+19) mod27 = 13 ⇒ N U+S = (21+19) mod27 = 13 ⇒ N R+S = (18+19) mod27 = 10 ⇒ K C+O = (2+15) mod27 = 17 ⇒ Q O+O = (15+15) mod27 = 3 ⇒ D L+S = (11+19) mod27 = 3 ⇒ D A+S = (0+19) mod27 = 19 ⇒ S Luego, se obtiene el siguiente criptograma: C = VSLSH MKSFN QDWOK WBENG NKDS. Observe que letras repetidas del texto en claro se cifran de forma distinta, dependiendo de su posición relativa respecto a la clave. Es el caso de la letra E que se cifra dos veces como S al coincidir con la letra O de la clave y dos veces como W cuando la letra de la clave es S. Algo similar ocurre con las letras A, N y R y no así con la U que se cifra tres veces como N. Por otra parte, una letra repetida del criptograma puede provenir de caracteres distintos del texto en claro. Es el caso de la letra D que proviene de los caracteres L y O del mensaje. Las observaciones anteriores pueden generalizarse teniendo en cuenta el número de alfabetos utilizados en función de la clave. En nuestro ejemplo, si bien la clave SOS implica una periodicidad igual a tres, solamente utilizamos dos alfabetos, el correspondiente a la letra S y el de la letra O. CLAVE T E X T O E N C L A R O 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

Page 1152: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 45

A 0 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z B 1 B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A C 2 C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B D 3 D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C E 4 E F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D F 5 F G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E G 6 G H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F H 7 H I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G I 8 I J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H J 9 J K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I K 10 K L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J L 11 L M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K M 12 M N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L N 13 N Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M Ñ 14 Ñ O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O 15 O P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ P 16 P Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O Q 17 Q R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P R 18 R S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q S 19 S T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R T 20 T U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S U 21 U V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T V 22 V W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U W 23 W X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V X 24 X Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X 25 Y Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Z 26 Z A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Figura 1.22. Tabla de cifrar de Vigenère. El algoritmo de Vigenère utiliza permutaciones para cifrar los caracteres del texto en claro con una clave. Si extendemos el número de permutaciones hasta su límite superior, en nuestro caso 27, se obtiene la denominada Tabla de Vigenère que se muestra en la Figura 1.22. Para cifrar un texto utilizando la Tabla de Vigenère se procede de la siguiente manera: nos posicionamos en el carácter del texto en claro a cifrar en la primera fila de la tabla y buscamos la letra de la clave en cuestión en la primera columna de la tabla. El elemento Ci del criptograma será la letra de la retícula de intersección entre fila y columna. Por ejemplo la letra M cifrada con la clave O nos dará el criptograma A. Compruebe que al mismo resultado se llega si se cifra el texto en claro O con la clave M. La primera fila, la de la clave A, corresponde a la del texto en claro pues es lo que se obtiene al aplicar un desplazamiento igual a cero. Ejemplo 1.27: Utilizando la Tabla de Vigenère y la clave K = WINDOWS, cifre el

siguiente mensaje: M = MARIPURI, APAGA ESE ORDENADOR. Solución: M A R I P U R I A P A G A E S E O R D E N A D O R W I N D O W S W I N D O W S W I N D O W S W I N D Buscando en la tabla, obtenemos el criptograma: C = IIELE QKEIC DUWWO MBURA FWLBU. En el ejemplo anterior la clave tenía longitud 7 aunque sólo hemos hecho uso de 6 alfabetos de cifrado, los de las letras no repetidas de la clave W, I, N, D, O, S.

Page 1153: Seguridad Informatica

46 CRIPTOSISTEMAS CLÁSICOS

Puesto que la clave está formada por un conjunto de d caracteres, K = k1...kd, en donde ki (i = 1,...d) entrega la cantidad de desplazamiento del alfabeto iésimo, la función de transformación de Vigenère para cifrar vendrá dada por: Ci = Eki(Mi) = (Mi + ki) mod n 1.16 Para realizar la operación de descifrado con la tabla se procede de manera inversa. En la fila del carácter iésimo de la clave, nos posicionamos en la retícula de la letra del criptograma; hecho esto, subimos por esta columna hasta la fila primera del texto en claro y leemos el carácter. Por ejemplo, si el elemento Ci es la letra G y el elemento ki es la letra Ñ, el resultado será el texto en claro S. Ejemplo 1.28: En la sala de mandos se recibe el siguiente criptograma que se sabe ha

sido cifrado mediante Vigenère con la clave TORA. Se pide descifrarlo. C = RODAF DLOIG UEGOR TTQRR JSRRE VRRUD J. Solución: Aplicando el método comentado, obtenemos el inquietante mensaje: M = YAMAMOTO ORDENA ATACAR PEARL HARBOR. De acuerdo con la operación de cifra indicada en la ecuación (1.16), la función de descifrado de Vigenère deberá utilizar el inverso del desplazamiento aplicado, dando lugar a la expresión: Mi = Dki(Ci) = (Ci - ki) mod n 1.17 Por ejemplo, para el primer elemento del criptograma del ejemplo anterior (R), con letra de clave (T) obtenemos: (R-T) mod 27 = (18-20) mod 27 = -2 mod 27 = 25 = Y. Continúe Ud. con el resto del criptograma. 1.6.3. Cifrador autoclave Es una variante del algoritmo de Vigenère, conocido también como Segundo Cifrado de Vigenère, cuya característica radica en que se cifra el mensaje con una clave que consiste en el mismo mensaje al que se le añade al comienzo una clave denominada primaria. Luego, la secuencia de clave será tan larga como el propio mensaje. Por ejemplo, si utilizando la clave K = MARKETING deseamos cifrar el mensaje M = YA ES PRIMAVERA EN EL CORTE INGLÉS, usando la Tabla de Vigenère obtenemos el siguiente criptograma: M = Y A E S P R I M A V E R A E N E L C O R T E I N G L E S K = M A R K E T I N G Y A E S P R I M A V E R A E N E L C O C = K A V C T L P Y G T E V S T E M W C K V L E M Z K V G H La operación de descifrado, conociendo la clave MARKETING es igual que en Vigenère. Esto es, siguiendo la ecuación (1.17), desciframos los nueve primeros caracteres como se indica: K - M ⇒ (10 - 12) mod 27 = 25 ⇒ Y A - A ⇒ (0 - 0) mod 27 = 0 ⇒ A V - R ⇒ (22 - 18) mod 27 = 4 ⇒ E

Page 1154: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 47

C - K ⇒ (2 - 10) mod 27 = 19 ⇒ S T - E ⇒ (20 - 4) mod 27 = 16 ⇒ P L - T ⇒ (11 - 20) mod 27 = 18 ⇒ R P - I ⇒ (16 - 8) mod 27 = 8 ⇒ I Y - N ⇒ (25 - 13) mod 27 = 12 ⇒ M G - G ⇒ (6 - 6) mod 27 = 0 ⇒ A Con este método seremos capaces de descifrar sólo los primeros 9 caracteres del criptograma KAVCTLPYG correspondientes a la clave primaria MARKETING. Para continuar descifrando, hacemos uso de los 9 caracteres ya descifrados (YAESPRIMA) que, según el método, irán a continuación de dicha clave. Por lo tanto, desciframos ahora el criptograma TEVSTEMWC con la clave YAESPRIMA y así sucesivamente hasta obtener el mensaje original … que se lo dejo como ejercicio. Aunque impresione más que otras técnicas de cifra, el secreto de este criptosistema reside únicamente en el de la clave. Conocida ésta, el criptoanálisis es elemental. Ejemplo 1.29: Si la clave usada en un cifrador autoclave es PIZZA, descifre el siguiente

criptograma. C = SWMCE HHGDI OLXCV OMSGC WXQVO MSGKX TSQDT MEFL Solución: Bloque 1: SWMCE Clave: PIZZA ⇒ M1 = DONDE Bloque 2: HHGDI Clave: DONDE ⇒ M2 = ESTAE Bloque 3: OLXCV Clave: ESTAE ⇒ M3 = LSECR Bloque 4: OMSGC Clave: LSECR ⇒ M4 = ETOEL Bloque 5: WXQVO Clave: ETOEL ⇒ M5 = SECRE Bloque 6: MSGKX Clave: SECRE ⇒ M6 = TOEST Bloque 7: TSQDT Clave: TOEST ⇒ M7 = AENLA Bloque 8: MEFL Clave: AENL ⇒ M8 = MASA Luego, incluyendo los signos de puntuación, este sabroso mensaje es: M = ¿DÓNDE ESTÁ EL SECRETO? EL SECRETO ESTÁ EN LA MASA.

(He incluido los signos) 1.6.4. Cifrador de Beaufort En 1710, Giovanni Sestri, basado en el método de cifra de Vigenère, propone un algoritmo simétrico que sirve tanto para cifrar como para descifrar. El invento del cifrador en cuestión finalmente se le atribuye al inglés Sir Francis Beaufort, amigo de Sestri, y recibe precisamente el nombre de cifrador de Beaufort. Eso sí que es un amigo. La sustitución empleada en este cifrador sigue la siguiente expresión: Ci = Eki(Mi) = (ki - Mi) mod n 1.18 La Figura 1.23 recoge todos los valores de la Tabla de Beaufort para el lenguaje castellano. CLAVE TEXTO EN CLARO 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

Page 1155: Seguridad Informatica

48 CRIPTOSISTEMAS CLÁSICOS

A 0 A Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B B 1 B A Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C C 2 C B A Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D D 3 D C B A Z Y X W V U T S R Q P O Ñ N M L K J I H G F E E 4 E D C B A Z Y X W V U T S R Q P O Ñ N M L K J I H G F F 5 F E D C B A Z Y X W V U T S R Q P O Ñ N M L K J I H G G 6 G F E D C B A Z Y X W V U T S R Q P O Ñ N M L K J I H H 7 H G F E D C B A Z Y X W V U T S R Q P O Ñ N M L K J I I 8 I H G F E D C B A Z Y X W V U T S R Q P O Ñ N M L K J J 9 J I H G F E D C B A Z Y X W V U T S R Q P O Ñ N M L K K 10 K J I H G F E D C B A Z Y X W V U T S R Q P O Ñ N M L L 11 L K J I H G F E D C B A Z Y X W V U T S R Q P O Ñ N M M 12 M L K J I H G F E D C B A Z Y X W V U T S R Q P O Ñ N N 13 N M L K J I H G F E D C B A Z Y X W V U T S R Q P O Ñ Ñ 14 Ñ N M L K J I H G F E D C B A Z Y X W V U T S R Q P O O 15 O Ñ N M L K J I H G F E D C B A Z Y X W V U T S R Q P P 16 P O Ñ N M L K J I H G F E D C B A Z Y X W V U T S R Q Q 17 Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U T S R R 18 R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U T S S 19 S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U T T 20 T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U U 21 U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V V 22 V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W W 23 W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X X 24 X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y Y 25 Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Z 26 Z Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Figura 1.23. Tabla de cifrar de Beaufort. Por lo tanto, se invierte el orden de las letras del alfabeto A y luego se les aplica un desplazamiento hacia la derecha de (ki + 1) posiciones. Esta afirmación puede comprobarse aplicando la siguiente congruencia: Eki(A) = (ki - A) mod n = [(n-1) - A + (ki +1)] mod n 1.19 Ejemplo 1.30: Usando la Tabla de Beaufort con clave K = ULTIMÁTUM, cifre el mensaje

M = ESTO ES LA GUERRA SEÑORES. Solución: Siguiendo la tabla de la Figura 1.23 se obtiene: C = QSATI IJUGA HCQMI PHXDH B. Por la operación de sustitución empleada, es posible que, a diferencia del de Vigenère, un carácter se cifre con su valor en claro con una clave distinta de la letra A, como es el caso en el ejemplo anterior en que el segundo (S) y el noveno (G) caracteres se cifran en claro, con las claves (L) y (M), respectivamente. La operación de descifrado, tal como comentábamos, es la misma que la de cifrado, con la excepción que en vez de texto claro M contamos ahora con texto cifrado C, esto es: Mi = Dki(Ci) = (ki - Ci) mod n 1.20 Por ejemplo, para los cinco primeros caracteres del ejemplo anterior (QSATI ) aplicando la ecuación 1.20 se obtiene: k1 = U; C1 = Q ⇒ M1 = (21-17) mod 27 = 4 ⇒ M1 = E

Page 1156: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 49

k2 = L; C2 = S ⇒ M2 = (11-19) mod 27 = 19 ⇒ M2 = S k3 = T; C3 = A ⇒ M3 = (20-0) mod 27 = 20 ⇒ M3 = T k4 = I; C4 = T ⇒ M4 = (8-20) mod 27 = 15 ⇒ M4 = O k5 = M; C5 = I ⇒ M5 = (12-8) mod 27 = 4 ⇒ M5 = E A igual resultado podemos llegar si utilizamos la Tabla de Beaufort para descifrar. De la misma forma que en el método de Vigenère, nos posicionamos en la fila correspondiente al carácter de la clave y buscamos la retícula en la que aparezca el elemento cifrado, su proyección a la fila superior del texto en claro nos entrega el carácter del mensaje. Observe que en este caso, la fila de desplazamiento 0 (letra A) no se corresponde con la del texto en claro como sucedía con Vigenère. Ejemplo 1.31: Usando la ecuación 1.20 descifre con clave LEIA el siguiente criptograma: C = UKEPL ZÑWTF IHHEG MZOIN H. Solución: Siguiendo el método indicado, encontramos el mensaje intergaláctico: M = QUE LA FUERZA TE ACOMPAÑE. • Variante del cifrador de Beaufort Si modificamos la ecuación (1.18) de forma que la función de cifrado Eki se transforme en Eki(Mi) = (Mi - ki) mod n, el sistema se conoce como variante de Beaufort. Esto es equivalente a cifrar con Vigenère siendo la clave (n - ki) lo que puede demostrarse a partir de la siguiente congruencia: para un alfabeto A: (A - ki) mod n = [A + (n - ki)] mod n 1.21 Al ser el inverso del algoritmo de Vigenère, este cifrador se puede utilizar para descifrar criptogramas obtenidos con Vigenère y viceversa. Algo obvio por lo demás. 1.6.5. Criptoanálisis de los cifrados polialfabéticos periódicos al utilizar más de un alfabeto, el número de combinaciones de la clave crecerá y también lo hará su entropía y distancia de unicidad. Para un cifrador polialfabético como Vigenère, la distancia de unicidad vendrá dada por el número total de combinaciones usadas para sustituciones simples; esto es si para cada sustitución simple monoalfabeto hay n posibles claves, entonces al utilizar d sustituciones existirán nd claves posibles. Ejemplo 1.32: Si el alfabeto de claves son las letras A, B, C y D, a) ¿Cuántas claves de

dos elementos podemos formar? b) Encuentre la distancia de unicidad del cifrador de Vigenère para el lenguaje castellano. c) ¿Cuál es su valor para una clave de longitud 10?

Solución: a) Existirán nd = 42 = 16 combinaciones posibles. Para este alfabeto de cuatro letras, serán claves: AA, AB, AC, AD, BA, BB, BC, BD, CA, CB, CC, CD, DA, DB, DC y DD.

b) N = H(K)/D = log2 (nd)/D = d ∗ log2 n/D = d ∗ log2 27/3,4. c) Si d = 10 entonces N ≈ 10 ∗ 1,4 ≈ 14 caracteres.

Page 1157: Seguridad Informatica

50 CRIPTOSISTEMAS CLÁSICOS

Luego, para romper un cifrado polialfabético se necesitará mucho más texto cifrado que en uno monoalfabético, tantas veces como el valor de su período, puesto que en aquel caso la cantidad de texto cifrado necesaria venía dada por log2 n/D. • Método de Kasiski Vamos a profundizar en la característica de periodicidad de los cifradores polialfabéticos. Supongamos que por algún método aún desconocido por Ud, logramos adivinar que la longitud de la clave es igual a seis caracteres. Si el criptograma C está formado por una cadena de m caracteres C1C2...Cm-1Cm, podemos escribirlo en un formato de seis columnas como se indica:

C1 C2 C3 C4 C5 C6C7 C8 C9 C10 C11 C12C13 C14 C15 C16 C17 C18C19 C20 C21 C22 C23 C24............. Cm-5 Cm-4 Cm-3 Cm-2 Cm-1 Cm

Recordando el método de cifrado de Vigenère con una clave de seis caracteres, tenemos que cada una de las seis columnas corresponderá a la cifra con el mismo elemento de la clave. Esto es, los caracteres de una misma columna se corresponden con los de un cifrado monoalfabético por desplazamiento puro dado por el valor del elemento iésimo de clave. Esto nos va a indicar que dos o más caracteres iguales en una columna se deberán a caracteres iguales del texto en claro que, evidentemente, se han cifrado con la misma letra de clave. Además, como el lenguaje castellano presenta una alta redundancia es posible que poligramas característicos tales como ando, ada, ido, ado, ica, ita, ción, mente y muchos otros sean cifrados con la misma cadena de clave originando cadenas de texto cifrado repetidas en el criptograma. La probabilidad de que se den estas repeticiones de cadenas será menor que en un cifrador monoalfabético; no obstante, una cadena grande de caracteres repetidos es muy poco probable que aparezca por puro azar. De hecho, trigramas y tetragramas repetidos más de una vez en el criptograma indican una alta probabilidad de que la distancia entre tales cadenas sea un múltiplo de la clave utilizada para cifrar. Aquí está la madre del cordero. Este principio fue observado por el criptólogo alemán Friedrich W. Kasiski en 1860 con lo que el método lleva su nombre. En otras palabras, si una clave tiene L caracteres, sólo hay L formas diferentes de posicionar dicha clave sobre la o las palabras en el texto en claro. Esto es, si la clave es NECIO, una repetición típica de cuatro letras como podría ser ando (p.e. comprobando, contrabando, bando, bandolero, cantando, abandono, etc.) podrá cifrarse solamente de las siguientes cinco formas ANDO+NECI, ANDO+ECIO, ANDO+CION, ANDO+IONE y ANDO+ONEC. Luego, para este caso, podemos esperar que un grupo de caracteres que aparecen más de L veces en el texto en claro hayan sido cifrados al menos dos veces en la misma posición de la clave y dichas ocurrencias se cifrarán de forma idéntica. Veamos un ejemplo sencillo. Si el mensaje es el famoso monólogo de Hamlet y ciframos mod 27 según el método de Vigenère con la clave K = HAM se tiene:

Page 1158: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 51

M = T O B E O R N O T T O B E T H A T I S T H E ... K = H A M H A M H A M H A M H A M H A M H A M H ... C = A O N L O D T O F A O N L T S H T T Z T S L ...

La cadena o secuencia de caracteres AONL que aparece dos veces en el criptograma con una separación igual a 9 espacios, sugiere que el período de la clave sea igual a 3 ó 9. Además encontramos la cadena TS separada por 6 espacios lo que confirmaría que el período es igual a 3. Con algo más de texto y el uso de las estadísticas del lenguaje como veremos más adelante, seremos capaces de determinar que la clave de este ejemplo tiene efectivamente una longitud de 3 caracteres y que éstos son precisamente HAM. Explicaremos el método de Kasiski mediante un ejemplo detallado. Supongamos que contamos con el criptograma de 404 caracteres que se indica: PBVRQ VICAD SKAÑS DETSJ PSIED BGGMP SLRPW RÑPWY EDSDE ÑDRDP CRCPQ MNPWK UBZVS FNVRD MTIPW UEQVV CBOVN UEDIF QLONM WNUVR SEIKA ZYEAC EYEDS ETFPH LBHGU ÑESOM EHLBX VAEEP UÑELI SEVEF WHUNM CLPQP MBRRN BPVIÑ MTIBV VEÑID ANSJA MTJOK MDODS ELPWI UFOZM QMVNF OHASE SRJWR SFQCO TWVMB JGRPW VSUEX INQRS JEUEM GGRBD GNNIL AGSJI DSVSU EEINT GRUEE TFGGM PORDF OGTSS TOSEQ OÑTGR RYVLP WJIFW XOTGG RPQRR JSKET XRNBL ZETGG NEMUO TXJAT ORVJH RSFHV NUEJI BCHAS EHEUE UOTIE FFGYA TGGMP IKTBW UEÑEN IEEU. En el criptograma se han subrayado con línea doble algunas cadenas largas que se repiten. Estas son: 3 cadenas GGMP: separadas por 256 y 104 caracteres 2 cadenas YEDS: separadas por 72 caracteres 2 cadenas HASE: separadas por 156 caracteres 2 cadenas VSUE: separadas por 32 caracteres. El valor del máximo común divisor de estas distancias debería ser un múltiplo de la longitud de la clave, esto es: mcd (256,104,72,156,32) = 4. Luego, la clave podría tener una longitud igual a cuatro caracteres. Hay que tener cuidado con elegir cadenas muy cortas ya que éstas pueden deberse solamente al azar y echar por tierra todas nuestras esperanzas de romper la cifra al aparecer una distancia cuyo valor sea primo con las demás. En nuestro ejemplo sería el caso de elegir, entre otras, también la cadena VR (subrayada) que aparece tres veces al comienzo del criptograma con una separación de 65 y 31 caracteres, que no cumple con el máximo común divisor 4 encontrado anteriormente. Lo mismo ocurre con la cadena RR (subrayada), que se repite dos veces con una separación de 142 y luego 19 espacios. Para más inri, en ambos casos aparece un número primo, lo que asegura que el mcd sea igual a uno. Si sospechamos que la clave tiene cuatro caracteres, vamos a romper el texto cifrado en cuatro criptogramas independientes CA, CB, CC y CD de 101 caracteres cada uno y que llamaremos subcriptogramas, tomando para el primero, segundo, tercero y cuarto los caracteres separados por cuatro espacios, siguiendo la escritura en columnas que indicábamos al comienzo de este apartado; es decir:

Page 1159: Seguridad Informatica

52 CRIPTOSISTEMAS CLÁSICOS

Primer subcriptograma: C1, C5, C9, ..., C391, C401 Segundo subcriptograma: C2, C6, C10, ..., C398, C402 Tercer subcriptograma: C3, C7, C11, ..., C399, C403 Cuarto subcriptograma: C4, C8, C12, ..., C400, C404 Por lo tanto, tenemos ahora: C = PQAAEPDMRÑEEDCNUSRIECNIONSAAETLUOLAUIEULMNIIEAAOOLU A MNARSOMRSISERNAISIRTMDTOORLIORRENENOAVSNIAEOFAMTEI C = BVDÑTSBPPPDÑPPPBFDPQBUFNUEZCDFBÑMBEÑSFNPBBÑBÑNMKDPF B QFSJFTBPUNJMBNGDUNUFPFSSÑRPFTPJTBTETTJFUBSUTFTPBÑE C = VISSSIGSWWSDCQWZNMWVOEQMVIYESPHEEXEEEWMQRPMVISTMSWO C MOEWQWJWEQEGDISSETEGOOSETYWWGQSXLGMXOHHECEEIGGIWEE C = RCKDJEGLRYDRRMKVVTUVVDLWRKEYEHGSHVPLVHCPRVTVDJJDEIZ D VHSRCVGVXRUGGLJVEGEGRGTQGVJXGRKRZGUJRRVJHHUEYGKUNU Para descifrar los caracteres de la clave, suponiendo una cifra del tipo Vigenère, debemos encontrar el desplazamiento que se observa en cada uno de estos cifrados monoalfabéticos. Aplicaremos un Método por Coincidencia Múltiple que he llamado Regla EAOS. Consiste en observar las frecuencias relativas de los caracteres de cada subcriptograma y marcar las cuatro mayores de forma que sigan modularmente la posición de las letras A, E, O y S en el alfabeto, las cuatro letras más frecuentes del lenguaje castellano. Evidentemente, si se desea una mayor precisión pueden tomarse más letras con el mismo sentido pero en la mayoría de los casos y para lo que aquí nos interesa es suficiente con estas cuatro. Por lo tanto, para estas cuatro letras, los caracteres m que las representen deberán tener una frecuencia relativa alta y estar situadas en las siguientes posiciones: m mod 27 posición relativa de la letra A en el alfabeto desde el origen m+4 mod 27 posición relativa de la letra E en el alfabeto desde el origen m+15 mod 27 posición relativa de la letra O en el alfabeto desde el origen m+19 mod 27 posición relativa de la letra S en el alfabeto desde el origen Esto quiere decir que al ser todos los subcriptogramas resultado de cifrados monoalfabéticos, entonces alguna letra del texto cifrado tendrá aproximadamente la frecuencia característica de la letra A en el lenguaje, otra la de la letra E, otra de la letra O y otra de la letra S. Estos valores altos de frecuencia deberán estar separados por una relación de distancias constante pues de la A a la E hay cuatro espacios, de la E a la O hay once, de la O a la S cuatro y, por último, de la S a la A siete. En la Figura 1.24 se muestra la tabla con la contabilización de los caracteres de cada subcriptograma para este ejemplo.

A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z CA 11 0 2 3 12 1 0 0 11 0 0 5 6 9 1 10 2 1 9 7 4 5 1 0 0 0 0CB 0 14 1 6 4 12 1 0 0 4 1 0 3 6 8 6 14 2 1 6 9 7 1 0 0 0 1CC 0 0 1 2 18 0 7 3 7 1 0 1 7 1 0 0 2 6 1 12 3 0 3 12 3 2 1CD 0 0 3 5 7 0 12 6 1 7 5 4 1 1 0 6 2 1 13 2 3 7 14 0 2 3 2

Page 1160: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 53

Figura 1.24. Frecuencias de los monogramas del ejemplo de criptoanálisis. De la Figura 1.24, tomaremos los valores que se subrayan como caracteres en los cuales se cumple en buena medida la regla indicada, es decir: (mA + 4) mod 27 = mE (mE + 11) mod 27 = mO (mO + 4) mod 27 = mS

(mS + 7) mod 27 = mA 1.22 siendo mA, mE, mO y mS las posiciones de los caracteres con mayor frecuencia relativa en el criptograma que cumplan este sentido modular. En este caso, siguiendo la Figura 1.24, para el criptograma CA se observa que la única solución que cumple con la modularidad de (1.22) es aquella en la que el texto cifrado coincide con el texto en claro AEOS con valores (11,12,10,7), luego es posible que la primera letra de la clave sea la A. El valor alto que muestra la letra I no cumple esta condición y se descarta. Para CB la relación de letras con alta frecuencia en este orden modular está muy claro que se encuentra desplazada un carácter a la derecha, BFPT (14,12,14,9) con lo cual la clave puede ser B. Para el tercer criptograma CC los números 18, 7, 12, y 12 cumplen con la modularidad exigida por la ecuación obteniendo ahora un ciclo EISW por lo que podemos suponer que la tercera letra de la clave es la E. Por último para el criptograma CD, elegimos los caracteres RVGK con frecuencias (13,14,12,5) con lo que la clave será la letra R. Con esto llegamos a la conclusión de que la clave puede ser K = ABER. Descifraremos entonces el criptograma C según Vigenère con la clave ABER, "a ver" qué sucede.

C = PBVRQ VICAD SKAÑS DETSJ PSIED BGGMP SLRPW RÑPWY K = ABERA BERAB ERABE RABER ABERA BERAB ERABE RABER M = PARAQ UELAC OSANO MESOR PREND ACOMO OTROS AÑOSH

Como el texto "Para que la cosa no me sorprenda como otros años..." tiene sentido en castellano, y es imposible que se dé por pura casualidad, seguimos descifrando y obtenemos el texto que se indica. No obstante, observe que la cadena repetida GGMP de criptograma corresponde a la palabra “como”, bastante común en nuestro lenguaje. Como ejercicio, encuentre a qué cadenas de caracteres en claro corresponden las cadenas de cifrado YEDS, HASE y VSUE que nos han servido para romper la cifra. El texto completo es: "Para que la cosa no me sorprenda como otros años, he comenzado ya con unos suaves ejercicios de precalentamiento; mientras desayunaba he contemplado una bola plateada y una tira de espumillón y mañana me iniciaré en el amor al prójimo con los que limpien el parabrisas en los semáforos. Esta gimnasia del corazón metafórico es tan importante como la del otro corazón porque los riesgos coronarios están ahí, escondidos tras la vida sedentaria y parapetados en fechas como estas de Navidad." Comienzo del artículo "Gimnasia" del periodista Andrés Aberasturi publicado en el periódico El Mundo el 4/12/94, año del primer curso en que se impartió la asignatura Seguridad Informática en la EUI.

Page 1161: Seguridad Informatica

54 CRIPTOSISTEMAS CLÁSICOS

Si los subcriptogramas son relativamente pequeños, a veces no resulta tan fácil decidir cuál es la clave mediante la observación de las frecuencias puesto que será muy aventurado hacer estadísticas con tan pocos datos. En este ejemplo con más de 100 caracteres por cada subcriptograma, las estadísticas no funcionan tan mal como hemos visto. Además, conocido el origen del mensaje, la clave era obvia ¿verdad? Ejemplo 1.33: Encuentre la longitud de la clave por el método de Kasiski a partir del

criptograma obtenido con el algoritmo de Vigenère. C = AWHFW ZAPIE ARXKS CXWEX WEXWE KJPUR EBWTU SCOOB JGTKJ PUREB WTUSC NGXW. Solución: Se observan tres repeticiones XWE seguidas, separadas entre sí por 3

espacios. Además, hay una larga cadena KJPUREBWTUSC que aparece dos veces, separada por 18 espacios. Como esto es muy “sospechoso”, calculamos el mcd (3,18) = 3; luego este valor puede ser la longitud de la clave. De hecho la clave en esta cifra es la cadena PIO. Rompa la cifra en 3 subcriptogramas e intente comprobar si efectivamente se cumplen las estadísticas de frecuencia.

En el ejemplo anterior, si la clave que se utiliza es POLLOS en vez de PIO, se obtiene el criptograma C = ADDAD DAWEZ HVXQO XEAEE SZEAE QFLBV EISOB WCVLW PKTQF LBVEI SOBWC TCSD. En él encontramos la cadena de caracteres EAE separada por 6 espacios, además de la cadena QFLBVEISOBWC separada por 18 espacios por lo que la longitud de la clave podría ser mcd (6,18) = 6. El descifrado con las dos claves y el posterior descubrimiento de esta tierna canción de infancia se lo dejo también como ejercicio. Debe tenerse en cuenta que este método al ser estadístico no es ni mucho menos infalible en el sentido que, por puro azar, se pueden dar cadenas repetidas en el criptograma cuya separación no sea múltiplo de la clave o, incluso peor, que sea un número primo como ya hemos comentado con lo que el máximo común divisor será igual a la unidad. En la práctica, para evitar estas soluciones falsas, debemos contar con un criptograma de muchos caracteres, por ejemplo varias centenas, que incluso una vez roto en subcriptogramas tengamos cerca de la centena de caracteres en cada uno y luego buscar cadenas de caracteres largas, de una longitud mayor o igual a 3 y en lo posible que se repitan más de una vez. • Índice de Coincidencia Otra forma de encontrar el período de un cifrador polialfabético es el conocido como Indice de Coincidencia, propuesto por William F. Friedman en una publicación de Riverbank en 1922. La publicación de "El Indice de Coincidencia y sus Aplicaciones en Criptografía"4 considerada durante muchos años como la mayor contribución al desarrollo de la criptología, entronca definitivamente las matemáticas y estadísticas con la criptología y permitió, entre otras cosas, criptoanalizar las máquinas de rotores con

4 Friedman, William, "The Index of Coincidence and Its Applications in Cryptography", Riverbank

Laboratories, publication 22, 1922. También en Khan, David, "The Codebreakers. The Story of Secret Writing", Macmillan Publishing Company, New York, 1967, pp. 376-384.

Page 1162: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 55

alfabetos progresivos que traían de cabeza a los criptólogos y servicios de inteligencia durante la Segunda Guerra Mundial. En lo que aquí nos interesa, el Indice de Coincidencia medirá la variación o varianza de la frecuencia de aparición de los caracteres de un criptograma. La idea es la siguiente: en un sistema por sustitución simple monoalfabeto, con período igual a uno, encontramos una importante variación en la frecuencia relativa de aparición de las letras como se desprende de los valores característicos de monogramas de la Figura A.1 del Anexo. En cambio, para los sistemas polialfabéticos con un período grande, la variación de estas frecuencias es muy baja debido al efecto de difusión. Diremos entonces que en el primer caso existe un Indice de Coincidencia IC alto, y que en el segundo este IC será bajo. Definiremos primeramente MD como la Medida de la Dispersión que nos entrega la variación de frecuencias en cada carácter, relativa a una distribución uniforme:

)n1 - p( = MD i

21-n

i=0∑ 1.23

donde pi es la probabilidad de que un carácter cualquiera elegido aleatoriamente del criptograma sea el carácter iésimo ai de un alfabeto con longitud n. Además, dado que:

1.24 1 p i

1-n

i=0

=∑ Si n = 27, alfabeto castellano en mayúsculas, se tiene que:

1.25 0,037 -p = MD 2i26

i=0∑

Ejemplo 1.34: Demuestre la ecuación (1.25).

Solución: = 0,037 -p = MD 2i26

i=0∑ ])

271( + p)

272( - p[ 2

i2i

26

i=0∑

)271(+p

272 - p = MD 2

26

i=0i

26

i=0

2i

26

i=0

∑∑∑

)27127( +

272 -p = MD 22

i

26

i=0

∑ ∴ 0,037 -p = MD 2i26

i=0∑

La Medida de Dispersión MD evalúa la altura de los picos y los valles en una distribución de frecuencias con respecto a una distribución uniforme. Para el lenguaje castellano con n = 27, tenemos que 1/n = 0,037 será la línea base, de forma que los picos serán frecuencias relativas por sobre esta línea y los valles frecuencias relativas por debajo de la misma. Luego, si frM es la frecuencia relativa de la letra M, frM - 0,037 será el tamaño del pico o del valle observado y pM - 0,037 el tamaño esperado del pico o del valle. Puesto que los picos serán positivos y los valles negativos, para que estos valores no se cancelen en la ecuación de la MD se utiliza (pi - 1/n)².

Page 1163: Seguridad Informatica

56 CRIPTOSISTEMAS CLÁSICOS

Para una distribución uniforme, esto es las 27 letras del alfabeto equiprobables, se tiene MD = 27(1/27)² - 1/27 = 0 que es lo esperado pues el Indice de Coincidencia indica la variación de la frecuencia de las letras respecto a una distribución uniforme. Es lógico que un texto que tenga una distribución de caracteres equiprobables presente una medida de dispersión igual a cero. En el otro extremo, si los caracteres del texto presentan la distribución característica del lenguaje castellano se tendrá:

1.26 0,072 =p+p +p+ ... +p+p+p=p 2z

2y

2x

2c

2b

2a

2i

zi=

i=a∑

Luego, la varianza será MD = 0,072 - 0,037 = 0,035. Esto quiere decir que la varianza de los caracteres de un criptograma tendrá un valor máximo igual a 0,035 cuando el cifrado haya sido monoalfabético y tiende a cero cuando el cifrado es polialfabético y el número de alfabetos utilizados es muy grande. 0 ≤ MD ≤ 0,035 1.27 El valor de pi² significa la probabilidad de que al tomar dos caracteres aleatorios del criptograma, los dos sean iguales. Este valor se define como Indice de Coincidencia:

1.28 p = IC 2i

1-n

i=0∑

Como no conocemos el período ni las probabilidades pi del criptograma, no será posible encontrar la Medida de la Dispersión, por lo menos de forma teórica. No se preocupe por esto ya que sí será posible, no obstante, estimar MD usando la distribución de frecuencias de las letras del texto cifrado y aproximar así la probabilidad con la frecuencia observada. Luego, si fi son las ocurrencias del carácter i en un criptograma de N letras, la probabilidad de elegir simultáneamente dos caracteres iguales de forma aleatoria, es decir pi², será:

pi² 1) - N(N1) - f i(f i =

1)/2 - N(N/21) - f i(f i= 1.29

Este resultado se explicará en el siguiente ejemplo. Luego IC será igual a:

1) - N(N

1) -f(f = IC

ii

1-n

i=0∑

1.30

Ejemplo 1.35: Al cifrar M = ANIMAL RARO con método de Beaufort y K = CERDO (no

tengo nada contra estos nobles animales) se obtiene C = CRKRO RNRMA.

a) Encuentre la probabilidad de elegir dos caracteres iguales R en C. b) Demuestre con este criptograma la ecuación (1.29).

Page 1164: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 57

Solución: a) C = CRKRO RNRMA 01234 56789 Como hay 10 letras en el criptograma y existen 4 caracteres R, el valor de

fR es igual a 4, a lo que podríamos asociar una probabilidad pR = 0.4 b) Tendremos fR(fR-1) = 4(4-1) = 12 formas de tomar un par de letras R

del criptograma (1-3; 1-5; 1-7; 3-1; 3-5; 3-7; 5-1; 5-3; 5-7; 7-1; 7-3 y 7-5) pero como tomar el par 1,3 es igual que tomar el par 3,1 etc., el número efectivo de formas será fR(fR-1)/2. Por otra parte, como el criptograma tiene 10 letras, habrá N(N-1) = 10(10-1) = 90 pares de letras: (0-1; 0-2; 0-3; 0-4; 0-5; 0-6; 0-7; 0-8; 0-9; 1-0; 1-2; 1-3; …9-4; 9-5; 9-6; 9-7; 9-8 y 9-9). Pero como el par jk es igual que kj, entonces el número efectivo de pares de letras será N(N-1)/2.

Podemos entonces concluir que el Indice de Coincidencia es un método para encontrar de forma aproximada la varianza que presentan los caracteres de un criptograma por medio de la observación de los datos. De la ecuación (1.25) se deduce: IC = MD + 0,037 1.31 En la expresión anterior el valor de IC puede ser calculado a partir de los valores encontrados en un criptograma ya que MD no es posible calcularlo como ya habíamos comentado en un párrafo anterior. No obstante, como el valor de MD se encuentra entre 0 y 0,035 llegamos a la conclusión de que el Indice de Coincidencia IC estará comprendido entre los siguientes valores: 0,037 ≤ IC ≤ 0,072 1.32 Para cifradores con período d, el valor esperado del IC para un texto de N caracteres vendrá dado por la siguiente ecuación: IC = (1/d)[(N-d)/(n-1)] ∗0,072 + [(d-1)/d](N/N-1) ∗0,037 1.33 d IC d IC 1 0,072 5 0,044 2 0,054 10 0,040 3 0,049 ... ... 4 0,046 Grande 0,037 Figura 1.30. Índice de Coincidencia para cifras con período d. El valor de IC = 0,072 para un período d igual a la unidad, esto es un cifrador por desplazamiento puro monoalfabético, nos indica que dicho texto será equivalente al lenguaje castellano en lo que a distribución de frecuencias relativas de los caracteres se refiere. Luego, todo cifrado monoalfabético tendrá este valor que coincidirá con el de un texto en claro, en tanto que aquí no interesa que sea precisamente la letra E la que presente una frecuencia de aparición del 13%; puede ser cualquier otro carácter del criptograma, dependiendo del desplazamiento utilizado en el cifrado. El Indice de Coincidencia IC presenta una fuerte variación para valores

Page 1165: Seguridad Informatica

58 CRIPTOSISTEMAS CLÁSICOS

pequeños del período de cifrado, no así para valores grandes. Por este motivo, en el criptoanálisis de sistemas por sustitución, el método se usa conjuntamente con el de Kasiski puesto que, si bien no es preciso en cuanto al número de alfabetos utilizados, sí lo es para indicar que se trata de una sustitución monoalfabeto o polialfabeto. Ejemplo 1.36: Utilizando la ecuación del Índice de Coincidencia, determinar si el

siguiente criptograma pertenece a un cifrado por sustitución monoalfabética o polialfabética.

C = WVKNK BCOFQ NCGEW CEKQO FGNKO FKEGF GEQKO EKFGO EKCFG VGTÑK OCTUK GNUKI WKGOV GETKR VQITC ÑCRGT VGOGE GCWOE KHTCF QRQTU WUVKV WEKQO ÑQOQC NHCDG VKECQ RQNKC NHCDG VKEC

Solución: Los 139 caracteres del criptograma y su frecuencia son: A=0 B=1 C=15 D=2 E=12 F=7 G=16 H=3 I=2 J=0 K=19 L=0 M=0 N=7 Ñ=3 O=11 P=0 Q=11 R=4 S=0 T=7 U=4 V=9 W=6 X=0 Y=0 Z=0

Aplicando la ecuación (1.30) se obtiene: IC = 0,071. Como este valor se aproxima mucho a 0,072 se concluye que se trata de un cifrado de tipo monoalfabético. De hecho, el texto en claro es precisamente la cifra del enunciado de este ejemplo “Utilizando la ecuación … o polialfabética", con un desplazamiento b = 2.

No siempre será posible encontrar el período usando el Indice de Coincidencia. Cuando la clave es relativamente larga, más de 4 caracteres, será mucho más confiable el método de Kasiski. De todas maneras, el Indice de Coincidencia nos permitirá determinar, una vez fraccionado el criptograma en subcriptogramas por Kasiski, si cada uno de ellos se trata de un cifrado monoalfabético, comparando el valor encontrado del IC en cada uno de ellos con el característico del lenguaje castellano. Retomemos el ejemplo del artículo "Gimnasia" de nuestro amigo Aberasturi. Para cada uno de los cuatro subcriptogramas se tienen los siguiente valores de IC: CA ⇒ IC = 0,070 CB ⇒ IC = 0,073 CC ⇒ IC = 0,075 CD ⇒ IC = 0,065 Como todos los valores se acercan bastante al IC característico del lenguaje castellano (IC = 0,072), podemos asegurar que efectivamente cada uno de los cuatro criptogramas hallados se trata de un cifrado monoalfabético como era el caso. En resumen, si se desea atacar un criptograma que suponemos se ha obtenido mediante sustitución con más de un alfabeto, usaremos las siguientes herramientas:

a) Análisis de la distribución de frecuencia del texto del criptograma. Si es parecida a la del lenguaje, el cifrado será monoalfabético; caso contrario, será polialfabético.

b) Cálculo del Indice de Coincidencia IC para confirmar que el criptograma se debe

a un cifrado polialfabético y tener una primera idea del período del cifrador.

c) Aplicación del método de Kasiski para encontrar el período, obteniendo varios subcriptograma. Cálculo luego del IC de cada uno de dichos criptogramas para asegurarse que se trata de un cifrado con un desplazamiento constante.

Page 1166: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 59

d) Uso del Método de Coincidencia Múltiple o Regla EAOS para encontrar las letras

que forman la clave.

e) Encontrada la clave, procedemos a descifrar el criptograma siempre en el supuesto de que conocemos el algoritmo de cifra.

1.6.6. Cifradores polialfabéticos no periódicos La debilidad de los cifradores por sustitución con más de un alfabeto está en la periodicidad de la clave. Esto provoca posibles cadenas repetidas en el criptograma que entrega una pista al criptoanalista, facilitando sobremanera el ataque a estos cifrados. Como la fortaleza del cifrado o distancia de unicidad dependía de la longitud de la clave o período, la solución consistirá pues en aumentar la longitud de esta clave. ¿Qué sucede si aumentamos la longitud de la clave de forma que tenga un tamaño igual o mayor que el texto en claro? Esto sería lo mismo que adoptar el criterio propuesto por Shannon para un sistema con secreto perfecto comentado en un capítulo anterior. En este caso los criptogramas soportarían el ataque por el método de Kasiski puesto que al no haber período alguno, sería imposible dividir el criptograma en otros menores. • Cifrador con clave continua Si aceptamos que se aumenta la fortaleza de un cifrado por sustitución utilizando una clave tan larga como el mensaje, el problema está ahora en determinar cómo se genera una clave con tales características. Una solución sencilla podría ser elegir como clave un texto, conocido por el transmisor y el receptor claro está, con una cantidad de caracteres a lo mínimo igual que la del mensaje en claro. Por lo tanto, ya no hablamos de una clave sino de una secuencia de clave y el cifrador en cuestión dejará de cifrar bloques con una clave periódica para convertirse en un cifrador de flujo propiamente dicho. Si el método de cifrado es similar al de Vigenère, este criptosistema se conoce como cifrador con clave continua. Ejemplo 1.37: Cifre el mensaje que se indica con el algoritmo de Vigenère, utilizando

como secuencia de clave el párrafo primero del libro "Cien años de soledad".

M = INFORMAMOS NEGATIVAMENTE LA COMPRA DE ACCIONES Solución: Escribimos el mensaje y la clave conjuntamente y procedemos a cifrar

cada par Mi /ki con la tabla de Vigenère. M = INFORMAMOSNEGATIVAMENTELACOMPRADEACCIONES K = MUCHOSAÑOSDESPUESFRENTEALPELOTONDEFUSILAM C = THHVGEAZDLPIYPÑMÑFDIZNILLRSWELOPHEHWAWXEE La operación de descifrado de los cifradores de clave continua es obvia. Basta aplicar la operación inversa del desplazamiento iésimo al igual que en los cifradores polialfabéticos, que para el caso de Vigenère (ecuación 1.17) era Mi = (Ci - ki) mod n. Ejemplo 1.38: Descifre el criptograma cifrado con Vigenère conociendo que la secuencia

Page 1167: Seguridad Informatica

60 CRIPTOSISTEMAS CLÁSICOS

de la clave es el texto de García Lorca que se indica. C = GSJFE OPEEO UCUGC EIWGP OVWUR WXPPN MRZOL HEMJO PSIEY PLUGZ LWHCS GETNL C. K = VERDE QUE TE QUIERO VERDE, VERDE VIENTO, VERDES RAMAS. EL BARCO SOBRE LA MAR Y EL CABALLO EN LA MONTAÑA. Solución: Realizando la operación de descifrado entre Ci y ki se obtiene: C = GSJFE OPEEO UCUGC EIWGP OVWUR WXPPN MRZOL HEMJO PSIEY PLUGZ LWHCS GETNL C K = VERDE QUETE QUIER OVERD EVERD EVIEN TOVER DESRA MASEL BARCO SOBRE LAMAR Y M = LORCA YVALL EINCL ANSON LASDO SCIMA SDELT EATRO ESPAÑ OLDEL SIGLO VEINT E

El mensaje original es por lo tanto: M = Lorca y Valle Inclán son las dos cimas del teatro español del siglo

veinte. 1.6.7. Criptoanálisis de los cifrados con clave continua A pesar de que el espacio de claves es tan grande o más que el de los mensajes, los cifradores con clave continua vistos en el apartado anterior no nos entregan el ansiado secreto perfecto; paciencia, ya llegará un sistema con tales características. La razón es que tanto el texto en claro como el texto de la clave presentarán la redundancia característica del lenguaje castellano. William Friedman propone un método que lleva su nombre y que consiste, básicamente, en observar que una importante cantidad de pares de letras del mensaje en claro y de la secuencia de clave caen dentro de lo que hemos considerado monogramas de alta frecuencia del lenguaje. Esto es, existirán pares Miki en los que tanto el carácter Mi del texto en claro como el carácter ki de la clave tienen ambos una alta frecuencia. Esto reducirá muchísimo el trabajo del criptoanálisis, si lo comparamos con la fuerza bruta de hacer coincidir a cada letra del criptograma todas y cada una de las letras del alfabeto como posibles claves, lo que significaría por ejemplo para los cinco primeros caracteres del criptograma evaluar 275 = 14.348.907 emparejamientos. Friedman recomienda suponer inicialmente que todos los caracteres del criptograma se corresponden con pares Miki de alta frecuencia. Luego, para cada letra Ci del texto cifrado se escribe como texto en claro el propio alfabeto y como letra clave aquella que da origen al elemento Ci en cuestión. Como veremos a continuación, la distribución de la clave sobre el alfabeto en claro seguirá la fórmula del cifrador de Beaufort. Hecho esto, se procede a buscar los pares Mi y ki de alta frecuencia que permitirán ir descubriendo simultáneamente el texto en claro y la secuencia de clave. Por simplicidad, supondremos que los caracteres de alta frecuencia se corresponden con los nueve que forman la palabra ESTIRANDO. Veamos cómo funciona el método con un texto elegido a propósito para que las cosas nos salgan bien a la primera (jugaré de momento haciendo trampa) con el siguiente par mensaje/clave: M = SI ESTÁS CANSADO Y HARTO DE TODO, DESCANSA K = ANTES DE TIRARTE AL RÍO, PIÉNSALO DOS VECES Si ciframos el texto con dicha clave, se obtiene:

Page 1168: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 61

↓↓↓↓↓ ↓↓ ↓↓ ↓↓↓↓ ↓↓↓ ↓↓↓↓↓ ↓↓↓ ↓ ↓ M = SIEST ASCAN SADOY HARTO DETOD ODESC ANSA K = ANTES DETIR ARTEA LRIOP IENSA LODOS VECES C = SUXWM DWVIE SRWSY RRZIE LIGHD ZRHHU VQUE Observe que, debido al tipo de mensaje y clave elegidos, casi todos los pares de letras de TextoEnClaro y TextoCifrado que generan C son de alta frecuencia. Están marcados con una flecha y se indican a continuación. Ci MiKi Ci MiKi Ci MiKi Ci MiKi

S SA W SE Z RI D DA U IN I AI I TO R DO X ET E NR L DI H ED W SE R AR I EE H SO M TS W DT G TN Q NE D AD S OE H OS E AE Precisamente esto es lo que nos permitirá romper la cifra. Existirán 27 posibles emparejamientos de letras del texto en claro/clave para cada letra del criptograma. Consideremos las cinco primeras letras del criptograma anterior (SUXWM), ordenemos los alfabetos de mensaje y clave de forma que se obtenga siempre S, U, X, W y M, y luego tomemos los pares de alta frecuencia y veamos qué sucede. ↓ ↓ ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U T Letra criptograma: S S S S S S S S S S S S S S S S S S S S S S S S S S S ↓ ↓ ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V Letra criptograma: U U U U U U U U U U U U U U U U U U U U U U U U U U U ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y Letra criptograma: X X X X X X X X X X X X X X X X X X X X X X X X X X X Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

↓ ↓ ↓ ↓ ↓ ↓

Letra clave: W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X Letra criptograma: W W W W W W W W W W W W W W W W W W W W W W W W W W W ↓ ↓ ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: M L K J I H G F E D C B A Z Y X W V U T S R Q P O Ñ N Letra criptograma: M M M M M M M M M M M M M M M M M M M M M M M M M M M Criptograma: S U X W M A - S D - R E - T D - T E - I E - O I - N T - E E - S I - E O - E N - I I - O S - T S - A R - D O - I T - S S - E T - D Los anteriores son pares de alta frecuencia LetraEnClaro - LetraDeClave para

Page 1169: Seguridad Informatica

62 CRIPTOSISTEMAS CLÁSICOS

estas cinco primeras letras del criptograma. Existirán 4 x 4 x 2 x 6 x 4 = 768 posibles pentagramas de texto en claro con secuencia de clave, mucho menos que los 14 millones anteriores. Uno de ellos será el texto en claro SIEST con la clave ANTES, precisamente los pares 4º (S-A), 2º (I-N), 1º (E-T), 5º (S-E) y 4º (T-S) que se han subrayado en la tabla anterior. Mientras menor sea esta ventana habrá menor probabilidad de hallar la letra verdadera pero, por otro lado, si consideramos todos los caracteres, el número de combinaciones puede volverse intratable. Con los nueve caracteres de la palabra ESTIRANDO se obtienen para cada letra del alfabeto al menos un par MiKi de alta frecuencia, excepto cuando el elemento del criptograma es la letra Y. A continuación veremos un ejemplo en el que no resulta afortunada la elección del bloque para comenzar el ataque a un cifrado continuo. Sean el mensaje M y la clave K: M = SE SUPONE QUE APARECEN DIGRAMAS FRECUENTES EN LOS CIFRADOS K = CUANDO USAMOS COMO CLAVE UN TEXTO QUE TAMBIÉN ES REDUNDANTE ↓ ↓ ↓ ↓↓ ↓ ↓ ↓ ↓ ↓↓ ↓ ↓ ↓↓↓↓ ↓↓ ↓↓↓↓↓ M = SESUP ONEQU EAPAR ECEND IGRAM ASFRE CUENT ESENL OSCIF RADOS K = CUAND OUSAM OSCOM OCLAV EUNTE XTOQU ETAMB IENES REDUN DANTE C = UYSHS DHWQG SSROD SEONY MAETP XMTIY GÑEYU MWQQD GWFCR UAPIW Si consideramos las tres primeras letras del criptograma anterior (UYS) y tomamos los pares de alta frecuencia, obtenemos ahora: ↓ ↓ ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: U T S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V Letra criptograma: U U U U U U U U U U U U U U U U U U U U U U U U U U U Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: Y X W V U T S R Q P O Ñ N M L K J I H G F E D C B A Z Letra criptograma: Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y ↓ ↓ ↓ ↓ Letra en claro: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Letra clave: S R Q P O Ñ N M L K J I H G F E D C B A Z Y X W V U T Letra criptograma: S S S S S S S S S S S S S S S S S S S S S S S S S S S Los pares de alta frecuencia LetraTextoClaro - LetraSecuenciaClave serán: Criptograma U Y S D - R - A - S I - N - E - O N - I - O - E R - D - S - A En este caso la elección del comienzo del criptograma en donde aparece la letra Y que es la única que no presenta pares de alta frecuencia con ESTIRANDO, nos ha llevado a un callejón sin salida. No hay de qué preocuparse, en este tipo de cifra nos será de mucha utilidad la redundancia del lenguaje. Al elegir los 9 caracteres de la palabra ESTIRANDO como los de alta frecuencia del lenguaje, se cumple esta condición en pares Miki para aproximadamente el 50% del texto por lo que con un poco

Page 1170: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 63

de imaginación llegaremos a descriptar el mensaje. Podemos entonces concluir que si se desea cifrar un texto en claro mediante un cifrador con clave continua y que éste tenga un secreto perfecto, deberemos elegir una secuencia de clave aleatoria como sería, por ejemplo, un listado de nombres o direcciones de una guía de teléfonos a partir de una página determinada; si esa guía es antigua y más aún de otro país tanto mejor. La segunda condición que debería cumplir el sistema es que la clave sea única por lo que, tras ser utilizada, debería destruirse. Este principio da lugar a los denominados criptosistemas de uso o control único también denominados genéricamente one-time pad comunes hoy en día. 1.6.8. Cifrador de Vernam En 1917 Gilbert S. Vernam, nativo de Brooklyn e ingeniero del MIT que trabaja en los laboratorios de la empresa AT&T, diseña un dispositivo criptográfico para comunicaciones telegráficas basado en los 32 códigos Baudot de los teletipos desarrollados por su compañía. Los códigos Baudot representan los caracteres del lenguaje con cinco elementos que pueden ser el espacio o la marca (el cero y el uno) diseñado para transmisiones telegráficas. Este cifrador, que tuvo una gran aplicación durante la Primera Guerra Mundial, basa su seguridad en el secreto de un clave aleatoria que se supone tan larga como el mensaje y que luego de usarse debería destruirse. Un dato anecdótico: en dicha confrontación algunos encargados del sistema de cifra (llamados criptocustodios en el lenguaje militar) hicieron caso omiso de esta recomendación y los códigos fueron rotos por los aliados. Cada carácter Mi se representa con 5 bits en código Baudot (ver el anexo ya comentado) que se suma OR exclusivo (módulo 2) con la correspondiente clave ki de una secuencia binaria aleatoria. De esta forma, el cifrador de Vernam genera un flujo de bits de texto cifrado de la forma: C = EK(M) = C1C2C3 ... CN 1.34 donde: Ci = (Mi + ki) mod 2 para i = 1,2,...,N 1.35 Ci = Mi ⊕ ki 1.36 Para la operación de descifrado, utilizamos el mismo algoritmo por la propiedad involutiva de la operación OR exclusivo. Esto es: Ci ⊕ ki = (Mi ⊕ ki) ⊕ ki Como ki ⊕ ki = 0 para ki = 0 y ki = 1, se obtiene: Ci ⊕ ki = Mi 1.37 En la Figura 1.31 se muestra un cifrador de Vernam binario como el descrito.

Page 1171: Seguridad Informatica

64 CRIPTOSISTEMAS CLÁSICOS

Operación de Clave Operación de Cifrado Descifrado 0010 1101 0100 Texto en claro Criptograma Texto en claro

⊕ ⊕ 1100 1011 1001 1110 0110 1101 1100 1011 1001 Figura 1.31. Esquema de un cifrador de Vernam binario. Ejemplo 1.39: Usando el código de Baudot que se encuentra en la tabla del Anexo, cifre

el mensaje M = BYTES con la clave K = VERNAM. Solución: Haciendo la suma OR exclusivo tenemos: B ⊕ V = 11001 ⊕ 11110 = 00111 = U Y ⊕ E = 10101 ⊕ 00001 = 10100 = H T ⊕ R = 10000 ⊕ 01010 = 11010 = G E ⊕ N = 00001 ⊕ 01100 = 01101 = F S ⊕ A = 00101 ⊕ 00011 = 00110 = I Luego, C = UHGFI Para descifrar como ya se ha dicho, sencillamente se aplica nuevamente la operación del or exclusivo como se indica en el siguiente ejemplo. Ejemplo 1.40: Se recibe el siguiente criptograma C = 00110 10100 11100 11010 00000

00010 01110 01011 00110 de un texto con código Baudot que se ha cifrado con clave la K = Gloria Estefan. Descífrelo.

Solución: Haciendo la suma OR exclusivo entre C y K (C ⊕ K) tenemos: K=G: 00110 ⊕ 11010 = 11100 = M K=A: 00010 ⊕ 00011 = 00001 = E K=L: 10100 ⊕ 10010 = 00110 = I K=_: 01110 ⊕ 00100 = 01010 = R K=O: 11100 ⊕ 11000 = 00100 = K=E: 01011 ⊕ 00001 = 01010 = R K=R: 11010 ⊕ 01010 = 10000 = T K=S: 00110 ⊕ 00101 = 00011 = A K=I: 00000 ⊕ 00110 = 00110 = I Luego M = MI TIERRA. Como un divertimento más, podemos representar un cifrador de Vernam orientado a caracteres. En este caso la operación de cifra se realiza a través de desplazamientos módulo 27, como si se tratase de un cifrador monoalfabético, con una secuencia de clave compuesta por números aleatorios NA = ki, como se indica. M = C I F R A D O R D E V E R N A M Mi = 2 8 5 18 0 3 15 18 3 4 22 4 18 13 0 12 ki = 73 12 39 81 07 28 95 52 30 18 32 29 47 20 07 62 M +ki C = U T Q R H E C P G V A G L G H T

i = 75 20 44 99 7 31 110 70 33 22 54 33 65 33 7 74

Figura 1.32. Cifrado de Vernam orientado a caracteres. Los valores utilizados para la secuencia de clave en el ejemplo anterior están comprendidos entre 00 y 99, si bien pueden reducirse mod 27 y, por tanto, trabajar sólo con el CCR(27). Del ejemplo anterior podemos destacar un aspecto interesante de un cifrador de Vernam: en el criptograma aparecen caracteres iguales que provienen del

Page 1172: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 65

cifrado de caracteres distintos del texto en claro, al igual que en todos los sistema polialfabéticos, como es el caso de las letras D, E y N que se cifran como el elemento G. Ahora bien, además de utilizar los 27 posibles alfabetos dependiendo del valor de la clave, al ser ésta aleatoria y carecer de periodicidad alguna, hace imposible cualquier tipo de ataque conociendo únicamente el criptograma. Si la secuencia aleatoria de clave usada luego se destruye, entonces el secreto es perfecto. El problema que persiste en este esquema es la transmisión segura de la clave secreta no inventada todavía; para ello debemos esperar hasta el año 1977 en que se presenta el sistema de cifra de clave pública y se soluciona con este método el problema del intercambio de clave. 1.7. CIFRADORES POR SUSTITUCIÓN POLIGRÁMICA MONOALFABETO Los cifradores poligrámicos, a diferencia de los monográmicos que cifraban carácter a carácter, consideran un poligrama con n ≥ 2 del texto en claro para proceder a su cifrado. De esta forma, el bloque de información a cifrar serán digramas, trigramas o, en general, poligramas. El objeto de este cifrado por sustitución es destruir la distribución de frecuencia típica de los monogramas que, al hacer coincidir el carácter Mi con el elemento cifrado Ci, posibilita el ataque por inspección de frecuencias en el caso de los monoalfabéticos o bien el criptoanálisis mediante método de Kasiski, Indice de Coincidencia y el método de Friedman para los polialfabéticos. Si suponemos que el cifrador transforma los digramas MiMi+1 del texto en claro en criptogramas CiCi+1, se tendrá que: M = M1M2 ∪ M3M4 ∪ ... ∪ MN-1MN 1.38 en donde el signo ∪ indica unión de caracteres y N es el número total de caracteres del mensaje. Luego: EK(M) = EK(M1M2) ∪ EK(M3M4) ∪ ... ∪ EK(MN-1MN) 1.39 EK(M) = C1C2 ∪ C3C4 ∪ ... ∪ CN-1CN 1.40 De los cifradores poligrámicos, los más conocidos son los de Playfair de mediados del siglo XIX, que hace uso de una tabla de cifrar similar a la de Polybios, y el de Hill, que data de comienzos del siglo XX, y que tiene una importancia especial en la criptografía clásica por el hecho de utilizar la matemática de matrices en módulo n para las operaciones de cifrado y descifrado. A comienzos del año 1999, la posibilidad del uso de matrices en los sistemas de cifra volvió a ser considerado, tras la aparición de un algoritmo de clave pública propuesto por una joven irlandesa aunque no tiene nada que ver con el sistema de Hill. No obstante, al final se demostró que el tal invento no era tan espectacular como se suponía. 1.7.1. Cifrador de Playfair

Page 1173: Seguridad Informatica

66 CRIPTOSISTEMAS CLÁSICOS

El cifrador de Playfair en realidad fue inventado por Charles Wheatstone para comunicaciones telegráficas secretas en el año 1854. No obstante, se le atribuye a su amigo el científico Lyon Playfair quien lo presenta a las autoridades inglesas de la época. Nuevamente eso se llama ser un buen amigo. Utilizado por el Reino Unido en la Primera Guerra Mundial, este sistema consiste en separar el texto en claro en digramas y proceder a su cifra de acuerdo a una matriz alfabética de dimensiones 5x5 en la cual se encuentran representadas 25 de las 26 letras del alfabeto inglés. Para que este método de cifra presente un mayor nivel de seguridad, se incluirá al comienzo de dicha matriz una clave que se escribe a partir de la primera fila omitiendo las letras repetidas. A continuación de dicha clave, se distribuyen las restantes letras del alfabeto hasta completar toda la matriz. Por ejemplo, si la clave es VERANO AZUL (memorable serie de TV de Antonio Mercero), la matriz será: En las Figuras 1.33 y 1.34 se muestran las matrices comentadas para el lenguaje castellano de 27 caracteres. En este caso supondremos que las letras I y J ocupan una única celda, al igual que la Ñ y la N. La segunda matriz lleva como clave VERANO AZUL, memorable serie de televisión española.

A B C D E

F G H I/J K

L M N/Ñ O P

Q R S T U

V W X Y Z

Figura 1.33. Matriz de cifra de Playfair.

V E R A N/Ñ

O Z U L B

C D F G H

I/J K M P Q

S T W X Y

Figura 1.34. Matriz de cifrado de Playfair con clave VERANO AZUL. El método de Playfair cifrará pares de caracteres del texto en claro M1M2 como C1C2 de acuerdo a las siguientes reglas:

a) Si M1 y M2 se encuentran en la misma fila, se eligen los elementos del criptograma C1 y C2 como aquellos que están a la derecha de M1 y M2, respectivamente. Esta operación se realiza módulo 5, de forma que para la matriz de la Figura 1.34 se cumplen las siguientes transformaciones:

Pares del texto en claro Criptograma

Page 1174: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 67

EA (1ª fila) RN LU (2ª fila) BL DH (3ª fila) FC

b) Si M1 y M2 se encuentran en la misma columna, se eligen C1 y C2 como los caracteres que están inmediatamente debajo de ellos, operando módulo 5. Para la matriz de la Figura 1.34 se cumplen las siguientes transformaciones:

Pares del texto en claro Criptograma ED (2ª columna) ZK FU (3ª columna) MF AX (4ª columna) LA

c) Si M1 y M2 se encuentran en filas y columnas distintas, entonces forman dos vértices de un rectángulo. Los elementos C1 y C2 se obtienen de los dos vértices que faltan para completar dicha figura geométrica, considerando siempre la fila de M1 como el elemento C1. Esto es, en la matriz de la Figura 1.34 se cumplen las siguientes transformaciones:

Pares del texto en claro Criptograma OT ZS YU WB Recuerde, además, que las letras I y J ocupan una misma celda, al igual

que la N y la Ñ, por lo que se cumplen por ejemplo también las siguientes transformaciones en dicha matriz:

Pares del texto en claro Criptograma MI = MJ PK EN = EÑ RV No obstante, si en la operación de descifrado caemos en la retícula I/J,

siempre descifraremos como la letra I.

d) Al representar el texto en claro como una cadena de digramas, pueden aparecer caracteres repetidos con lo cual no podría aplicarse ninguna de las tres opciones de cifrado anteriores. Tal sería el caso de cifrar el siguiente mensaje tenebroso:

M = LAS SOMBRAS LLAMAN A LA PUERTA DEL CASTILLO. M = LA SS OM BR AS LL AM AN AL AP UE RT AD EL CA ST IL LO. La solución a este problema (los digramas segundo SS y sexto LL) está

en romper esta repetición antes del cifrado, incluyendo una letra nula que, de acuerdo al lenguaje castellano podría ser X, Z o Q por ejemplo. Usaremos en el texto la letra X como carácter de relleno, con lo que el mensaje se transforma ahora en:

M = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS TI LX LO.

Page 1175: Seguridad Informatica

68 CRIPTOSISTEMAS CLÁSICOS

Observe que al incluir este carácter de relleno, ha desaparecido la

repetición LL del digrama sexto, si bien aparece otro nuevo (LL) ahora en la posición 18 que se rompe de igual manera añadiendo la letra X.

e) Por último, es posible que el mensaje final a cifrar, una vez eliminados los

digramas repetidos, tenga un número impar de caracteres. En tal situación se añade un carácter nulo al final de la cadena para poder cifrar el último carácter del texto en claro. Por ejemplo, si al mensaje anterior le añadimos la palabra HOY, además de ser más inquietante, quedaría como sigue:

M = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS TI LX LO HO YX. Ejemplo 1.41: Cifre el mensaje, M = "Las sombras llaman a la puerta del castillo hoy"

con una matriz de Playfair con clave K = MIEDO. Solución: Siguiendo la matriz con clave MIEDO, ciframos los digramas del mensaje,

a saber: M = LA SX SO MB RA SL LA MA NA LA PU ER TA DE LC AS TI LX LO HO YX, obteniendo:

C = HCXEUEIA QBXSHCAH HFHCUZIS QFODSLCQ RDSEPEPM ZY. La matriz de cifra y comprobación de la misma es tarea suya. Para descifrar un criptograma obtenido mediante Playfair, simplemente utilizamos el algoritmo inverso, esto es:

a) Si los elementos C1 y C2 están en la misma fila, se eligen M1 y M2 como los caracteres inmediatamente a la izquierda, módulo 5.

b) Si los elementos C1 y C2 se encuentran en la misma columna, se eligen M1 y

M2 como los caracteres inmediatamente arriba de aquellos, módulo 5.

c) Si los elementos C1 y C2 están en filas y columnas distintas, M1 y M2 se eligen como aquellos caracteres que forman los vértices que faltan del recuadro, comenzando por la fila del primer elemento C1.

Ejemplo 1.42: Si en la matriz de cifra de Playfair con la clave BEATLES se eliminan los

caracteres K y Ñ, con relleno X, descifre el siguiente criptograma: C = EC TB AZ EN WB JH TX AB BU VC LO JT PM IL. Solución: Los digramas descifrados con la matriz que habrá encontrado serán: EC ⇒ WE; TB ⇒ AL; AZ ⇒ LX; EN ⇒ LI; WB ⇒ VE; JH ⇒ IN; TX ⇒ AY; AB ⇒ EL; BU ⇒ LO; VC ⇒ WS; LO ⇒ UB; JT ⇒ MA; PM ⇒ RI; IL ⇒ NE. El texto en claro es M = WE ALL LIVE IN A YELLOW SUBMARINE. 1.7.2. Criptoanálisis del cifrado de Playfair ¿Qué podemos decir acerca de la distancia de unicidad del cifrador de Playfair? A simple vista, el poder ordenar aleatoriamente los 25 caracteres de la matriz, parece que la equivocación de la clave será el factorial de 25. No

Page 1176: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 69

obstante, debido al algoritmo de cifra propuesto por Playfair, no todas las matrices de 5x5 son distintas. Vamos a verlo. Considérese la siguiente matriz de cifra con clave PATOS y la posterior rotación de las filas tres posiciones hacia abajo y, a continuación, una rotación de las columnas una posición hacia la izquierda:

P A T O S

B C D E F

G H I/J K L

M N/Ñ Q R U

V W X Y Z

Figura 1.35. Matriz de Playfair con clave PATOS.

H I/J K L G

N/Ñ Q R U M

W X Y Z V

A T O S P

C D E F B

G H I/J K L

M N/Ñ Q R U

V W X Y Z

P A T O S

B C D E F

Figura 1.36. Matrices recíprocas a la principal de la Figura 1.35. Estas y otras matrices que se obtengan por rotaciones de filas y/o columnas son recíprocas de la primera puesto que se obtienen los mismos resultados al cifrar un texto según el método de Playfair. Por ejemplo, si ciframos con estas tres matrices el mensaje M = LA PATA Y EL PATO TUVIERON PATITOS, compruebe se obtiene el mismo criptograma C = HSAT OTOK GSTO SOMZ KDYE MATO QDSP. No obstante, esto sólo reduce el número de matrices posible en 4x4 = 16 que serán las recíprocas de la principal por lo que el valor de la entropía de la clave se asemeja mucho a la de un sistema del César con clave visto en el apartado 1.4.3. Por otra parte, el cifrado de Playfair presenta una debilidad que facilita el criptoanálisis. Conociendo qué palabras pueden ser comunes en el texto que se intenta romper, con la ayuda de las estadísticas de digramas comunes del lenguaje, se puede ir confeccionando la matriz y, finalmente, descifrar el criptograma. A continuación se comenta el procedimiento a seguir en este tipo de ataque; el lector interesado en profundizar sobre el tema puede consultar la referencia que se indica.5 Sabemos que en el lenguaje existen digramas más comunes que otros y como este sistema cifrará siempre el digrama M1M2 como el mismo criptograma C1C2, es lógico esperar una correspondencia de esta redundancia del lenguaje en el texto 5 Konheim, Alan G., "Cryptography: A Primer", John Wiley & Sons, 1981, pp. 95-110.

Page 1177: Seguridad Informatica

70 CRIPTOSISTEMAS CLÁSICOS

cifrado. Siguiendo la tabla de digramas del anexo, encontramos los siguientes pares con una frecuencia relativa superior a 500 para un texto con 40.000 caracteres. Digrama nº veces Inverso nº veces DE 1084 ED 290 ES 1010 SE 547 EN 901 NE 370 OS 764 SO 212 AD 649 DA 436 TE 639 ET 115 IN 610 NI 191 ER 563 RE 537 AS 560 SA 227 EL 559 LE 245 OR 544 RO 372 NT 536 TN 24 ST 535 TS 19 RA 520 AR 493 Figura 1.37. Digramas más frecuentes del lenguaje castellano y sus inversos. Luego, si seguimos la matriz de cifrado de la Figura 1.35 con la clave PATOS se obtendrán, entre otros, los siguientes pares de cifrados: M1M2 C1C2 M1M2 C1C2 M1M2 C1C2 M1M2 C1C2 DE EF ED FE ES FO SE OF EN CR NE RC ER KY RE YK Es decir, en este criptograma se verán representados todos los digramas del texto en claro, sólo que como digramas distintos; esto es, FO en vez de ES, YK en vez de RE, etc. Por lo tanto, si observamos que en el texto cifrado aparece, por ejemplo, el digrama XB con alta frecuencia y, simultáneamente, el digrama inverso BX con muy baja frecuencia, según la tabla de la Figura 1.37 podríamos suponer que se trata del digrama en claro NT o bien ST que cumplen con esta característica. Si encontramos el digrama HK con alta frecuencia del texto cifrado y el inverso KH también tiene una frecuencia similar, podría tratarse de los digramas en claro ER o RA. El digrama más frecuente del criptograma podría ser DE, ES o EN en el texto en claro, etc. Una vez determinadas algunas correspondencias, el criptoanalista también tiene en cuenta los caracteres que siguen a dichos digramas para formar trigramas y así ir estableciendo las letras equivalentes al alfabeto. Además, si conoce alguna palabra que supuestamente se repite en el texto en claro y que contenga entre sus caracteres las equivalencias anteriores, podrá encontrar más equivalencias y éstas otras más, como si se tratase de un procedimiento en cascada. Un análisis detallado del método está fuera del alcance de este libro; no obstante, siguiendo estas pautas y con mucha paciencia, este método a modo de un entretenido puzzle nos lleva finalmente a la consecución de la matriz de cifra de Playfair. 1.7.3. Cifrador de Hill

Page 1178: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 71

En 1929, Lester S. Hill, un joven matemático, publica en Nueva York un artículo en el que propone la utilización del álgebra y, en particular de las matrices, en la operación de cifrado. La importancia del método de cifra propuesto por Hill descansa en la utilización de transformaciones lineales matriciales operando en módulo 26 -las letras del alfabeto inglés- con lo cual se facilita el cifrado poligráfico, algo que tras el invento de Playfair fue insistentemente buscado por los criptólogos y matemáticos de la época. Desgraciadamente para Hill, su invento, aunque muy interesante para los científicos en aquella época, no era fácil de implantarlo en una máquina –no se había inventado el ordenador- y no pudo competir con otros criptógrafos que proliferaron en esos años como fue la máquina Enigma de los alemanes y aparatos de cifra como los de Hagelin. Dado que bajo ciertas condiciones este sistema presenta una alta seguridad, que puede implementarse fácilmente en los ordenadores actuales y que hace uso de una buena cantidad de conceptos de la aritmética modular operando con matrices, profundizaremos en este cifrador y en su criptoanálisis. A pesar del alto valor de la posible entropía de su clave, vamos a ver que si conocemos el texto en claro y su criptograma asociado, este sistema no soporta un criptoanálisis. Inicialmente, Hill plantea el problema como el conjunto de cuatro ecuaciones que se indican a continuación, en donde la variable yi representa las letras cifradas y la variable xi las letras del texto en claro. y1 = 8 x1 + 6 x2 + 9 x3 + 5 x4 mod 26 y2 = 6 x1 + 9 x2 + 5 x3 + 10 x4 mod 26 y3 = 5 x1 + 8 x2 + 4 x3 + 9 x4 mod 26 y4 = 10 x1 + 6 x2 + 11 x3 + 4 x4 mod 26 1.41 Por otra parte, Hill define un alfabeto de cifrado arbitrario como el que se indica en la Figura 1.38 aunque en el libro usaremos el habitual: A = 0, B = 1, ... Z = 26. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 5 23 2 20 10 15 8 4 18 25 0 16 13 7 3 1 19 6 12 24 21 17 14 22 11 9

Figura 1.38. Alfabeto de cifrado propuesto por Hill. El mensaje original utilizado por Hill era M = DELAY OPERATIONS. Toma entonces los cuatro primeros elementos, el tetragrama DELA, que corresponden a las variables x1, x2, x3 y x4, reemplaza sus valores de acuerdo al alfabeto indicado en la ecuación 1.41 para obtener los primeros cuatro elementos del criptograma. Repite esta operación con los tetragramas restantes YOPE, RATI y ONS y con ello obtiene el criptograma C = JCOW ZLVB DVLE QMXC. Como en todo sistema poligrámico, se usan elementos de relleno si el último bloque tiene un tamaño menor. Para descifrar este criptograma, basta con resolver ahora el siguiente sistema de ecuaciones en x: x1 = 23 y1 + 20 y2 + 5 y3 + 1 y4 mod 26 x2 = 2 y1 + 11 y2 + 18 y3 + 1 y4 mod 26 x3 = 2 y1 + 20 y2 + 6 y3 + 25 y4 mod 26 x4 = 25 y1 + 2 y2 + 22 y3 + 25 y4 mod 26 1.42

Page 1179: Seguridad Informatica

72 CRIPTOSISTEMAS CLÁSICOS

La comprobación de la cifra completa del mensaje de Hill y su posterior recuperación se lo dejo como ejercicio para más adelante, pero por ahora sigamos con la explicación de este método. De lo anterior, podemos deducir que el cifrado de Hill se trata de un cifrador por sustitución monoalfabética y poligrámico, en tanto que sustituye d caracteres del texto en claro por d caracteres de texto cifrado; en este caso d = 4. Si representamos el problema de Hill de cuatro ecuaciones mediante matrices, se tiene que la transformación para la operación de cifra será:

1.43

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

x

x

x

x

411610

9485

10596

5968

=

y

y

y

y

4

3

2

1

4

3

2

1

Para la operación de descifrado se tendrá entonces:

1.44

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

y

y

y

y

2522225

256202

118112

152023

=

x

x

x

x

4

3

2

1

4

3

2

1

Las operaciones anteriores podemos generalizarlas suponiendo {y} = C, {x} = M y la matriz {K} de orden dxd como la clave K, luego: C = KE x M mod n 1.45 M = KD x C mod n 1.46 En las ecuaciones anteriores, C y M serán vectores columna de dimensiones dx1, siendo d el tamaño del d-grama. En el caso del mensaje M, corresponderá al bloque de texto en claro de tamaño d-grama que se desea cifrar y para el criptograma C serán los d-grama elementos obtenidos al realizar la multiplicación de {KE} por {M} reduciendo los resultados módulo n. Observe que {KD} deberá ser la matriz inversa de la matriz de cifra {KE}. Como se ha comentado, al trabajar con bloques de información igual a d caracteres, es posible que el mensaje M no sea múltiplo de este valor. En tales circunstancias, se rellenará el último bloque hasta completar el d-grama con un carácter nulo que deberá ser conocido por quienes comparten el cifrado; por ejemplo la letra X. En cuanto al alfabeto de cifrado, si bien puede utilizarse cualquiera como lo propuso Hill, le recuerdo que en el libro usaremos la representación numérica habitual en módulo 27, es decir, A = 0, B = 1, etc. Consideraciones sobre la matriz K

Page 1180: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 73

La matriz K será siempre cuadrada, y sus elementos serán nuestra clave secreta. Será, además, el punto más importante del criptosistema, donde reside su seguridad. No será suficiente el hecho de que la clave sea una matriz cuadrada; ésta deberá cumplir ciertos requisitos que pasamos a enumerar:

a) Deberá ser una matriz de dimensión dxd, que viene dada por el d-grama que vamos a cifrar. Puesto que en nuestro caso el d-grama a cifrar tiene d filas, la matriz clave deberá tener d columnas para que el producto sea factible. Por otra parte, como queremos que el resultado sea otro d-grama o matriz columna, entonces la matriz clave deberá tener d filas ya que el resultado hereda el número de filas del primer factor de la multiplicación y el número de columnas del segundo factor.

b) Los elementos de la matriz serán enteros que formen parte del Conjunto

Completo de Restos módulo n, en nuestro caso para el lenguaje castellano en mayúsculas [0, 26]. Utilizar números fuera de este rango no tiene sentido pues caeríamos en una clase de equivalencia de dicho módulo. Una fórmula interesante de recordar los números que intervienen en la matriz clave, consiste en asignar letras a dichos números; en este caso diremos que dicha matriz con letras se trata de una matriz simbólica. La Figura 1.39 muestra un ejemplo de matriz simbólica para cifrado de trigramas.

1.47 ⎟⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟⎟

⎜⎜⎜⎜

151915

1868

11416

=

OSO

RGI

LEP

=K

Figura 1.39. Matriz simbólica trigrámica con clave PELIGROSO.

La mayor utilidad de la matriz simbólica está en el intercambio de claves entre transmisor y receptor. Recuerde que en aquel entonces no había nacido aún la criptografía de clave pública; además, siempre es más humano recordar una clave como un conjunto de letras o palabras y no como un grupo de números sin sentido.

c) La matriz K no deberá ser singular, es decir, deberá tener inversa para poder realizar el proceso de descifrado según se indicaba en la ecuación 1.46. Para demostrar que una matriz no es singular, basta con demostrar que el determinante es distinto de cero. Para encontrar la matriz inversa de K, haremos:

|K

T = KAdj(K)1-

| 1.48

donde K-1 es la matriz Inversa de K, TAdj(K) es la Traspuesta de la matriz Adjunta de K, y | K | es el determinante de K.

Page 1181: Seguridad Informatica

74 CRIPTOSISTEMAS CLÁSICOS

Aunque se supone un conocimiento básico de la aritmética matricial, a continuación explicaremos brevemente las operaciones necesarias para el cálculo de la matriz inversa. Dada una matriz K, su traspuesta T(K) será aquella en la que los elementos (i, j) se intercambian por los elementos (j, i), es decir se intercambian filas por columnas, como se indica en la siguiente ecuación:

1.49 ⎟⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟⎟

⎜⎜⎜⎜

kkk

kkk

kkk

= T entonces

kkk

kkk

kkk

=K Si

332313

322212

312111

(K)

333231

232221

131211

Ejemplo 1.43: Encuentre la matriz trigrámica traspuesta de la matriz con clave simbólica

K = NO ESTA MAL. Solución: N = 13; O = 15; E = 4; S = 19; T = 20; A = 0; M = 12; A = 0; L = 11. Así:

⎟⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

1104

02015

121913

= T luego 110120201941513

=K (K)

Si la matriz anterior sirve o no para cifrar mensajes en castellano módulo 27 (si está o no mal como dice el ejemplo) lo podrá comprobar un poco más adelante. Se llama matriz adjunta de K (Adj(K)) a aquella que se obtiene al sustituir cada elemento aij por su adjunto correspondiente o, lo que es lo mismo, los determinantes de los elementos aij de la matriz K. Sea |aij| dicho determinante, entonces:

1.50 K =

k k k

k k k

k k k

Adj =

|a | -|a | |a |

-|a | |a | -|a |

|a | -|a | |a |

11 12 13

21 22 23

31 32 33

(K)

11 12 13

21 22 23

31 32 33

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟⎟

Para obtener |aij| eliminamos la fila i y la columna j y con los elementos que quedan calculamos su determinante. Por ejemplo, en la matriz de la ecuación (1.50) el elemento |a11| = k22∗k33 – k32∗k23; |a22| = k11∗k33 – k31∗k13; etc. Ejemplo 1.44: Para la matriz con los valores que se indican, se pide encontrar su matriz

adjunta: k11=2, k12=4, k13=6, k21=3, k22=5, k23=7, k31=1, k32=9 y k33=0.

Solución: La matriz en cuestión es: K =

2 4 6

3 5 7

1 9 0

⎜⎜⎜

⎟⎟⎟

Luego los valores de los determinantes |aij| son los siguientes: |a11| = (5∗0 - 9∗7) = - 63 |a12| = (3∗0 - 1∗7) = - 7 |a13| = (3∗9 - 1∗5) = 22 |a21| = (4∗0 - 9∗6) = - 54 |a22| = (2∗0 - 1∗6) = - 6

Page 1182: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 75

|a23| = (2∗9 - 1∗4) = 14 |a31| = (4∗7 - 5∗6) = - 2 |a32| = (2∗7 - 3∗6) = - 4 |a33| = (2∗5 - 3∗4) = - 2 Por lo tanto, la matriz adjunta de K, Adj(K) será:

(K)

11 12 13

21 22 23

31 32 33

Adj =

|a | -|a | |a |

-|a | |a | -|a |

|a | -|a | |a |

=

-63 7 22

54 -6 -14

- 2 4 - 2

⎜⎜⎜⎜

⎟⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

Para ejercitarse un poco con estos cálculos, encuentre la matriz adjunta de la clave simbólica es K = ESTO NO ESTA TAN MAL. Para poder encontrar la matriz inversa, deberá cumplirse que el determinante de ésta sea distinto de cero; en caso contrario diremos que la matriz es singular y, por tanto, no podrá ser utilizada como clave para cifrar. Ahora bien, puesto que estamos trabajando dentro de un cuerpo, esta condición de singularidad debe darse también dentro de él. Esto significa que el valor del determinante de la matriz clave reducido a módulo n tampoco debe ser igual a cero para que esta sea válida; es decir, deberá cumplirse que |K| mod n ≠ 0 como se indica en el siguiente ejemplo. Ejemplo 1.45: ¿Pueden utilizarse estas matrices para cifrar un mensaje en módulo 27?

⎟⎟⎠

⎞⎜⎜⎝

⎟⎟⎟⎟

⎜⎜⎜⎜

52312

= K

001

111

221

= K 21

Solución: El determinante de K1 para cifrar trigramas será igual a: |K1| = k11(k22∗k33 - k32∗k23) - k12(k21∗k33 - k31∗k23) + k13(k21∗k32 - k31∗k22) |K1| = 1(1∗0 - 0∗1) - 2(1∗0 - 1∗1) + 2(1∗0 - 1∗1) = 0, luego K1 mod 27 = 0. La matriz de K1 es singular y no puede ser usada para cifrar. El determinante de K2 para cifrar digramas será igual a: |K2| = k11∗k22 - k21∗k12 = (12∗5 - 2∗3) = 54 |K2| mod 27 = 54 mod 27 = 0 La matriz de K2 tampoco puede ser usada para cifrar en módulo 27 al ser

singular dentro del cuerpo. Además del requisito |K| ≠ 0, debemos recordar que en criptografía trabajamos con números comprendidos entre 0 y n-1, el cuerpo de la cifra, por lo que no nos servirán los números fraccionarios. La ecuación (1.48) nos indica que para la existencia de la matriz inversa K-1 deberá ser posible dividir por el determinante de K; es decir, debe existir el inverso de |K| en módulo n. Por lo tanto, dicha ecuación podrá escribirse como sigue: K-1 = TAdj(K) ∗ inv(|K|, n) mod n 1.51 en donde se cumplirá que inv(|K|,n) ∗|K| mod n = 1. En realidad, este resultado nos permitirá encontrar la denominada matriz de identidad I que veremos más adelante.

Page 1183: Seguridad Informatica

76 CRIPTOSISTEMAS CLÁSICOS

Como bien sabemos, el valor de este inverso no siempre existe; la condición necesaria para su existencia es que |K| y el módulo n sean primos entre sí. Seguro que ya está convencido de esto. Recapitulando entonces, en el cifrado de Hill deberá existir una transformación inversa que permita recuperar el mensaje en claro, y dicha operación sólo la puede dar la matriz clave. Esto quiere decir que las claves KE y KD que aparecían en las ecuaciones (1.45) y (1.46) deberán ser matrices inversas en el módulo de trabajo. Luego, la condición sine qua non del cifrador de Hill es que la matriz de cifrado tenga inversa, es decir: KD = KE

-1 1.52 Ejemplo 1.46: a) Compruebe que la operación [K] ∗ [K-1] = I, en donde I es la matriz de

identidad. b) Compruebe este resultado en particular para la matriz K con elementos

k11 = 3, k12 = 2, k21 = 1 y k22 = 4 en módulo 27.

Solución: a) )kxk-kxk( 22212211 = |K| entonces kk

kk =K Si

2221

1211

⎟⎟⎠

⎞⎜⎜⎝

y la matriz inversa será:

kk-

k-k

K1 = K

1121

12221-⎟⎟⎠

⎞⎜⎜⎝

||

Si multiplicamos K-1 ∗ K se tiene:

I = 10

01 =

kk

kk

kk-

k-k |K

1

2221

1211

1121

1222

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

|

b) Para la matriz indicada de 2x2 se tiene:

10 = 27 mod 1x2)-(3x4 =|K| Luego, 27 mod 41

23 =K ⎟⎟

⎞⎜⎜⎝

27 mod 31-

2-4

101 = K 1-

⎟⎟⎠

⎞⎜⎜⎝

Como inv(10,27) = 19 entonces:

27 mod 27 mod 38

1622 =

19*319*1-

19*2-19*4 = K 1-

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

Luego, multiplicando K ∗ K-1:

27 mod27 mod 10

01 =

38

1622

41

23 = K*K 1-

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

Los valores del producto de las matrices son: I11 = (3∗22 + 2∗8) mod 27 = (12 + 16) mod 27 = 1 I12 = (3∗16 + 2∗3) mod 27 = (21 + 6) mod 27 = 0 I21 = (1∗22 + 4∗8) mod 27 = (22 + 5) mod 27 = 0 I22 = (1∗16 + 4∗3) mod 27 = (16 + 12) mod 27 = 1 Por último, al igual que en todos los sistemas que implican una multiplicación en el cifrado, para que exista la operación inversa debe cumplirse que el determinante de

Page 1184: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 77

la matriz clave no sea múltiplo con el orden del grupo en el que se trabaja. Sólo si mcd[|K|,n] = 1 se podrá usar esa matriz K para cifrar. Luego, la condición suficiente y necesaria de esta matriz K será: |K| mod n ≠ 0 1.53 mcd[|K|, n] = 1 1.54 Ejemplo 1.47: ¿Se puede utilizar esta matriz K para cifrar digramas en módulo 27 cuyos

elementos son k11 = 4, k12 = 3, k21 = 2, k22 = 6? Solución: Resolviendo el determinante de K obtenemos: |K| = (k11∗k22-k21∗k12) = (4∗6-2∗3) = 18. Como mcd(18,27) = 3, no puede

usarse K como matriz de cifrado al carecer de inversa. Con estos antecedentes, podremos entonces cifrar cualquier texto en claro mediante matrices usando una clave de dimensión dxd y agrupando el mensaje en bloques de tamaño d-gramas. Al igual que en otros sistemas, si es necesario se añaden al final del texto en claro caracteres de relleno para obtener el d-grama. Ejemplo 1.48: Cifre el texto M = AMIGO CONDUCTOR, SI BEBES NO CONDUZCAS

mediante trigramas usando la matriz simbólica con clave PELIGROSO. Solución: Primero vamos a comprobar que la matriz tiene inversa. El valor de |K| en

módulo 27 es igual a 4 como se indica: |K| = [16(6∗15 - 19∗18) - 4(8∗15 - 15∗18) + 11(8∗19 -15∗6)] mod 27 |K| = [-9 + 6 + 7] mod 27 = 4. Los valores de |K| y el módulo n son primos

entre sí, luego la clave es válida. El mensaje M se divide en trigramas genéricos del tipo MiMjMk como se

indica: AMI GOC OND UCT ORS IBE BES NOC OND UZC ASX que pasan a cifrarse con la matriz de clave simbólica PELIGROSO. Puesto que (AMI) = (00 12 08) entonces el primer subcriptograma CA será:

27 mod

8

21

0

151915

1868

11416

=

C

C

C

3

2

1

⎟⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟⎟

⎜⎜⎜⎜

⎟⎟⎟⎟

⎜⎜⎜⎜

Resolviendo esta matriz se obtiene: C1 = (16∗0 + 4∗12 + 11∗8) mod 27 = 136 mod 27 = 1 C2 = (8∗0 + 6∗12 + 18∗8) mod 27 = 216 mod 27 = 0 C3 = (15∗0 + 19∗12 + 15∗8) mod 27 = 348 mod 27 = 24 CA = 01 00 27 = BAX Los demás subcriptogramas se los dejo como ejercicio. Cifrador de Hill digrámico Si un texto en claro M = M1M2M3M4...MN se cifra según el método de Hill en bloques de dos caracteres, para cada par de letras se tendrá: C1 = (k11M1 + k12M2) mod n (1.55)

Page 1185: Seguridad Informatica

78 CRIPTOSISTEMAS CLÁSICOS

C2 = (k21M1 + k22M2) mod n (1.56)

(1.57) n mod M

M

kk

kk =

C

C

2

1

2221

1211

2

1

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

Ejemplo 1.49: Si la clave K es k11 = 4; k12 = 2; k21 = 9; k22 = 2, cifre el siguiente mensaje

M = QUE TODA LA VIDA ES SUEÑO Y LOS SUEÑOS SUEÑOS SON. Solución: |K| = (k11k22 - k21k12) mod 27 = (4∗2 - 2∗9) mod 27 = -10 mod 27 que es

igual a 17 mod 27. El mcd(17,27) = 1, luego existirá la matriz inversa. Representamos el mensaje como se muestra y procedemos a cifrar el

primer digrama con la matriz K; los demás se los dejo como ejercicio. M = QU ET OD AL AV ID AE SS UE ÑO YL OS SU EÑ OS SU EÑ OS SO NX. Como [C1C2] = [K]x[M1M2], para [M1M2] = QU = [17 21] se tiene: C1 = (4∗17+2∗21) mod 27 = 2 = C y C2 = (9∗17+2∗21) mod 27 = 6 = G. C1C2 = CG. El criptograma completo que debe obtener es: C = CGCV MGVV QQLX IIGT LIFU ÑEQL KXQK QLKX QKQL YMSD. Para descifrar un criptograma de Hill, conocida la matriz clave, procedemos a calcular su inversa como ya se ha explicado utilizando la ecuación (1.48) Ejemplo 1.50: Sea la matriz [K]: k11=2, k12=10, k21=17, k22=5. Se pide descifrar el

siguiente criptograma C = NXXZ XSNX NEKE MJZT RVXD ÑZWB XZYW RJEV.

Solución: Cálculo de la matriz inversa K-1: |K| = (2∗5 - 17∗10) mod 27 = 2. El inv(2,27) = 14.

27 mod 2

27 mod || ⎟⎟

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

217-

10-5 1

kk-

k-k

K1 = K

1121

12221-

27 mod 2*1417*14-

10*14-5*14 = K 1-

⎟⎟⎠

⎞⎜⎜⎝

27 mod 15

2216 = K 1-

⎟⎟⎠

⎞⎜⎜⎝

Aplicando la matriz inversa K-1 al criptograma C se obtiene el siguiente mensaje M = HILL SE HIZO FAMOSO PERO NO MILLONARIO.

. Compruebe este resultado y si es capaz de hacerlo sin el auxilio de una calculadora, mi enhorabuena por su agilidad mental.

1.7.4. Criptoanálisis del cifrado de Hill Si la matriz clave, en donde descansa la seguridad del sistema, no puede contener todas las combinaciones posibles del Conjunto Completo de Restos del módulo de trabajo, puesto que eliminamos aquellos que nos entregan un determinante igual a cero o bien tienen factores comunes con n, ¿qué tan seguro es este criptosistema? Estudiaremos a continuación el número de las matrices válidas para determinar la entropía de la clave H(K). Supongamos, por simplicidad, que se trabaja en módulo 2, posteriormente lo

Page 1186: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 79

haremos en módulo 27. Si la matriz es de orden dos, es decir, tiene los elementos k11, k12, k21 y k22, entonces el número posible de matrices será igual a 16 puesto que existirán 24 combinaciones del CCR módulo 2, es decir los valores 0 y 1. Estas matrices serán:

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

11

10 ;

01

10 ;

10

10 ;

00

10 ;

11

00 ;

01

00 ;

10

00 ;

00

00

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

11

11 ;

01

11 ;

10

11 ;

00

11 ;

11

01 ;

01

01 ;

10

01 ;

00

01

No obstante, solamente existirán 6 matrices válidas, aquellas en las que el determinante es distinto de cero; en este caso en particular las matrices 7ª y 8ª de la primera fila y 2ª, 4ª, 6ª y 7ª de la segunda. Si, por ejemplo, utilizamos sólo tres números, los restos 0, 1 y 2 del módulo 27 como elementos de la matriz, se obtienen 34 = 81 matrices de 2x2. De estas matrices 33 serán no válidas por lo que sólo 48 matrices clave con los restos 0, 1 y 2 permiten cifrar digramas en dicho cuerpo. Si se atreve y tiene tiempo suficiente, compruébelo. En el valor de módulo 27, tendremos 274 = 531.441 matrices distintas de orden 2 cuyos elementos son el CCR(27), es decir [0, 26]. Si ahora descartamos aquellas matrices en las que el determinante es igual a cero o bien tienen factor común con el módulo 27, el número de matrices válidas se reduce a 314.928. Si deseamos aumentar la entropía de la clave, podríamos trabajar con un módulo primo, por ejemplo en módulo 37 con un alfabeto de letras mayúsculas más los dígitos del 0 al 9, de forma que en este caso prácticamente sólo se eliminen aquellas matrices cuyo determinante sea cero. Con un módulo igual a 37, el número de matrices 2x2 crece hasta 1.874.161 de las que más de 1.800.000 son claves válidas. No se asuste, no le pediré que compruebe esto. En cuanto a la distancia de unicidad de este cifrador, que dependerá de la entropía de la clave o, lo que es lo mismo, del número de matrices válidas para cifrar, podemos aproximar de forma empírica para digramas y trigramas los siguientes valores cuando el módulo de trabajo n es un número primo: Digramas: N = H(K)/D ≈ log2[n4 - n3 - n2 + n]/3,4 1.58 Trigramas: N = H(K)/D ≈ log2[n9 - n8 - n7 + n5 + n4 - n3]/3,4 1.59 Por ejemplo, cifrando digramas en módulo 37 se obtendría una distancia de unicidad igual a 6,1 caracteres; aumentando el d-grama en una unidad, es decir cifrando trigramas, la distancia de unicidad crece hasta 13,8 que es más del doble de la anterior. Como el número de matrices tiende a n(exp d2) para poligramas de longitud d, la distancia de unicidad aumentará significativamente. Por desgracia, esta característica no aumentará su nivel de seguridad como veremos más adelante. El cifrador de Hill se muestra por tanto, al menos en una primera aproximación, bastante robusto ante un ataque puesto que, además, el algoritmo de cifrado destruye

Page 1187: Seguridad Informatica

80 CRIPTOSISTEMAS CLÁSICOS

las estadísticas del lenguaje y cuenta con una característica muy interesante en criptografía: el cifrado de los caracteres de un bloque dependerá también de los caracteres que forman el poligrama y de su posición relativa en él. Por ejemplo, si ciframos dos mensajes MA = OK y MB = OH, en principio muy similares aunque signifiquen cosas distintas, el resultado no tendrá en cuenta para nada esta relación. Por ejemplo, si la matriz de cifra es k11 = 2, k12 = 1, k21 = 1 y k22 = 3, estos mensajes se cifrarán siguiendo la ecuación (1.56) como sigue: MA = OK ⇒ C1 = (15∗2 + 10∗1) mod 27 = 13 = N C2 = (15∗1 + 10∗3) mod 27 = 18 = R Luego C = NR MB = OH ⇒ C1 = (15∗2 + 7∗1) mod 27 = 10 = K C2 = (15∗1 + 7∗3) mod 27 = 9 = J Luego C = KJ Por otra parte, si M = KO el criptograma será C = IB. Luego, un simple cambio de posición de los caracteres en el texto en claro o modificaciones mínimas, producen una alteración total en el criptograma. Esto se debe a la ecuación genérica de cifra que, por ejemplo, para digramas es: Ci = (ki1∗M1 + ki2∗M2) mod n 1.60 De la ecuación (1.60) se deduce que el carácter que ocupa la posición iésima en el criptograma depende no sólo del carácter que ocupa la posición iésima en el texto en claro, sino también del siguiente en la posición iésima+1 que conforma, en este caso, el digrama. Luego, mientras mayor sea el tamaño del poligrama utilizado, cada carácter dependerá de más caracteres del texto en claro y ahí radica en principio la fortaleza de este cifrado. En estas condiciones, no cabe plantearse un ataque por análisis de frecuencias. Por otra parte, el ataque por fuerza bruta puede ser extremadamente difícil si se elige un primo como módulo de trabajo y se cifran bloques de texto de un tamaño igual o mayor que 5. Ejemplo 1.51: Si el grupo de trabajo es el primo 37 y por tanto casi el 100% de las

matrices de cifrado son válidas, ¿qué tamaño de poligrama debe usarse para que la entropía de la clave H(K) del cifrado de Hill sea del orden de la del algoritmo DES calculada en el capítulo segundo e igual a 56?

Solución: Para d=3, la matriz clave K tendrá 3x3=9 elementos, por lo que el número de matrices puede estimarse en 37 9 ≈ 1,3 x10 14. Luego la entropía de la clave H(K) = log2(1,3x10 14) = 46,9. Aumentando a tetragramas, el número de matrices es del orden de 37 16 ≈ 1,2x10 25 con lo que la entropía en este caso se eleva a H(K) = log2(1,2x10 25) = 83,3. Luego, para un poligrama igual a 4 caracteres, este cifrado tendría una fortaleza similar al DES estándar en cuanto a la distancia de unicidad. ¿Y si ahora ciframos con bloques de texto en claro de 8 caracteres (64 bits) como lo hace el DES?

Colmo es fácil apreciar, en estas condiciones un ataque por fuerza bruta es

Page 1188: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 81

impensable. La única posibilidad de ataque a este tipo de cifra es la elección de un texto en claro y buscar vectores unitarios en el mensaje o en el criptograma, y en el caso de no encontrarlos aplicar el método de Gauss-Jordan contando ahora sólo con un criptograma y su correspondiente texto en claro. En cualquier caso supondremos, además, que el criptoanalista conoce que el cifrado se trata de Hill, que conoce el tamaño del poligrama usado para la cifra y la correspondencia entre los caracteres del alfabeto en claro y su equivalente numérico. He aquí el verdadero Talón de Aquiles de este cifrador y la razón por la que, incluso alcanzando un valor de distancia de unicidad muy alto, no es seguro y por tanto ha caído en desuso por completo. A comienzos de este año 1999 ha vuelto a ponerse de moda como decíamos el uso de la matemática de matrices en la cifra, pero no se trata de este tipo de algoritmo. • Ataque con elección del texto en claro o criptograma ¿Qué es eso de los vectores unitarios y el ataque aplicando el método de Gauss-Jordan? Ahora lo explicaremos. Vamos a suponer que el criptoanalista cuenta con el criptograma y los correspondientes textos en claro de varios mensajes. Luego, podrá elegir bloques específicos que le reporten mayor información. Para este tipo de cifra interesa encontrar los vectores unitarios de la dimensión en la que estamos trabajando. El resultado de cifrar estos poligramas serán los distintos valores de las columnas de la matriz clave como lo comprobaremos ahora mismo. Un vector unitario de dimensión n es aquel que tiene todos sus elementos nulos excepto el elemento iésimo que es la unidad. Por ejemplo, para una cifra con trigramas, n = 3, la matriz de Identidad I3 tendrá los vectores unitarios µ1, µ2 y µ3 que se indican:

] 1 0 0 [ =

] 0 1 0 [ =

] 0 0 1 [ =

entonces

100

010

001

= I Si

3

2

1

3

µ

µ

µ

⎟⎟⎟⎟

⎜⎜⎜⎜

1.61

Supongamos entonces que realizamos la siguiente operación matricial:

1.62 K x =

k k k

k k k

k k k

x

1

0

0

=

k

k

k1

11 12 13

21 22 23

31 32 33

11

21

31

µ

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

Como se observa, resolviendo la ecuación (1.62) se obtiene la primera columna de la matriz clave. Si realizamos la misma operación con los vectores unitarios µ2 y µ3 encontramos la segunda y tercera columnas de dicha matriz. Por lo tanto, si ciframos con un vector unitario i, encontramos la columna i de la matriz clave que precisamente será el trigrama de texto cifrado que conoce el criptoanalista pues K ∗ M = C. Si el alfabeto de cifrado es el habitual, entonces los vectores unitarios para este caso trigrámico serán:

Page 1189: Seguridad Informatica

82 CRIPTOSISTEMAS CLÁSICOS

µ1 = [ B A A ] µ2 = [ A B A ] µ3 = [ A A B ] 1.63 Ejemplo 1.52: Si se ha recibido el criptograma C y se conoce que pertenece al mensaje

en claro M, se pide encontrar la matriz clave de cifrado digrámico. M = EL BANDIDO FUE ABATIDO AL ATARDECER. C = OYFCQ LSBEW FECEN ZSBUD BVSNO UXPCZ. Solución: Escribimos el mensaje y el criptograma en digramas: M = EL BA ND ID OF UE AB AT ID OA LA TA RD EC ER. C = OY FC QL SB EW FE CE NZ SB UD BV SN OU XP CZ. Encontramos los vectores unitarios [A B] y [B A] en los digramas segundo

y séptimo. El cifrado correspondiente al vector [B A] es FC, es decir los números 5 y 2, en tanto que el correspondiente al vector [A B] es CE, es decir 2 y 4. Luego la matriz clave será:

K = 5 2

2 4⎛⎝⎜

⎞⎠⎟

En el ejemplo anterior, para el primer digrama de texto en claro BA = [1 0] se tiene que C1 = k11∗1 + k12∗0 = k11 = 5 = F y C2 = k21∗1 + k22∗0 = k21 = 2 = C, el digrama que aparece en el texto cifrado. Por lo tanto, si en el texto en claro el criptoanalista encuentra estas cadenas de vectores unitarios, será capaz de encontrar la matriz de cifrado. Esto será también válido para cifrados trigrámicos. No obstante, para n mayor que tres, el método deja de ser válido pues existen pocas cadenas de ese tipo en castellano. El vector de longitud cuatro AAAB podríamos encontrarlo en el texto “... así que ella estaba dispuesta a abanicarse por el calor que hacía...” pero esto es hilar muy fino porque nos faltaría encontrar otros vectores como BAAA, ABAA, y AABA. Para cinco seguro que no existen. Si sólo encontramos un vector unitario, por ejemplo [A B], sigue siendo posible descriptar la matriz clave digrámica. De igual manera sucederá si para un cifrado trigrámico encontramos dos vectores unitarios, por ejemplo [A A B] y [A B A]. El restante vector se puede deducir aplicando la ecuación C = K ∗ M con las incógnitas del caso; como conocemos C y M, se pueden despejar las incógnitas de la columna de la matriz clave que falta. Ejemplo 1.53: El mensaje M = "Ese abanico estaba abajo" se cifra por trigramas según

Hill y se obtiene el siguiente criptograma: M = ESE ABA NIC OES TAB AAB AJO C = AEA DFI EJL KTL QYÑ EGJ GAR Se pide encontrar la matriz clave. Solución: En el texto en claro existen dos vectores unitarios, el vector µ2 = [ABA]

que se cifra como [DFI] por lo que la segunda columna de la matriz clave será [3 5 8] y luego µ3 = [AAB] que se cifra como [EGJ] y por tanto la tercera columna de la matriz será [4 6 9]. Luego se tendrá la siguiente matriz:

Page 1190: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 83

K =

k 3 4

k 5 6

k 8 9

11

21

31

⎜⎜⎜

⎟⎟⎟

Si tomamos, por ejemplo el primer trigrama se tiene que el texto en claro [ESE] = [4 19 4] se cifra como [AEA] = [0 4 0], luego se cumplirá que:

0

4

0

=

k 3 4

k 5 6

k 8 9

x

4

19

4

11

21

31

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

Resolviendo: 0 = (k11∗4 + 3∗19 + 4∗4) mod 27 ⇒ k11 = 2 4 = (k21∗4 + 5∗19 + 6∗4) mod 27 ⇒ k21 = 5 0 = (k31∗4 + 8∗19 + 9∗4) mod 27 ⇒ k31 = 7 (véase la explicación a continuación del ejemplo) Luego la matriz clave K será:

K =

2 3 4

5 5 6

7 8 9

⎜⎜⎜

⎟⎟⎟

La elección del texto en claro [ESE] = [4 19 4] en el ejemplo anterior es la adecuada puesto que los valores de k11, k21 y k31 se obtendrán al multiplicarse por el primer elemento, la letra E = 4, que tiene inverso en n. Puesto que inv(4,27) = 7: k11: 0 = (k11∗4 + 73) mod 27 = (k11∗4 + 19) mod 27 k11= (0 - 19) ∗inv(4,27) mod 27 = 8∗7 mod 27 = 56 mod 27 = 2 ⇒ k11 = 2 k21: 4 = (k21∗4 + 119) mod 27 = (k21∗4 + 11) mod 27 k21 = (4 - 11) ∗inv(4,27) mod 27 = 20∗7 mod 27 = 140 mod 27 = 5 ⇒ k21 = 5 k31: 0 = (k31∗4 + 188) mod 27 = (k31∗4 + 26) mod 27 k31 = (0 - 26) ∗inv(4,27) mod 27 = 1∗7 mod 27 = 7 mod 27 = 7 ⇒ k31 = 7 A igual resultado llegaremos si tomamos en este ejemplo los pares mensaje criptograma NIC/EJL y TAB/QYÑ; no así si la elección es OES/KTL y AJO/GAR. Ejemplo 1.54: Demuestre que se obtiene la misma primera columna de la matriz k11, k21

y k31 del ejemplo anterior, eligiendo el par mensaje/criptograma NIC/EJL y que la elección de los pares EOS/KTL y AJO/GAR no es la adecuada.

Solución: a) El mensaje NIC tiene el equivalente numérico 13, 8, 2 y el criptograma EJL 4, 9, 11. Luego:

4

9

11

=

k 3 4

k 5 6

k 8 9

x

13

8

2

11

21

31

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

4 = (k11∗13 + 3∗8 + 4∗2) mod 27

Page 1191: Seguridad Informatica

84 CRIPTOSISTEMAS CLÁSICOS

k11 = (4 - 32) ∗inv(13,27) mod 27 = 26∗25 mod 27 = 650 mod 27 = 2 9 = (k21∗13 + 5∗8 + 6∗2) mod 27 k21 = (9 - 52) ∗inv(13,27) mod 27 = 11∗25 mod 27 = 275 mod 27 = 5 11 = (k31∗13 + 8∗8 + 9∗2) mod 27 k31 = (11 - 82) ∗inv(13,27) mod 27 = 10∗25 mod 27 = 250 mod 27 = 7 b) Para el par EOS/KTL se tiene:

10

20

11

=

k 3 4

k 5 6

k 8 9

x

15

4

19

11

21

31

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

10 = (k11∗15 + 3∗4 + 4∗19) mod 27 k11 = (10 - 88) ∗inv(15,27) mod 27 Como mcd(15,27) = 3, no existe inverso y no puede calcularse ki1. c) Para el par AJO/GAR se tiene:

6

0

18

=

k 3 4

k 5 6

k 8 9

x

0

9

15

11

21

31

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

6 = (k11∗0 + 3∗9 + 4∗15) mod 27 k11 = (6 - 87) ∗inv(0,27) mod 27 Como no existe inv(0,n) no puede calcularse ki1. En el ejemplo anterior, se podría pensar abordar el punto b) mediante el método de prueba de valores de k11 en la ecuación 10 = (k11∗15 + 88) mod 27. No obstante, esto es un error como veremos a continuación. Evidentemente el valor k11=2 (que es el valor verdadero) cumple con la ecuación anterior pero también se cumple dicha ecuación para los valores k11 = 11 y k11 = 20 lo cual no tiene sentido porque la solución debe ser única. Ahora bien, si el texto en claro no cuenta con estos vectores unitarios, también podemos buscarlos en el criptograma. En este caso, el procedimiento nos lleva a recuperar la matriz inversa de la utilizada para cifrar. Ejemplo 1.55: Se tiene el siguiente texto en claro y su criptograma que se sabe ha sido

cifrado mediante Hill por digramas. Encuentre la matriz clave. M = HILL SE PUEDE ATACAR Y ROMPER LA CIFRA BUSCANDO VECTORES C = IBSD WJ QQLCL QBESVA B JOXHLI KN BAHSR EOKSVCTM KTYBKAYFI

Solución: Ordenando por digramas tenemos: M = HI LL SE PU ED EA TA CA RY RO MP ER LA CI FR AB US CA ND OV EC TO RE SX C = IB SD WJ QQ LC LQ BE SV AB JO XH LI KN BA HS RE OK SV CT MK TY BK AY FI En el criptograma están los dos vectores unitarios [BA] = [1 0] con su par

en el texto en claro [CI] = [2 8] y el vector [AB] = [0 1] con su par de texto en claro [RY] = [18 25].

Luego, de acuerdo con las ecuaciones (1.62) y (1.63) se tiene que:

-1K = 2 18

8 25⎛⎝⎜

⎞⎠⎟

Como K = (K-1) -1, se puede deducir que la matriz clave será entonces:

Page 1192: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 85

K = 23 18

11 4⎛⎝⎜

⎞⎠⎟

Amigo lector(a); le dejo como ejercicio comprobar que con esta matriz de cifra K se obtiene el criptograma indicado.

Para el caso de cifra con digramas, buscamos algún digrama que contenga el valor cero o la letra A, bien en el mensaje en claro o bien en el criptograma; planteamos entonces un sistema de ecuaciones en donde la única condición a cumplir es que el elemento que acompañe a esa letra A tenga inverso en el cuerpo de cifra. De esta manera se obtiene una de las columnas de la matriz clave. Para encontrar la columna restante planteamos otra ecuación de cifra, en donde el elemento que multiplica a los kij deberán también tener inverso, como se mostrará en el siguiente ejemplo. ¿Y si no contamos con estos vectores unitarios? Aunque no lo crea, todavía podremos atacar al sistema si conocemos el texto en claro. Ejemplo 1.56: Se nos pide realizar un ataque al sistema de cifra de Hill digrámico según

el método explicado. El texto en claro y su criptograma son: M = HABIA VIDA EN MARTE C = PIEBX PQYX YN FARIQ Solución: Agrupando texto en claro y criptograma por digramas: M = HA BI AV ID AE NM AR TE C = PI EB XP QY XY NF AR IQ Como no vemos vectores unitarios por ninguna parte, vamos a plantear la

primera ecuación de cifra para el primer digrama HA en donde aparece la letra H = 7 en el texto en claro acompañado de la letra A = 0. Puesto que inv (7,27) = 4, entonces:

P

I =

k k

k k x

H

A

16

8 =

k k

k k x

7

0

11 12

21 22

11 12

21 22

⎛⎝⎜

⎞⎠⎟

⎝⎜

⎠⎟

⎛⎝⎜

⎞⎠⎟

⎛⎝⎜

⎞⎠⎟

⎝⎜

⎠⎟

⎛⎝⎜

⎞⎠⎟

16 = k11∗7 ⇒ k11 = 16∗inv(7,27) mod 27 = 16∗4 mod 27 = 10 8 = k21∗7 ⇒ k21 = 8∗inv(7,27) mod 27 = 8∗4 mod 27 = 5 La ecuación del digrama (XP) = K ∗ (AV), en donde V = 22 tiene como

inverso 16, nos entrega la siguiente matriz:

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

22

0 x

kk

kk =

16

24

V

A x

kk

kk =

P

X

2221

1211

2221

1211

24 = k12∗22 ⇒ k12 = 24∗inv(22,27) mod 27 = 24∗16 mod 27 = 6 16 = k22∗22 ⇒ k22 = 16∗inv(22,27) mod 27 = 16∗16 mod 27 = 13 Por lo tanto, la matriz de cifra del ejemplo es:

K = 10 6

5 13⎛⎝⎜

⎞⎠⎟

Este método podría generalizarse para matrices de mayor rango, aunque como es lógico aumentará la dificultad de encontrar poligramas con todos los elementos excepto uno iguales a cero, por lo que este método resulta poco práctico. La generalización del ataque anterior mediante el planteamiento de un sistema de ecuaciones matriciales, se conoce como método de Gauss-Jordan y será tratado en el próximo apartado. En este otro escenario prácticamente no hay criptograma que se

Page 1193: Seguridad Informatica

86 CRIPTOSISTEMAS CLÁSICOS

resista a este ataque; no obstante, si se desconoce el texto en claro, debido al alto valor de la distancia de unicidad de este cifrador resulta absurdo intentar un ataque por fuerza bruta. • Ataque con texto en claro conocido Al no poder utilizar la técnica anterior porque no se encuentran los vectores unitarios en el texto en claro o en el criptograma, el criptoanalista siempre podrá atacar un cifrado de Hill si cuenta, por lo menos, con un criptograma y su texto en claro asociado. Siguiendo el método propuesto por Alan Konheim en "Cryptography: A Primer"6 el procedimiento consiste en disponer las correspondencias entre el texto en claro y el texto cifrado en forma de matriz y utilizar el método de Gauss-Jordan que consiste, básicamente, en aplicar operaciones elementales a la matriz hasta conseguir (si se puede) diagonalizar la parte izquierda, de forma que la diagonal principal sea la unidad. Esto quiere decir que en la mitad izquierda tendremos los vectores unitarios que definimos en el apartado anterior, por lo que la otra mitad derecha tendrá una relación directa con la matriz clave buscada. Si la matriz 2n-grámica la definimos como [(TextoEnClaro) | (TextoCifrado)] la parte derecha, una vez diagonalizada la izquierda, será la traspuesta de la matriz clave de cifrado K. Le dejo aquí un nuevo ejercicio: definir ahora la matriz 2n-grámica como [(TextoCifrado) | (TextoEnClaro)] y una vez diagonalizada la parte izquierda comprobar qué tipo de matriz se obtiene. Por ejemplo, suponga que tenemos el siguiente texto en claro asociado con el criptograma de Hill trigrámico que se indica: M = ENU NLU GAR DEL AMA NCH ADE CUY ONO MBR ... C = WVX IDQ DDO ITQ JGO GJI YMG FVC UÑT RLL ...

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

111118 18112

201421 151315

2225 25212

61225 430

896 7213

1569 0120

17208 1143

1533 1806

1738 211113

242223 21134

=

LLR RBM

TÑU ONO

CVF YUC

GMY EDA

IJG HCN

OGJA MA

QTI LED

ODD RAG

QDI ULN

XVW UNE

Cifrado Texto

Claroen Texto

Trigrámica Matriz

Figura 1.43. Matriz 2n-grámica de Gauss-Jordan del ejemplo. Como se observa, no aparecen vectores trigrámicos unitarios ni en el texto en 6 Konheim, Alan G., "Cryptography: A Primer", John Wiley & Sons, 1981, pp. 116-120.

Page 1194: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 87

claro ni en el texto cifrado por lo que intentaremos el ataque por Gauss-Jordan. Escribimos entonces los trigramas del texto en claro a la izquierda y los del criptograma a la derecha en una matriz 2 n-grámica, con los correspondientes equivalentes numéricos como se indica en la Figura 1.43. El primer paso será conseguir que toda la primera columna sea 0 excepto el elemento a11; para ello multiplicamos la fila primera por 7 ya que inv (4, 27) = 7 con lo que se tiene (4∗7 13∗7 21∗7 23∗7 22∗7 24∗7) mod 27 = (1 10 12 26 19 6). Si el primer elemento de la fila (en este caso E = 4) tuviera algún factor común con el módulo 27, el método sigue siendo válido porque en ese caso se moverían filas enteras y alguna habrá cuyo primer elemento sea primo relativo con el módulo. La matriz no cambiará; es más, a nivel matemático da lo mismo donde estén localizadas las filas, no así para los nosotros los humanos que interpretamos lo que allí está escrito. Hecho esto se realizan las siguientes operaciones básicas módulo 27: a) 2ª fila = 2ª fila - 13 ∗ 1ª fila b) 3ª fila = 3ª fila - 6 ∗ 1ª fila c) 4ª fila = 4ª fila - 3 ∗ 1ª fila d) 6º fila = 6ª fila - 13 ∗ 1ª fila e) 8ª fila = 8ª fila - 2 ∗ 1ª fila f) 9ª fila = 9ª fila - 15 ∗ 1ª fila g) 10ª fila = 10ª fila - 12 ∗ 1ª fila Se obtiene entonces la siguiente matriz:

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

20263 9160

11269 24250

17117 110

61225 430

11519 1370

1569 0120

261711 210

6249 0210

202621 0160

61926 12101

Cifrado Texto

Claro en Texto

TrigrámicaMatriz

Procedemos de igual manera con las columnas segunda y tercera. Observe que en el cálculo de la columna tercera hemos tenido que mover filas porque aparece el valor 0 en el tercer elemento. Como ejercicio, compruebe qué movimientos se han hecho. Al final de todo el proceso obtenemos la matriz 2n-grámica que se indica en donde se observan los vectores unitarios en la matriz de la izquierda, correspondiente

Page 1195: Seguridad Informatica

88 CRIPTOSISTEMAS CLÁSICOS

al texto en claro.

⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜

000 000

000 000

000 000

000 000

000 000

000 000

000 000

964 100

853 010

752 001

unitarios vectores

los agrupando

adadiagonaliz

Cifrado Texto

Claro en Texto

TrigrámicaMatriz

Como la mitad izquierda correspondía al texto en claro, la parte derecha de la matriz con vectores unitarios será la traspuesta de la clave. Esto es, 100 es el primer vector unitario y entonces entrega la primera columna de la matriz de clave; y de igual manera sucede con los vectores segundo 010 y tercero 001 según la ecuación (1.63). Luego, la clave será:

K =

2 3 4

5 5 6

7 8 9

⎜⎜⎜

⎟⎟⎟

Comprobemos que esta es la matriz verdadera, cifrando el primer trigrama del mensaje M = [ENU] = [4 13 21] que debe darnos el trigrama C = [WVX] = [23 22 24].

C = K x M =

2 3 4

5 5 6

7 8 9

x

4

13

21

⎜⎜⎜

⎟⎟⎟

⎜⎜⎜

⎟⎟⎟

C1 = [2∗4 + 3∗13 + 4∗21] mod 27 = 23 = W C2 = [5∗4 + 5∗13 + 6∗21] mod 27 = 22 = V C3 = [7∗4 + 8∗13 + 9∗21] mod 27 = 24 = X Le dejo como ejercicio comprobar la cifra completa del mensaje de este ejemplo. Atrévase a deducir la clave a partir de [(TextoCifrado) | (TextoEnClaro)]. 1.8 CIFRADORES POR TRANSPOSICIÓN El segundo método clásico utilizado para cifrar mensajes es la transposición o permutación de caracteres. Esto consiste en reordenar los caracteres del texto en claro

Page 1196: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 89

como si de una baraja de cartas se tratase. El resultado de tal acción es la de difuminar la información del texto en claro y provocar, por tanto, la difusión propuesta por Shannon para la protección de la misma. Precisamente este método era el utilizado por los lacedemonios en el sistema de cifra de la escítala que vimos en el apartado 1.1.1, cifrador que podríamos clasificar en la categoría de transposición por grupos. Debe tenerse presente que al reordenar el texto, en el criptograma aparecerán exactamente los mismos caracteres que en el texto en claro y que, por tanto, no evitamos en este caso que un intruso detecte fácilmente que nuestro criptosistema es de transposición mediante la simple acción de contabilizar los caracteres del texto cifrado y comparar las frecuencias relativas con las del lenguaje. Esto es, si en el alfabeto de 27 letras la letra E aparece cerca del 13%, la letra A cerca del 10%, etc., no cabe duda que el cifrado ha sido realizado por permutaciones. No obstante, sí se destruyen los digramas, trigramas y, en general poligramas, al separar los caracteres en el texto cifrado. Ahora bien, aunque se detecte una distribución de caracteres en el criptograma muy parecida a la característica del lenguaje, sólo nos indica eso, que es muy posible que se haya cifrado por transposiciones, pero de nada nos servirá la técnica utilizada en cifradores por sustitución para intentar un criptoanálisis. En este caso, el ataque deberá plantearse con el uso de una técnica denominada anagramación y que consiste en la comparación de bloques de caracteres del criptograma con el objeto de buscar la formación de los poligramas destruidos por el cifrado. 1.8.1. Transposición por grupos En este tipo de cifra, los caracteres del texto en claro se reordenan por medio de una permutación Πx(y) en donde x indica la acción ejercida sobre el conjunto de caracteres del mensaje M e y es la posición ordenada de los caracteres según la acción x. Luego, si a1, a2, a3, ..., ak son letras del texto en claro, y Π es una permutación de 1, 2, 3, ... k números, entonces cada carácter Ci del criptograma será el resultado de aplicar dicha permutación sobre ese conjunto de k caracteres. Por ejemplo, sea el conjunto de números [1, 10] = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 y sean x1 y x2 dos acciones de permutación tales que x1 es la acción de ordenar cada grupo de diez caracteres del mensaje de forma que primero envía los caracteres impares y luego los pares y x2 es la función de ordenar los caracteres del mensaje desde la posición mayor a la menor, entonces se tiene que: Π1 = 1, 3, 5, 7, 9, 2, 4, 6, 8, 10. Π2 = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1. Entonces de los grupos indicados, tenemos por ejemplo que: Π1(4) = 7; Π1(9) = 8; Π2(1) = 10; Π2(3) = 8 La transposición por grupos será periódica, de período p, tras el cual la permutación aplicada al texto en claro se repite. Esto es, si el mensaje que se desea cifrar M = m1m2m3 ... m10m11m12 y la permutación aplicada con período 4 es ΠM = 4132,

Page 1197: Seguridad Informatica

90 CRIPTOSISTEMAS CLÁSICOS

entonces el criptograma generado será C = m4m1m3m2m8m5m7m6m12m9m11m10. Ejemplo 1.57: Utilizando la permutación ΠM = 24531 cifre el siguiente mensaje: M = MANOS ARRIBA, ESTO ES UN ATRACO. Solución: Aplicando ΠM = 24531 al texto en claro obtenemos: M = MANOS ARRIB AESTO ESUNA TRACO C = AOSNM RIBRA ETOSA SNAUE RCOAT Si el período es pequeño, como en el ejemplo anterior, el criptograma podría atacarse fácilmente mediante técnicas de anagramación que veremos más adelante. Una solución a este problema podría consistir en hacer crecer el período de la transposición. En esta línea podríamos llegar a la situación límite en que el período es tan largo como el propio mensaje, dando lugar a los denominados cifradores de transposición por series. 1.8.2. Transposición por series Esta técnica consiste en ordenar el mensaje como una cadena de submensajes, de forma que el mensaje original se transmite como M' = MS1MS2MS3..., en donde cada una de las cadenas sigue una función o serie; por ejemplo, MS1 puede corresponder a los múltiplos de 3, MS2 los números primos, MS3 los números pares, etc. Supongamos entonces un mensaje M con un total de 25 caracteres. Si se utilizan las 3 series MS1, MS2 y MS3 que se indican en ese mismo orden: MS1: Relación de números primos MS2: Relación de números pares MS3: Relación de números impares entonces la cifra se realizará como sigue: M = m1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m24m25

M' = MS1MS2MS3 MS1 = 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 MS2 = 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 MS3 = 9, 15, 21, 25 C = m1m2m3m5m7m11m13m17m19m23m4m6m8m10m12m14m16m18m20m22m24m9m15m21m25

Al no tener período, este algoritmo de cifrado posee una mayor fortaleza pues dificulta el criptoanálisis, residiendo su seguridad en el secreto de las series utilizadas. No obstante, es necesario recorrer el texto en claro completo por lo que el método es muy lento. Ejemplo 1.58: Utilizando las series MS1MS2MS3 vistas anteriormente y en ese orden,

cifre el mensaje M = ERRAR ES HUMANO, PERDONAR DIVINO. Solución: El mensaje tiene 27 caracteres. Si se transmite la secuencia MS1, luego

MS2 y finalmente MS3, tenemos los siguientes bloques: MS1 = 1,2,3,5,7,11,13,17,19,23 MS2 = 4,6,8,10,12,14,16,18,20,22,24,26

Page 1198: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 91

MS3 = 9,15,21,25,27 El mensaje ordenado según las posiciones de los caracteres es: 1234567890 1234567890 1234567 ERRARESHUM ANOPERDONA RDIVINO Permutando los caracteres según la serie MS3MS2MS1 so obtiene: C = ERRRS AODNI AEHMN PROAD VNUER IO 1.8.3. Transposición por columnas • Cifrador de transposición por columnas simple En este tipo de cifrados, se reordenan los caracteres del texto en claro en NC columnas de forma que el mensaje así escrito se transmite luego por columnas, obteniéndose de esta manera el criptograma. El efecto, al igual que en los demás cifradores por permutación, es desplazar las letras de las posiciones adyacentes. Por ejemplo, si NC = 6, la columna de cifrados podría quedar como se indica: Columna de cifrados C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 ... ... Luego, el criptograma se obtiene leyendo de arriba hacia abajo en las columnas, es decir: C = C1C7C13C19 ... C2C8C14C20 ... C3C9C15C21 ... ... C6C12C18 ... 1.64 Para proceder a la función de cifra, primero se busca una cuadrícula en función del tamaño del bloque del mensaje. Si en la búsqueda de dicha cuadrícula quedan espacios en blanco, éstos se rellenan con algún carácter nulo previamente determinado y que conocen el transmisor y el receptor del mensaje, por ejemplo la letra X. Ejemplo 1.59: Cifre el siguiente texto mediante transposición por columnas con NC = 6.

Se usará como carácter de relleno la letra X. M = NUNCA ES TARDE CUANDO LA DICHA ES BUENA. Solución: Escribimos el texto en columnas como se indica: N U N C A E S T A R D E C U A N D O L A D I C H A E S B U E N A X X X X Luego leyendo por columnas el criptograma resultante será: C = NSCLA NUTUA EANAA DSXCR NIBXA DDCUX EEOHE X. Para descifrar un criptograma por columnas, el receptor primero calculará el número de filas NF a partir de la longitud del texto cifrado LC y el número de columnas

Page 1199: Seguridad Informatica

92 CRIPTOSISTEMAS CLÁSICOS

NC, clave secreta que sólo él conoce. NF = LC/NC 1.65 Hecho esto, escribe el texto cifrado de forma vertical en tantas filas como indique el valor de NF y procede a leerlo por filas. Ejemplo 1.60: Se ha recibido el criptograma C = PLXIU IEESN GTSOO OEX y se sabe

que ha sido cifrado en 6 columnas. Descífrelo. Solución: Como el criptograma tiene LC = 18 caracteres y se ha cifrado con NC = 6,

entonces NF = 18/6 = 3. Escribimos las seis columnas con longitud de tres caracteres, es decir PLX, IUI, EES, NGT, SOO y OEX.

P I E N S O L U E G O E X I S T O X Luego leyendo por filas y descartando los caracteres de relleno al final de

la matriz, se obtiene el profundo mensaje M = PIENSO, LUEGO EXISTO. En general, para un cifrado por transposición a través de una matriz de dimensiones j x k (j filas y k columnas), existe una relación funcional entre el texto en claro y el criptograma. En el caso de la cifra por columnas, el carácter del texto en claro de la posición iésima se desplaza a la posición Et(i) debido a la acción de permutación, en donde: Et(i) = j ∗ [(i-1) mod k] + trunc [(i-1)/k] + 1 1.66 Donde trunc(f(x))es la parte entera de la operación efectuada sobre f(x). Luego, el carácter Mi del texto en claro se representará en el criptograma como: Mi = Cj∗(i-1)modk + trunc[(i-1)/k] + 1 1.67 Aplicaremos la ecuación (1.66) al texto anterior M = PIENSO, LUEGO EXISTO. La posición relativa de los caracteres en el mensaje y en el criptograma será: i: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 M: P I E N S O L U E G O E X I S T O C: P L X I U I E E S N G T S O O O E X

Por ejemplo, se observa que las letras del texto en claro N (i=4), L (i=7), U (i=8), G (i=10), T (i=16) y el digrama EX (i,k=12,13) del texto en claro se desplazan, a las posiciones 10, 2, 5, 11, 12, 17 y 3 respectivamente. Como el receptor conoce el número de columnas NC empleadas en el cifrado y la longitud LC del criptograma, deduce que el número de filas NF = j es igual a LC/NC = 18/6 = 3. Comprobaremos a continuación estos valores en particular aplicando la ecuación (1.66). N: Et(4) = 3∗[(4-1)mod6] + trunc[(4-1)/6] + 1 = 10 ⇒ C10 L: Et(7) = 3∗[(7-1)mod6] + trunc[(7-1)/6] + 1 = 02 ⇒ C2 U: Et(8) = 3∗[(8-1)mod6] + trunc[(8-1)/6] + 1 = 05 ⇒ C5 G: Et(10) = 3∗[(10-1)mod6] + trunc[(10-1)/6] + 1 = 11 ⇒ C11

Page 1200: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 93

T: Et(16) = 3∗[(16-1)mod6] + trunc[(16-1)/6] + 1 = 12 ⇒ C12 E: Et(12) = 3∗[(12-1)mod6] + trunc[(12-1)/6] + 1 = 17 ⇒ C17 X: Et(13) = 3∗[(13-1)mod6] + trunc[(13-1)/6] + 1 = 03 ⇒ C3 Ejemplo 1.61: Aplicando la ecuación (1.66) cifre en columnas usando una clave NC = 3

el mensaje M = LA VIDA ES UNA TÓMBOLA. Solución: Como el texto en claro tiene 18 caracteres y el número de columnas k =

3, entonces el número de filas j = 6. Las posiciones de los caracteres en el criptograma serán:

Et(1) = 6∗[(1-1)mod3] + trunc[(1-1)/3] + 1 = 1 ⇒ C 1 = M1 = L Et(2) = 6∗[(2-1)mod3] + trunc[(2-1)/3] + 1 = 7 ⇒ C 7 = M2 = A Et(3) = 6∗[(3-1)mod3] + trunc[(3-1)/3] + 1 = 13 ⇒ C13 = M3 = V Et(4) = 6∗[(4-1)mod3] + trunc[(4-1)/3] + 1 = 2 ⇒ C 2 = M4 = I Et(5) = 6∗[(5-1)mod3] + trunc[(5-1)/3] + 1 = 8 ⇒ C 8 = M5 = D Et(6) = 6∗[(6-1)mod3] + trunc[(6-1)/3] + 1 = 14 ⇒ C14 = M6 = A Si continuamos la cifra se obtiene finalmente: C = LIENO OADSA MLVAU TBA. De igual manera, utilizando ahora la ecuación (1.67) podemos encontrar la posición que ocupaban los caracteres del texto en claro a partir del criptograma. Por ejemplo los seis primeros caracteres descifrados del mensaje PIENSO LUEGO EXISTO serán: M1 = C3∗[(1-1)mod6] + trunc[(1-1)/6] + 1 = C1 ⇒ M1 = P M2 = C3∗[(2-1)mod6] + trunc[(2-1)/6] + 1 = C4 ⇒ M2 = I M3 = C3∗[(3-1)mod6] + trunc[(3-1)/6] + 1 = C7 ⇒ M3 = E M4 = C3∗[(4-1)mod6] + trunc[(4-1)/6] + 1 = C10 ⇒ M4 = N M5 = C3∗[(5-1)mod6] + trunc[(5-1)/6] + 1 = C13 ⇒ M5 = S M6 = C3∗[(6-1)mod6] + trunc[(6-1)/6] + 1 = C16 ⇒ M6 = O Ejemplo 1.62: Descifre a través de la ecuación (1.67) el siguiente criptograma cifrado

con NC = 4 columnas. C = CNEAM SAANY IXMNO CNXIT HAOX. Solución: Como NC = 4 y el criptograma tiene LC = 24 caracteres, obtenemos j = 6. M1 = C6∗[(1-1)mod4] + trunc[(1-1)/4] + 1 = C1 ⇒ M1 = C M2 = C6∗[(2-1)mod4] + trunc[(2-1)/4] + 1 = C7 ⇒ M2 = A M3 = C6∗[(3-1)mod4] + trunc[(3-1)/4] + 1 = C13 ⇒ M3 = M M4 = C6∗[(4-1)mod4] + trunc[(4-1)/4] + 1 = C19 ⇒ M4 = I M5 = C6∗[(5-1)mod4] + trunc[(5-1)/4] + 1 = C2 ⇒ M5 = N Siguiendo con el mismo procedimiento y (hágalo Ud. mismo) obtenemos

el siguiente texto en claro M = CAMINANTE NO HAY CAMINOS. Como veremos en el próximo apartado, por mucho que con esta operación se destruyan poligramas, mediante una técnica denominada anagramación seremos capaces de atacar el criptograma. Esto es posible ya que en el cifrado anterior pueden persistir adyacencias de series cortas de letras, por ejemplo digramas característicos, desplazados una distancia constante. Ante ello, existen dos soluciones a este problema: aplicar una doble transposición o bien hacer uso de una clave para permutar las columnas antes de escribir el criptograma.

Page 1201: Seguridad Informatica

94 CRIPTOSISTEMAS CLÁSICOS

• Cifrador de transposición por columnas simple con clave Para evitar o hacer más difícil el ataque por anagramación, podemos utilizar una clave con el objeto de cambiar la posición relativa de las columnas de la cuadrícula. Esta clave puede ser cualquier combinación de números desde 1 hasta NC, no obstante podemos asociar una palabra de longitud NC con todos los caracteres distintos a dicha combinación de números. Por ejemplo si se trabaja con 7 columnas y se desea una permutación de éstas del tipo 2547136, una posible palabra clave sería la palabra PERMISO pues, ordenando los caracteres de dicha clave alfabéticamente, se obtiene precisamente esa permutación: EIMOPRS. Ejemplo 1.63: Cifre por columnas con la clave RELOJ el siguiente mensaje. M = EL PATIO DE MI CASA ES PARTICULAR, CUANDO LLUEVE SE

MOJA COMO LOS DEMÁS. Solución: Escribiendo el mensaje en 5 columnas y luego permutando éstas según

la clave RELOJ, tenemos: R E L O J E J L O R E L P A T L T P A E I O D E M O M D E I I C A S A C A A S I E S P A R S R P A E T I C U L I L C U T A R C U A R A C U A N D O L L D L O L N U E V E S E S V E U E M O J A M A O J E C O M O L O L M O C O S D E M S M D E O A S X X X S X X X A

Escribiendo las columnas resultantes, se tiene: C = LOCSI RDEMO SSTMA RLALS ALMXP DAPCC OVOMD XAESA

UULEJ OEXEI IETAN UECOA. Si se desea provocar una mayor confusión y difusión en el criptograma, en otras palabras rizar el rizo, podríamos incluir por ejemplo un par de líneas más en la matriz después del fin del mensaje, utilizando las mismas letras del texto. De esta manera, si tomamos como caracteres de relleno los de las columnas 1ª, 3ª y 5ª del mensaje escrito en columnas antes de aplicar la clave, las últimas cuatro filas de la primera matriz serán ahora: . . . . . O S D E M A S E P T I D M I A A E P R T El criptograma, que se lo dejo como ejercicio, será: C = LOCSI RDEMO SSDET MARLA LSALM TATPD APCCO VOMDE MPAES

AUULE JOEPI REIIE TANUE COAIA.

Page 1202: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 95

• Cifrador de doble transposición por columnas Para destruir la adyacencia de series cortas de caracteres que pueden aparecer en una única transposición, también podemos utilizar una segunda permutación. Con ello, el criptograma final se obtiene tras aplicar las siguientes transformaciones: C’ = E1(M) 1.68 C = E2[E1(M)] 1.69 Esto es, se escribe el texto del mensaje en claro M en columnas (operación E1) en una matriz de dimensiones j' x k' y luego se reordena dicha matriz en otra de dimensión j x k. El efecto de esta doble transposición será separar aún más los caracteres adyacentes y destruir, por tanto, los digramas. Compruebe Ud. mismo que al aplicar una doble permutación se produce una mayor dispersión de los caracteres del texto en claro en el criptograma final. En este caso ya no nos servirá el método de anagramación que veremos más adelante como herramienta de ataque a la cifra. 1.8.4. Transposición por filas De forma similar al sistema de cifra por columnas, en esta operación de cifra se escribe el mensaje M en forma vertical, por ejemplo de arriba hacia abajo, con un cierto número de filas NF que será la clave y luego se lee el criptograma en forma horizontal tal como se indica en el siguiente ejemplo. Ejemplo 1.64: Cifre por transposición de filas con clave NF = 3 el siguiente mensaje: M = EL PRISIONERO SE ENTREGARÁ EN EL LUGAR YA INDICADO. Solución: Escribiendo el texto verticalmente en tres niveles, se tiene: E R I E S N E R N L A A D A L I O R E T G A E U R I I D P S N O E R A E L G Y N C O

El criptograma se obtiene escribiendo las tres filas resultantes: C = ERIES NERNL AADAL IORET GAEUR IIDPS NOERA ELGYN CO. Evidentemente, las operaciones de cifra y descifrado serán análogas a las vistas en los sistemas de cifra por columnas. Esto es, conocido el número de elementos del criptograma LC y la clave NF, calculamos ahora el número de columnas NC como LC/NF y luego se escribe el criptograma de forma horizontal en tantas columnas como sea el valor de NC encontrado. Leyendo el resultado por columnas, en forma vertical de arriba hacia abajo, se obtiene el texto en claro. Ejemplo 1.65: Descifre el siguiente criptograma de cifra por filas y clave NF = 3. C = MAPDD ITOOE RURNX. Solución: Como la longitud del criptograma LC = 15 entonces NC = LC/NF = 15/3 = 5.

Escribimos el criptograma en cinco columnas y luego leemos de arriba hacia abajo:

M A P D D I T O O E R U R N X

Page 1203: Seguridad Informatica

96 CRIPTOSISTEMAS CLÁSICOS

Obteniendo el siguiente mensaje M = MIRA TÚ POR DÓNDE. Para hacer las cosas un poco más complicadas, otra forma de cifrar el mensaje, similar a la anterior, es mediante una figura de zig-zag de forma que la clave también se encuentra en el nivel de profundidad de dicha figura, como se indica en el próximo ejemplo. Ejemplo 1.66: Utilizando el cifrado por líneas con figura zig-zag con una profundidad

igual a 3, cifre el mensaje M = EL ESPAÑOL COMO EL JUDÍO, DESPUÉS DE COMER SIENTE FRÍO.

Solución: El mensaje se escribe como se indica: E P L O U D U E E E F L S A O C M E J D O E P E D C M R I N E R O E Ñ O L I S S O S T I Luego, leyendo en filas, se obtiene el criptograma: C = EPLOU DUEEE FLSAO CMEJD OEPED CMRIN EROEÑ OLISS OSTI. 1.8.5. Criptoanálisis de los cifrados por transposición La técnica de anagramación consistirá en la elección de un conjunto de elementos de una columna o fila, llamado ventana, y su posterior comparación con otras cadenas de caracteres en columnas o filas de igual longitud con el objeto de encontrar digramas comunes que han sido rotos por la transposición. La idea es que dicha ventana recorre todo el texto cifrado y en algún lugar coincidirán todos los digramas con los del mensaje original. Veamos el caso particular de un ataque a una cifra por columnas. Los pasos a seguir ante un cifrado que se sospeche sea de columnas, serán los siguientes:

a) Calcular primero la distribución de frecuencia de los caracteres del criptograma. Si dicha distribución resulta similar a la característica del lenguaje, es muy posible que el criptograma en cuestión se corresponda con un cifrado por transposición.

b) Se elige una cadena de al menos 7 caracteres del comienzo del criptograma

y que se denominará ventana. Con esta ventana se recorrerá el resto del criptograma avanzando de incrementos de un carácter y en cada paso se compararán los digramas que aparecen, fruto de los caracteres de dicha ventana y del resto del texto cifrado. Aunque es recomendable la elección de una ventana grande para poder aplicar con lógica las estadísticas del lenguaje, el tamaño de dicha ventana deberá ser menor que el número de filas que resultase en una cifra por columnas o bien el número de columnas de una cifra por filas.

c) Si la mayoría de los digramas presentan una alta frecuencia, esto indica que

puede tratarse de dos columnas de la operación de cifrado. De esta forma, podemos reconstruir la matriz y, por tanto, descriptar el criptograma.

En resumen, la idea es que, dado que tras la operación de cifra se conservan todos los caracteres del texto en claro, eso sí permutados, al comparar un bloque que

Page 1204: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 97

será parte de una columna con otros bloques, es posible encontrar digramas de alta frecuencia y esto permitirá encontrar el período y, por tanto, romper el cifrado. Veamos cómo funciona este método a través de un ejemplo. Cifremos, por ejemplo, en cuatro columnas el siguiente mensaje M = ESTO NO HAY QUIEN LO ARREGLE. E S T O N O H A Y Q U I E N L O A R R E G L E X Leyendo por columnas y agrupando en bloques de cinco caracteres obtenemos el criptograma C = ENYEA GSOQN RLTHU LREOA IOEX. La separación de los digramas del texto en claro dentro del criptograma es, precisamente, el número de filas obtenidas al confeccionar la matriz. Luego, si elegimos una ventana, por ejemplo, igual a 4 caracteres ENYE, y la comparamos con los restantes bloques de 4 caracteres del criptograma, en algún momento se realizará la comparación de la ventana ENYE con los caracteres desplazados un período, es decir la cadena SOQN, obteniéndose en este momento los digramas ES, NO, YQ y EN. Puesto que de estos cuatro digramas ES, NO y EN son muy frecuentes en el lenguaje castellano, podríamos suponer que el período de la cifra viene dado por la distancia que hay desde el primer carácter de la ventana hasta el primer carácter de la cadena analizada, en este ejemplo los seis espacios que separan la E de la S en la palabra ESTO del mensaje. Luego, si escribimos el criptograma en seis filas, se llega a la matriz anterior que permite encontrar el mensaje original. Podemos generalizar este método diciendo que se elige una ventana de un tamaño V caracteres, es decir: Ventana = C1C2 ... CV 1.70 A continuación, se observan los digramas que se forman al recorrer con esta ventana el resto del texto, es decir, formamos los siguientes digramas: C1CV+1, C2CV+2, ... , CVC2V C1CV+2, C2CV+3, ... , CVC2V+1

C1CV+3, C2CV+4, ... , CVC2V+2 1.71 ..... En cada comparación de la ventana con un bloque, buscamos la frecuencia relativa de los digramas encontrados de acuerdo a la Tabla de Digramas del Anexo y se calculan la media de la muestra y la desviación estándar. Si la media es un valor alto y la desviación estándar es baja, quiere decir que todos los valores de CaCb tienen alta probabilidad de ser parte de un texto en claro y que, además, la media alta no es debido solamente a algún digrama aislado de muy alta frecuencia. Si se dan estas condiciones entonces es probable que el período L del cifrado, las filas de la matriz en

Page 1205: Seguridad Informatica

98 CRIPTOSISTEMAS CLÁSICOS

el caso de una cifra por columnas, sea igual a la distancia en caracteres que separa a ambas cadenas pCx y pC1, luego: L = pCx - pC1 1.72 donde pCx es la posición relativa donde comienza la cadena que se está comparando y pC1 es la posición de inicio del criptograma y de la ventana. La media se calcula sumando las frecuencias relativas fr de los digramas en el lenguaje:

X = 1V

fi=1

V

r∑ 1.73

siendo V el tamaño de la ventana en caracteres. La desviación estándarσ será:

σ = ( f - X )

Vi=1

V

r2∑

1.74

Encontrado un período L, podemos intentar extender el tamaño de la ventana hasta dicho valor, con la idea de tener una cadena de caracteres igual a la de una columna en la operación de cifra, o por el contrario buscar L posiciones más adelante otra cadena para ver si también presenta digramas comunes con la que le precede. Ejemplo 1.67: Realice un ataque por anagramación sobre el criptograma que se indica

eligiendo una ventana de tamaño V = 4 C = TPNOT OAOPO DRYAD OAURO SUNAS. Solución: Como V = 4 el bloque será TPNO que se comparará con TOAO, OAOP,

AOPO, OPOD, etc. Usaremos la Tabla de Digramas del Anexo. T t Tt 11 o To 285 a Ta 436 P o Po 225 a Pa 181 o Po 225 N a Na 332 o No 222 p Np 49 O o Oo 40 p Op 131 o Oo 40 Media: 152 205 188 Desviación: 136,77 56,44 161,32

Con la cadena OAOP de la segunda comparación, los digramas to, pa, no y op muestran una media alta asociada con una baja desviación estándar respecto a esa media. Asimismo, en la tercera comparación -cadena AOPO- aparece el digrama ta, de muy alta frecuencia, pero su efecto se enmascara con los digramas np y oo de baja frecuencia, dando una desviación alta. De lo anterior podríamos deducir que el período es igual a 5, el tamaño de la cadena más el número de comparaciones hechas antes de dar con el bloque de media alta y desviación baja.

Siguiendo con el método y suponiendo que el período es igual a 5, podríamos observar los digramas que aparecen desplazándonos en el criptograma 5 espacios; es decir, comparar por ejemplo la cadena encontrada OAOP con DRYA, luego la cadena DRYA con OAUR y finalmente la cadena OAUR con SUNA, es decir: od 250 do 354 os 764

Page 1206: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 99

ar 493 ra 520 au 72 oy 35 yu 8 un 338 pa 181 ar 493 ra 520 Puesto que se mantiene una media alta, se confirma que el período podría ser igual a 5. No obstante, en estas comparaciones no se cumple que la media alta vaya acompañada de una desviación baja; esto ocurre cuando el tamaño de la ventana es de sólo algunos caracteres como es en este caso y que hace muy difícil y arriesgado aplicar estadísticas alegremente. En este ejemplo como la clave NC = 5 y el mensaje tenía muy pocos caracteres se obtienen pocas filas (de hecho NF = 5) y por lo tanto nos ha forzado la elección de una ventana pequeña. Recuerde que éste es un método estadístico, por tanto no infalible, y que para tener un mínimo grado de confianza en los resultados será necesario contar con un criptograma de gran longitud y no pocas veces algo de intuición y suerte. Como ejercicio, descifre Ud. mismo este noble mensaje. 1.9. OTRAS TRANSFORMACIONES Además de los métodos clásicos analizados en el capítulo, existen infinidad de algoritmos de cifrado más o menos ingeniosos. A continuación presentaremos algunas transformaciones aritméticas fáciles de implementar en un ordenador. 1.9.1. Transformación por adición Puesto que la suma y la resta son operaciones que cuentan con inversa, se pueden utilizar como funciones de cifra. De hecho, este principio ya ha sido utilizado en los cifradores por sustitución. Si existe una correspondencia entre los caracteres ai del alfabeto del mensaje con los dígitos cj del alfabeto de cifrado con 0 ≤ j ≤ n-1, serán posibles las dos operaciones de cifra que se indican: C = EK (M) = M + K 1.75 C = EK (M) = M - K 1.76 En este tipo de cifrado, tomamos un bloque de n caracteres y la cifra será el valor numérico resultante de la adición o sustracción de dicho número con el que le corresponda a los n caracteres de la clave que coinciden con el bloque. Estos números luego pueden transmitirse o almacenarse en formato binario. Por ejemplo, para cifrar el mensaje M = LA MEJOR DEFENSA ES UN BUEN ATAQUE con la clave K = NAPOLEÓN y una transformación por adición con bloques de tres caracteres, procedemos de la siguiente forma: M = L A M E J O R D E F E N S A E S U N B U E N A T A Q U E C = N A P O L E O N N A P O L E O N N A P O L E O N N A P O

La representación numérica será: M = 11 00 12 04 09 15 18 03 04 05 04 13 19 00 04 19 21 13 01 21 04 13 00 20 00 17 21 04

Page 1207: Seguridad Informatica

100 CRIPTOSISTEMAS CLÁSICOS

K = 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15 11 04 15 13 13 00 16 15 C = 24 00 28 19 20 19 33 16 17 05 20 18 30 04 19 32 34 13 17 36 15 17 15 33 13 17 37 19

Si tomamos como bloque la cifra de cada tres caracteres, el criptograma final será los números: C = 240.028 192.019 331.617 52.028 300.419 323.413 173.615 171.533 131.737 19. Para descifrar basta con realizar la operación inversa. Esto es, el primero y el segundo bloques del criptograma C1 y C2 se descifrarían como sigue: C1 240.028 C2 192.019 - K1 130.016 - K2 151.104 M1 110.012 = LAM M2 040.915 = EJO De la misma manera, podríamos cifrar aplicando una multiplicación del bloque del texto en claro por el bloque de la secuencia de una clave. No obstante, deberíamos representar los caracteres del alfabeto con dígitos Cj > 0 pues de lo contrario la operación inversa sería irrecuperable para texto en claro o clave igual a cero. Esto quiere decir que los caracteres deberán representarse desde 1 a 27 a diferencia de cómo veníamos haciéndolo [0, 26] que era un imposición de la aritmética modular, que no es aquí el caso. Siguiendo entonces el mismo ejemplo anterior, y tomando ahora como bloques a digramas del mensaje, el primer criptograma será el producto del mensaje LA (12 01) cifrado con la secuencia de clave NA (14 01); luego: C1 = M1 ∗ K1 = LA ∗ NA = 1.201 ∗ 1.401 = 1.682.601. El problema que se manifiesta en este tipo de cifra (y en menor medida en la suma) es que el criptograma puede expandir la longitud del mensaje, requiriéndose más dígitos o bits para su representación. El caso contrario, una operación de cifra que reduzca la longitud del mensaje, sería la división, pero ahora el problema es que el resultado de tal operación no arroje un entero y, consecuentemente, nos sea imposible la recuperación de la información. 1.9.2. Transformación por conversión de base Si en la representación del mensaje se produce un cambio de base, se obtiene un criptograma en el que la seguridad reside únicamente en el secreto de la base utilizada. Esta operación de cambio de base es válida para cifrar puesto que cuenta con inversa; es decir, si un mensaje se representa en base decimal y se cifra en bloques de un tamaño determinado convirtiendo cada bloque a base octal, por ejemplo, se podrá descifrar posteriormente dicho criptograma sencillamente convirtiendo de nuevo el número del sistema octal al decimal. Al igual que en los métodos aritméticos anteriores, la longitud del mensaje podrá expandirse o reducirse, según sea el sistema de numeración que elijamos para cifrar en comparación con la base original. Por ejemplo, si el mensaje a cifrar es M = SOS, de acuerdo a los dígitos asignados en castellano a estos caracteres del 1 al 27, su representación decimal será: SOS = 20162010. Si la operación de cifra consiste en

Page 1208: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 101

representar bloques de trigramas en el sistema octal, se tiene que M = SOS = 201.62010 que se representa como C = 6116248. Ejemplo 1.68: Comente las operaciones realizadas para obtener el criptograma anterior

y demostrar que al convertir de base se recupera el mensaje. Solución: Hacemos divisiones sucesivas del dividendo y cocientes por el divisor 8

hasta que el cociente sea menor que el divisor. Anímese y hágalo. Los restos de esta división, leídos en sentido inverso a partir del cociente distinto de la base entregan el resultado buscado. Resuélvalo Ud. mismo y compruebe que C = 6116248.

Para recuperar el mensaje, se convierte a formato decimal, es decir: M = 4∗80 + 2∗81 + 6∗82 + 1∗83 + 1∗84 + 6∗85 = 201.62010

1.9.3. Transformación por lógica de Boole Utilizando el álgebra de Boole también podemos cifrar un mensaje. Una posibilidad sería usar las operaciones de negación y OR exclusivo que tienen inversos. Si el texto en claro se representa en binario conjuntamente con una clave también binaria de la misma longitud, esto dará lugar a las operaciones de cifrado y descifrado que se indican: Negación: C = E(M) = M y M = E(M) 1.77 XOR C = EK(M) = M ⊕ K y M = EK(M) ⊕ K 1.78 Ejemplo 1.69: Se desea cifrar el mensaje M = SOL representado en su equivalente

ASCII binario: a) Cífrelo con el algoritmo de negación y b) Cífrelo con la función XOR y la clave K = SUN. En cada caso, represente el resultado en notación hexadecimal.

Solución: Las representaciones binarias del mensaje y la clave son: SOL = 01010011 01001111 01001100 SUN = 01010011 01010101 01001110

a) C1 = 10101100 10110000 10110011 = (AC B0 B3)16 b) C2 = 00000000 00011010 00000010 = (00 1A 02)16 En algunos casos como en el criptograma C1 es posible representar la solución con caracteres ASCII imprimibles. Esto no será siempre posible como es lógico pues la operación puede dar lugar a octetos que no tengan representación impresa como sucede con todos los elementos del segundo criptograma. Ahora bien, esto no tiene mayor importancia pues la información se cifra, envía y descifra o en su caso se almacena en binario con lo que, evidentemente, se recupera el texto en claro usando la operación inversa; en el primer caso negando uno a uno los bits del criptograma y en el segundo aplicando nuevamente Or exclusivo al criptograma con la misma clave. Vea las tablas de caracteres en el Anexo y compruébelo. 1.9.4. Transformación matricial

Page 1209: Seguridad Informatica

102 CRIPTOSISTEMAS CLÁSICOS

Podemos generalizar los cifrados matriciales de Hill vistos en el apartado anterior, utilizando las operaciones producto y suma de matrices, sobre un mensaje M que se transforma mediante un código binario en una sucesión de unos y ceros que se disponen en una matriz de r filas por s columnas, al igual que la clave K. Luego, las operaciones de cifra serán: (C) = (M) + (K) 1.79 (C) = (M) x (K) 1.80 Para que exista inversa en la suma, será necesario que las matrices sean de la misma dimensión, en tanto que para el producto como ya hemos visto se debe cumplir que la matriz clave sea cuadrada, no singular y posea una inversa única. Ejemplo 1.70: Cifre el mensaje M = CAMISA, usando una transformación de suma de

matrices como la indicada en la ecuación 1.79 con la clave K = ROSADA. La cifra es módulo 27 y se usarán matrices de 2 filas y 3 columnas.

Solución: Las matrices de texto y su correspondiente código mod 27 serán:

⎟⎟⎠

⎞⎜⎜⎝

⎛+⎟⎟

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛+⎟⎟

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛030

1915180198

1202ADASOR

ASIMAC

CCCCCC

232221

131211

Procediendo a la suma módulo 27:

27mod0228311520

CCCCCC

232221

131211

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

C = 20 15 04 08 22 00 = TOD IVA Observe la similitud con el cifrado de Vigenère.

SUMARIO DEL CAPÍTULO

1. La seguridad unida al secreto de un algoritmo de cifrado está relacionada con

sistemas criptográficos clásicos. Los sistemas modernos basan su fortaleza en el secreto de la o las claves. En este caso se habla de algoritmos simétricos que usan clave secreta o algoritmos asimétricos que usan una única clave pública y otra privada.

2. Los cifradores clásicos se clasifican en Cifradores por Sustitución y Cifradores

por Transposición. Entre los primeros están los monoalfabéticos y los polialfabéticos. En la misma categoría están a los cifradores por homófonos.

3. Los cifrados por sustitución aplican el principio de la confusión propuesta por

Shannon, que consiste en sustituir caracteres del texto en claro por otros caracteres del mismo alfabeto o de otros alfabetos. Por su parte, los cifrados por transposición aplican el principio de la dispersión también propuesto por Shannon y que tiene como acción la permutación de los caracteres del texto en claro.

4. La sustitución permitirá aplicar distintos alfabetos y, por tanto, enmascarar las

Page 1210: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 103

distribuciones de frecuencias características de los caracteres del texto en claro. Su efecto es producir una relación texto en claro/criptograma lo más compleja posible. Por su parte, la permutación utiliza el mismo alfabeto del texto en claro o un equivalente de alfabeto mixto para el cifrado, provocando así una dispersión de los caracteres. En este caso, se conserva la distribución característica del lenguaje en el criptograma.

5. Los cifradores por sustitución simple monoalfabeto utilizan E(m) = (a∗m ± b) mod

n como transformación afín, siendo a la constante de decimación, m el valor numérico asociado al carácter del alfabeto, b el desplazamiento en dicho alfabeto y n el número de letras del alfabeto o cuerpo de trabajo. En general, cuando a = 1, diremos que se trata de un cifrador por alfabetos desplazados puros y si b = 0, de un cifrador por multiplicación o decimación pura.

6. El criptoanálisis de sistemas con cifrado por sustitución monoalfabética consiste

en encontrar correspondencias entre caracteres en claro con los del criptograma, usando para ello las tablas de frecuencia de los monogramas. Se pretende formar trozos de palabras muy frecuentes aprovechando la redundancia del lenguaje.

7. Los cifradores por homófonos utilizan distintos valores para representar un

mismo carácter, con el objeto de destruir la distribución de frecuencia de los caracteres del lenguaje. La fortaleza del cifrado está en la clave o el archivo que determina los homófonos. Para cifradores por homófonos de orden n > 1, se obtienen n criptogramas válidos en el espacio de mensajes M al descifrar o intentar descriptar el texto cifrado, dificultando de esta forma el ataque.

8. Los cifradores polialfabéticos utilizan más de un alfabeto para el cifrado. En este

caso, existe una periodicidad d con la que se repite la misma transformación. En su ataque, para encontrar este período contamos con el Método de Kasiski y el Indice de Coincidencia.

9. El Método de Kasiski ayuda a determinar el período de un criptograma mediante

la simple inspección de éste. Consiste en buscar cadenas de caracteres repetidos en el texto cifrado. El valor del máximo común divisor de las distancias entre tales cadenas será el período buscado.

10. El Indice de Coincidencia nos ayuda a determinar si los d textos cifrados

independientes provenientes del criptograma se corresponden, cada uno, a sustituciones simples comparando su valor con el característico del lenguaje. Ambos métodos, Kasiski e Indice de Coincidencia, se complementan.

11. Los sistemas de cifra polialfabética con clave continua en la que dicha clave

corresponde a un texto en el mismo lenguaje, suaviza la distribución de frecuencias. Si bien no existe período en este caso, puede criptoanalizarse mediante el Método de Friedman que consiste en buscar pares MiKi de alta frecuencia que entreguen el carácter del criptograma analizado. Mediante combinaciones múltiples de texto en claro y claves posibles puede determinarse,

Page 1211: Seguridad Informatica

104 CRIPTOSISTEMAS CLÁSICOS

bajo ciertas condiciones, trozos del mensaje y de la clave en cuestión. 12. Los cifradores por sustitución poligrámica aplican las técnicas de sustitución

sobre digramas, trigramas, etc., con el objeto de destruir la distribución de frecuencia característica de los monogramas. Son típicos el cifrador de Playfair y el de Hill.

13. El ataque al sistema de cifra poligrámico de Playfair se realiza mediante la

técnica de Análisis de Digramas con el objeto de reconstruir la matriz de cifra. 14. El cifrado de Hill introduce el uso de las matemáticas de matrices. Aunque es un

método de cifra muy interesante, no pudo competir con otras máquinas de cifrar de la época como el Enigma.

15. Aunque se obtienen con el sistema de Hill valores de distancia de unicidad muy

altos y por lo tanto el ataque por fuerza bruta es inviable, presenta una gran debilidad ante ataques con texto en claro conocido.

16. Para atacar un cifrado de Hill conociendo el texto en claro, buscamos vectores

unitarios en el texto en claro o en el criptograma, lo que nos dará de forma inmediata la matriz de la clave. Si no es posible encontrar dichos vectores unitarios, usamos la técnica de Gauss-Jordan que consiste en diagonalizar, por ejemplo, la matriz Texto Claro/Texto Cifrado, de lo cual puede deducirse la clave.

17. Los cifradores por transposición utilizan la permutación de los mismos caracteres

del texto en claro realizando permutaciones de alfabetos, por grupos, columnas, filas y series, pudiendo utilizarse si se desea una clave. Este cifrado rompe las cadenas características del lenguaje.

18. El criptoanálisis de cifrados por transposición se realiza aplicando Técnicas de

Anagramación, que consiste en la distribución del criptograma en bloques de digramas y la comprobación posterior, mediante una ventana de texto cifrado, de la aparición de digramas característicos del lenguaje con el uso de una tabla de digramas característicos. Si dentro de la ventana de comparación, la media de los valores de digramas que se forman es alta y la desviación baja, esto puede indicar la presencia de un período de cifra.

19. El cifrado de Vernam usa como clave una cadena de bits para realizar la suma

or exclusivo con el mensaje. Aunque fue diseñado para cifrar mensajes representados por el código Baudot, el cifrador de Vernam puede usarse para cifrar de forma binaria cualquier archivo, con o sin formato, mediante la representación en código ASCII o ANSI de todos los caracteres.

20. Si la secuencia de clave de un cifrador de Vernam binario es de tipo aleatorio y

además de uso único, el sistema de cifra conocido como one-time pad es perfecto en tanto resulta imposible deducir la clave. Esta idea dará luego paso a los denominados cifradores de flujo.

21. Otros tipos de cifrado son las transformaciones por adición y sustracción de texto

Page 1212: Seguridad Informatica

CRIPTOSISTEMAS CLÁSICOS 105

en claro con claves, puesto que esta operación tiene inversa. También es posible la transformación por conversión de la base del sistema de numeración, transformaciones mediante operaciones lógicas booleanas y transformaciones matriciales en general.

22. Las máquinas de cifrar corresponden a sistemas implantados en equipos

electromecánicos entre los que cabe destacar las máquinas a rotor como el Enigma y Hagelin, utilizadas para cifrar mensajes durante la 2ª Guerra Mundial.

23. Otras máquinas de cifra anteriores al siglo XX que conforman los pilares de la

criptografía clásica, son el cifrador polialfabético de Alberti y los de Wheatstone y Bazeries, estos últimos basados en discos.

Page 1213: Seguridad Informatica

LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA AUTOR: JORGE RAMIO AGUIRRE

UNIVERSIDAD POLITÉCNICA DE MADRID ESPAÑA - COPYRIGHT 2006 (JRA)

El libro electrónico en su versión 4.1 de 1 de marzo de 2006, contiene los documentos: ARCHIVO CONTENIDO DEL ARCHIVO - PortadaLibro.doc: Portada del libro - PrologoLibro.doc: Prólogo de la versión 4.1 y de versiones anteriores - Leame.doc: Este archivo - 01PresentaLibro.ppt Presentación del curso y libro electrónico v 4.1 - 02BreveIntroCripto.ppt Introducción breve y rápida a la criptografía - 03IntroSegInfo.ppt Introducción a la Seguridad Informática - 04CalidadInfo.ppt Calidad de la Información y Virus - 05GestionSeg.ppt Introducción a la Gestión de la Seguridad - 06TeoriaInfo.ppt Teoría de la Información - 07TeoriaNumeros.ppt Teoría de los Números - 08CompAlgoritmos.ppt Teoría de la Complejidad Algorítmica - 09CifraClasica.ppt Sistemas de Cifra Clásicos - 10CifraModerna.ppt Sistemas de Cifra Modernos - 11CifraFlujo.ppt Sistemas de Cifra en Flujo - 12CifraSimetrica.ppt Cifrado Simétrico en Bloque - 13CifraMochilas.ppt Cifrado Asimétrico con Mochilas - 14CifraAsimetrica.ppt Cifrado Asimétrico Exponencial - 15FuncionesHash.ppt Funciones Hash en Criptografía - 16AutenticaFirma.ppt Autenticación y Firma Digital - 17CertDigitalesPKCS.ppt Certificados Digitales y Estándar PKCS - 18CorreoSeguro.ppt Aplicaciones de Correo Seguro - 19ProtocolosCripto.ppt Protocolos y Esquemas Criptográficos - 20CurvasElipticas.ppt Introducción a Cifra con Curvas Elípticas (*) - 21BibSWTablasyOtros.ppt Bibliografía, Enlaces, Tablas, Software y Documentos (*) Capítulo escrito por el Dr. Josep María Miret Biosca (Universitat de Lleida – España) Archivo SegInfoCrip_v41.zip:

- 3 páginas en formato Word (además de ésta) - 1.106 diapositivas en formato Power Point

Puede descargarse un documento de 105 página sobre Criptografía Clásica desde: http://www.criptored.upm.es/descarga/CriptoClasica.zip NOTA: en la misma dirección Web existe también una versión del libro electrónico y documento en formatos pdf: http://www.criptored.upm.es/guiateoria/gt_m001a.htm

Page 1214: Seguridad Informatica

LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA

PRÓLOGO DE LA SEXTA EDICIÓN v4.1 EN INTERNET

Madrid, 1 de marzo de 2006 Estimados amigos y amigas: Con un nivel de descargas de la versión anterior 4.0 que se han acercado nuevamente a las 40.000 durante un año, a estas alturas las palabras sobran. En esta sexta edición nuevamente he contado con la inestimable colaboración del Dr. Josep María Miret Biosca, profesor de la Universitat de Lleida, en el capítulo dedicado a curvas elípticas que se ha reestructurado. En cuanto a los demás capítulos, todos han sido revisados y en su gran mayoría actualizados. Las mayores novedades las encontrará en el capítulo de cifra simétrica con el algoritmo AES y en el capítulo de cifra asimétrica con una profundización en la generación de claves y debilidades en RSA. Se han aumentado los enlaces a páginas Web y en el último capítulo se recogen todos estos sitios Web con una breve descripción del contenido de la página. Así, esta versión 4.1 cuenta con un total del 1.106 diapositivas, casi una centena más que la versión anterior. Espero que este libro electrónico le sea de utilidad en su aprendizaje de la criptografía, una apasionante rama de la seguridad informática en la que está principalmente enfocado. Muchas gracias a todos El autor Madrid, 1 de marzo de 2006

PRÓLOGO DE LA QUINTA EDICIÓN v4.0 EN INTERNET Madrid, 1 de marzo de 2005

Estimados compañeros de ruta: Permítanme esta licencia en la forma de saludo del prólogo de esta quinta edición. La razón de este trato tan personal radica en la certeza de que muchos de aquellos amigos/as que ya han leído, estudiado e incluso impartido clases y conferencias con esta documentación, se descargarán la nueva edición y seguirán profundizando en estos temas apasionantes de la criptografía y la protección de la información, al igual que debo hacerlo yo –no queda otro remedio en esta cambiante especialidad- de cuando en cuando. Como corresponde a cualquier nueva versión, los capítulos han sido actualizados y además se ha incluido uno nuevo sobre la cifra con curvas elípticas, gracias a la colaboración del Dr. Josep María Miret Biosca, profesor de la Universidad de Lleida; a quien desde este prólogo agradezco su excelente predisposición para entregarme sus notas sobre este tema y que en

LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA v4.1 Pág .i

Page 1215: Seguridad Informatica

próximas ediciones actualizará. Además, a diferencia de la versión v3.2, los archivos tienen cada uno un nombre relacionado con el tema que trata para una búsqueda más rápida. Como novedad docente, he creído oportuno incluir en algunas diapositivas enlaces a páginas Web, de forma que pinchando en el icono correspondiente podamos acceder directamente a ese sitio y contrastar información. Además, en tanto la teoría en ingeniería poco o nada vale si no va asociada con unas prácticas, al final de los capítulos que así lo requieren, se han añadido diversos ejercicios prácticos para realizarlos con programas y aplicaciones de tipo freeware. De esta forma, la versión v4.0 cuenta con un total del 1.030 diapositivas, una centena más que la versión anterior. Además, puede descargar un documento en Word de 106 páginas sobre criptografía clásica desde http://www.criptored.upm.es/descarga/CriptoClasica.zip Nuevamente, mil gracias a todos y todas por hacer de este libro electrónico un verdadero boom editorial en Internet , lo cual no deja de sorprenderme al constatar que de la versión v3.2 que con fecha de hoy ha quedado ya obsoleta, las descargas en un año han llegado a la nada despreciable cifra de 40.000.

Dr. Ingeniero de Telecomunicación Diplomado por la Universidad Politécnica de Madrid. Profesor titular del Departamento de Lenguajes, Proyectos y Sistemas Informáticos de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid. Es profesor y coordinador de la asignatura de Seguridad Informática que se imparte desde el año 1994 como asignatura optativa de tercer curso en la titulación de Ingeniero Técnico en Informática de Gestión del Plan de Estudios 1992. Desde el año 2005 es el coordinador de una nueva asignatura de libre elección Gestión, Auditoría, Normativas y Legislación en Seguridad Informática, cuya particularidad es que los docentes serán conferenciantes invitados de diversos organismos, empresas e instituciones, expertos en el tema. Es el creador y coordinador de CriptoRed, la Red Temática Iberoamericana de Criptografía y Seguridad de la Información, en la que participan más de 550 expertos e investigadores de 160 universidades y centros de investigación, así como empresas de sector de las NTIs, desde cuyo servidor se descargan más de 25.000 documentos mensualmente. Fue partner de la Red ECET, European Computer Education and Training (2001-2004), y a partir de 2005 de Red ETN DEC European Thematic Network for Doctoratal Education in Computing, cuyo objetivo es el análisis de los estudios de doctorado. Desde el año 2000 viene impartiendo diversas conferencias y escribiendo documentos en los que hace ver la necesidad de crear un espacio docente para la introducción de las asignaturas relacionadas con la seguridad informática en los planes de estudios universitarios y la creación de una Ingeniería en Seguridad Informática. Es miembro del Subcomité de Seguridad de Tecnologías de la Información (SC 27) del Comité Técnico de Normalización de Tecnología de la Información (CTN 71) de AENOR. Es miembro del comité de revisores de IEEE América Latina. Ha participado en numerosos congresos en calidad de conferenciante invitado, moderador de sesión, miembro del comité organizador o miembro del comité de programa. A fecha de enero de 2006, ha impartido diversos cursos, charlas y conferencias sobre criptografía, seguridad informática y la red temática en: Argentina, Bolivia, Brasil, Bulgaria, Chile, Colombia, Costa Rica, Cuba, España, México, Panamá, Perú, República Dominicana, Uruguay y Venezuela.

[email protected] Web personal: http://www.lpsi.eui.upm.es/~jramio Web asignatura SI: http://www.lpsi.eui.upm.es/SInformatica/SInformatica.htm Web asignatura GANLESI: http://www.lpsi.eui.upm.es/GANLESI/GANLESI.htm Web CriptoRed: http://www.criptored.upm.es/

Pág. ii LIBRO ELECTRÓNICO DE SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA v4.1