La criptografía se ha definido tradicionalmente como el arte o la ciencia que se ocupa de alterar los textos escritos con el fin de hacerlos ininteligibles a receptores no autoriza...
La criptografía se ha definido tradicionalmente como el arte o la ciencia que se ocupa de alterar los textos escritos con el fin de hacerlos ininteligibles a receptores no autorizados. El único objetivo de la criptografía es conseguir la confidencialidad de los mensajes. La historia de la criptografía es larga y abunda en anécdotas. El libro recorre los hitos criptográficos más importantes desde el Antiguo Egipto hasta la Segunda Guerra Mundial. Tras la conclusión de esta, el rápido desarrollo teórico y los avances en computación supusieron una amenaza para los sistemas clásicos de cifrado. A mediados de los años 70, se empezó a gestar lo que sería la última revolución de la criptografía: los sistemas asimétricos. Esta obra, sin embargo, no se centra ni en la historia, ni en la teoría de la criptografía, sino en cómo programar los ordenadores para imitar el funcionamiento de las cifras clásicas y cómo pueden romperse. Dirigida a principiantes que nunca han programado, te mostrará las técnicas básicas de programación a través de la criptografía mediante el uso de Python, un lenguaje interpretado ideal para programadores por su facilidad y potencia. Podrás participar en el reto de resolver un algoritmo de cifrado diseñado específicamente para los lectores de la obra y así conseguir 1 año de suscripción gratuita a toda la colección digital de Ra-Ma.
Índice
PRÓLOGO CAPÍTULO 1. UNA PEQUEÑA INTRODUCCIÓN 1.1. ESTEGANOGRAFÍA Y CRIPTOGAFÍA 1.2.MÉTODOS CRIPTOGRÁFICOS 1.3.RESUMEN 1.4. EVALUACIÓN 1.5. EJERCICIOS PROPUESTOS CAPÍTULO 2. UN PASEO POR LA HISTORIA 2.1 LA CRIPTOGRAFÍA EN SUS PRIMEROS 3000 AÑOS 2.1.1 El criptoanálisis en la Edad Media 2.2 EL RENACIMIENTO DE OCCIDENTE 2.2.1 La cifra Bellaso 2.2.2 La cifra Vigenère 2.3 DE LAS CÁMARAS NEGRAS AL TELÉGRAFO 2.4 UN ENEMIGO AÚN MÁS PODEROSO: LA RADIO 2.4.1 Cifrado Playfair 2.4.2. La Cifra ADFGVX 2.5. LA LIBRETA DE UN SOLO USO 2.6. LA MÁQUINA ENIGMA 2.6.1. Cifrado y descifrado de mensajes con Enigma 2.7. LA ERA DE LOS ORDENADORES 2.8. RESUMEN 2.9. EVALUACIÓN 2.10. EJERCICIOS PROPUESTOS CAPÍTULO 3. LA INSTALACIÓN DE PYTHON 3.1. DESCARGA E INSTALACIÓN DE PYTHON 3.1.1. Instalación en Windows 3.1.2. Instalación en Mac OS X 3.1.3. Instalación en Linux 3.2. DESCARGA DEL MÓDULO PYPERCLIP.PY 3.3. LA EJECUCIÓN DEL ENTORNO INTERACTIVO 3.3.1. Reglas de estilo 3.4. SPYDER 3.5. RESUMEN CAPÍTULO 4. LOS ELEMENTOS DEL LENGUAJE 4.1. PYTHON COMO CALCULADORA 4.1.1. Prioridad en las operaciones 4.2. VARIABLES 4.3. CADENAS Y LISTAS 4.3.1. Concatenación de cadenas 4.3.2. Replicación con el operador 4.3.3. Caracteres de escape 4.3.4. Indexación y fraccionamiento 4.3.5. Las listas 4.4. LOS COMENTARIOS 4.5. EL PRIMER PROGRAMA 4.6. RESUMEN 4.7. EVALUACIÓN 4.8. EJERCICIOS PROPUESTOS CAPÍTULO 5. ATBASH Y LA CIFRA CÉSAR 5.1. LA CIFRA ATBASH 5.1.1. El código fuente 5.1.2. Cómo funciona el programa 5.2. LA CIFRA CÉSAR 5.2.1. El código fuente 5.2.2. Cómo funciona el programa 5.2.3. Cómo cifrar caracteres no alfabéticos 5.3. RESUMEN 5.4. EVALUACIÓN 5.5. EJERCICIOS PROPUESTOS CAPÍTULO 6. ATAQUE DE FUERZA BRUTA A LA CIFRA CÉSAR 6.1. IMPLEMENTACIÓN DEL ATAQUE 6.1.1. El código fuente 6.1.2. Cómo funciona el programa 6.2. RESUMEN 6.3. EVALUACIÓN 6.4. EJERCICIOS PROPUESTOS CAPÍTULO 7. CIFRADO POR TRANSPOSICIÓN 7.1. TRANSPOSICIÓN COLUMNAR SIMPLE 7.1.1. El código fuente 7.1.2. Cómo funciona el programa 7.1.3. Tamaño de clave y longitud del mensaje 7.2. RESUMEN 7.3. EVALUACIÓN 7.4. EJERCICIOS PROPUESTOS CAPÍTULO 8. DESCIFRANDO LA TRANSPOSICIÓN COLUMNAR 8.1. EL MECANISMO DE DESCIFRADO 8.2. EL CÓDIGO FUENTE 8.2.1. Cómo funciona el programa 8.3. RESUMEN 8.4. EVALUACIÓN 8.5. EJERCICIOS PROPUESTOS CAPÍTULO 9. ROMPIENDO LA TRANSPOSICIÓN COLUMNAR 9.1. CÓMO DETECTAR UN IDIOMA 9.2. MÓDULO EN PYTHON PARA DISTINGUIR EL ESPAÑOL 9.2.1. El código fuente 9.2.2. Cómo funciona 9.3. CÓDIGO FUENTE DEL PROGRAMA PRINCIPAL 9.3.1. Cómo funciona el programa 9.4. RESUMEN 9.5. EVALUACIÓN 9.6. EJERCICIOS PROPUESTOS CAPÍTULO 10. LA CIFRA AFÍN 10.1. LA CIFRA AFÍN 10.1.1. Visualiza el módulo con relojes 10.1.2. El operador módulo en Python 10.1.3. Operaciones en la cifra afín 10.1.4. Máximo común divisor. Algoritmo de Euclides 10.1.5. El proceso de descifrado 10.1.6. El algoritmo de Euclides extendido 10.2. EL CÓDIGO FUENTE DEL MÓDULO CRIPTOMAT 10.3. EL CÓDIGO FUENTE DE LA CIFRA AFÍN 10.3.1. Cómo funciona el programa 10.4. RESUMEN 10.5. EVALUACIÓN 10.6. EJERCICIOS PROPUESTOS CAPÍTULO 11. ATAQUE A LA CIFRA AFÍN 11.1. EL ESPACIO DE CLAVES EN LA CIFRA AFÍN 11.2. EL CÓDIGO FUENTE 11.2.1. Cómo funciona el programa 11.3. MANEJO DE EXCEPCIONES 11.4. RESUMEN 11.5. EVALUACIÓN 11.6. EJERCICIOS PROPUESTOS CAPÍTULO 12. LA CIFRA DE SUSTITUCIÓN SIMPLE 12.1. LA CIFRA DE SUSTITUCIÓN SIMPLE 12.2. EL CÓDIGO FUENTE 12.2.1. Cómo funciona el programa 12.2.2. El método de listas sort() 12.2.3. Funciones envolventes 12.2.4. Los métodos de cadena isupper() e islower() 12.2.5. Generar una clave pseudoaleatoria 12.3. CÓMO CIFRAR OTROS SÍMBOLOS 12.4. RESUMEN 12.5. EVALUACIÓN 12.6. EJERCICIOS PROPUESTOS CAPÍTULO 13. ATAQUE A LA CIFRA DE SUSTITUCIÓN SIMPLE 13.1. IMPLEMENTACIÓN DEL ATAQUE 13.1.1. El código fuente 13.1.2. Cómo funciona el programa 13.2. RESUMEN 13.3. EVALUACIÓN 13.4. EJERCICIOS PROPUESTOS CAPÍTULO 14. LA CIFRA BELLASO 14.1. GIOVAN BATTISTA BELLASO 14.2. LAS CIFRAS DE BELLASO 14.2.1. Sustitución polialfabética con clave 14.3. EL CÓDIGO FUENTE 14.3.1. Cómo funciona el programa 14.4. ESPACIO DE CLAVES Y ATAQUES A LA CIFRA 14.5. RESUMEN 14.6. EVALUACIÓN 14.7. EJERCICIOS PROPUESTOS CAPÍTULO 15. LA CIFRA VIGENÈRE 15.1. LA PRIMERA CIFRA DE VIGENÈRE 15.2. LA CIFRA DE AUTOCLAVE 15.3. LA CIFRA INDESCIFRABLE 15.4. EL CÓDIGO FUENTE DE LA CIFRA VIGENÈRE 15.4.1. Cómo funciona el programa 15.5. CÓDIGO FUENTE DE LA CIFRA DE AUTOCLAVE 15.5.1. Cómo funciona el programa 15.6. FORTALEZA DE LA CIFRA 15.7. RESUMEN 15.8. EVALUACIÓN 15.9. EJERCICIOS PROPUESTOS CAPÍTULO 16. ANÁLISIS ESTADÍSTICO 16.1. ANÁLISIS DE FRECUENCIAS 16.2. ÍNDICE DE FRECUENCIAS 16.3. ÍNDICE DE COINCIDENCIA 16.4. ENTROPÍA 16.5. EL CÓDIGO FUENTE DEL MÓDULO ANÁLISIS 16.5.1. Cómo funciona el programa 16.6. RESUMEN 16.7. EVALUACIÓN 16.8. EJERCICIOS PROPUESTOS CAPÍTULO 17. ROMPIENDO LA CIFRA VIGENÈRE 17.1. ATAQUE DE DICCIONARIO 17.1.1. El código fuente 17.1.2. Cómo funciona el programa 17.2. MÉTODO DE KASISKI 17.2.1. El código fuente 17.2.2. Cómo funciona 17.3. RESUMEN 17.4. EVALUACIÓN 17.5. EJERCICIOS PROPUESTOS CAPÍTULO 18. LA CIFRA PLAYFAIR 18.1. LA CIFRA PLAYFAIR 18.1.1. El algoritmo 18.2. EL PROGRAMA 18.2.1. Cómo funciona 18.3. RESUMEN 18.4. EVALUACIÓN 18.5. EJERCICIOS PROPUESTOS CAPÍTULO 19. LA MÁQUINA ENIGMA1 19.1. PROCEDIMIENTOS DE ENIGMA 19.2. EL PROGRAMA 19.3. CÓMO FUNCIONA EL PROGRAMA 19.3.1. El método isalpha() 19.4. RESUMEN 19.5. EVALUACIÓN 19.6. EJERCICIOS PROPUESTOS SOLUCIONARIO A LOS EJERCICIOS PROPUESTOS ANEXO A.1. DYNAMIC BOXES ENCRYPTION SYSTEM A.2. EL CÓDIGO FUENTE DE AZRAEL A.2.1. El módulo S_Box.py A.2.2. El módulo P_Box.py 6 A.3. EL RETO PREGUNTAS DEL CONCURSO BIBLIOGRAFÍA MATERIAL ADICIONAL ÍNDICE ALFABÉTICO