Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección...

24
Class4crypt Videoclases de criptografía aplicada Class4crypt c4c9.1 - © jorgeramio 2020 Profesor Dr. Jorge Ramió A. Clase c4c9.1 Fundamentos de la cifra simétrica en flujo Madrid, miércoles 13 de mayo de 2020

Transcript of Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección...

Page 1: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Class4cryptVideoclases de criptografía aplicada

Class4crypt c4c9.1 - © jorgeramio 2020

Profesor Dr. Jorge Ramió A.

Clase c4c9.1Fundamentos de la cifra

simétrica en flujoMadrid, miércoles 13 de mayo de 2020

Page 2: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Temario de las clases Class4crypt

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 2

• Módulo 1: Principios básicos de la seguridad

• Módulo 2: Matemáticas discretas en la criptografía

• Módulo 3: Complejidad algorítmica en la criptografía

• Módulo 4: Teoría de la información en la criptografía

• Módulo 5: Fundamentos de la criptografía

• Módulo 6: Algoritmos de criptografía clásica

• Módulo 7: Funciones hash en la criptografía

• Módulo 8: Criptografía simétrica en bloque

• Módulo 9: Criptografía simétrica en flujo

• Módulo 10: Criptografía asimétrica

• Módulo11: Certificados digitales y protocolos criptográficos

• Módulo12: Temas avanzados en criptografía

Page 3: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Clases publicadas en este canal

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 3

1. Presentación de Class4crypt

2. Ciberseguridad y criptografía

3. Algoritmo RSA

4. Operaciones modulares y conjunto de restos

5. Percepción de la inseguridad según las décadas

6. Criptografía asimétrica y la analogía de los candados

7. Protocolo de intercambio de clave de Diffie y Hellman

8. Ataque man in the middle al intercambio de clave de Diffie y Hellman

9. Cifrado por sustitución polialfabética: algoritmo de Vigenère

10. Criptoanálisis al cifrado de Vigenère por el método Kasiski

11. El homomorfismo de los enteros en la criptografía

12. Inverso aditivo, inverso xor e inverso multiplicativo

13. Cálculo de inversos con el algoritmo extendido de Euclides

14. Algoritmo de exponenciación modular rápida

15. Generación de claves RSA y estándar PKCS#1

16. Cifrado y descifrado con RSA parte 1

17. Cifrado y descifrado con RSA parte 2

18. Introducción a la criptografía moderna

19. Comparación entre cifra simétrica y cifra asimétrica

20. Fundamentos de la cifra simétrica en flujo

Page 4: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 4

¡COMENZAMOS!

Page 5: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Módulo 9. Criptografía simétrica en flujo

Lección 9.1. Fundamentos de la cifra simétrica en flujo

1. El código Baudot

2. El cifrado de Vernam con código Baudot

3. Vernam, la libreta de un solo uso OTP y el secreto perfecto

4. Introducción y estructura de un cifrado en flujo

5. Características que debe presentar una buena secuencia cifrante binaria

a) Tamaño de la secuencia

b) Imprevisibilidad de la secuencia

c) Aleatoriedad de la secuencia

Class4crypt c4c9.1

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 5

Page 6: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Código de Baudot (1874) y sus versiones

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 6

Baudot (Murray) binario CCITT-2Jean Maurice Émile Baudot(1845 - 1903)

Page 7: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Vernam y la cifra clásica: los inicios

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 7

Page 8: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

La figura de Gilbert Sandford Vernam

• Gilbert S. Vernam (1890 - 1960), ingeniero en AT&T Bell Labs, inventa en 1917 un cifrador de flujo aditivo y polialfabético

• Posteriormente, co-inventa con Joseph Mauborgne, capitán del Cuerpo de Señales del Ejército de los Estados Unidos, el sistema de cifra denominado one-time pad (OTP) o libreta de un solo uso

• Patenta en 1919 una función de combinación para implementar el xor en la lógica de relés, codificando caracteres del código Baudot

• Ejemplo de Vernam en su patente:

• A con código Baudot = ++--- [+ hoyo en cinta (1), - sin hoyo en cinta (0)]

• B con código Baudot = +--++

• G con código Baudot = -+-++ [es la cifra de A con B]

• Haciendo la cifra G con B se recupera A

• Una de las patentes más importantes en la historia de la criptografía (NSA)

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 8

Page 9: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

El cifrado de Vernam

• Se usaba el código Baudot de 5 caracteres o bits

• La operación de cifra era la función XOR implementada con relés

• La clave K es una libreta de un solo uso, one-time pad, compartida con anterioridad y de forma segura entre emisor y receptor

• La clave debía ser aleatoria y tan larga o más que el mensaje

• El sistema de descifrado era igual que el de cifrado por la involución de la función XOR

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 9

Clave OTP compartida de forma segura

Mensaje

Clave

Criptograma

Clave Clave OTP compartida de forma segura

CIFRADO DESCIFRADOK (one-time pad)

Mensaje

Page 10: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Ejemplo de cifrado de Vernam

• CIFRADO

• 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

• DES CIFRADO

• U V = 00111 11110 = 11001 = B

• H E = 10100 00001 = 10101 = Y

• G R = 11010 01010 = 10000 = T

• F N = 01101 01100 = 00001 = E

• I A = 00110 00011 = 00101 = S

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 10

Con el código Baudot de 5 bits, cifrar el mensaje M = BYTES con clave K = VERNAM

• El esquema de Vernam es el único cifrador matemáticamente seguro• Cuenta con secreto perfecto, demostrado por Claude Shannon• Es imposible de criptoanalizar pues la clave K se usa una sola vez, es aleatoria y de longitud

igual o mayor que el propio mensaje

Page 11: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Vernam, cifra en flujo y secreto perfecto

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 11

• Para que un sistema de cifra en flujo (en criptografía clásica cifra polialfabética monográmica) tenga un secreto perfecto, deberá cumplir las condiciones del cifrador de Vernam• Tener una clave aleatoria• Que la longitud de la clave sea de igual tamaño o mayor que la del mensaje• Que dicha clave (libreta) sea de un único uso (one-time pad)

• Para mensajes relativamente pequeños, se puede aceptar que la clave (cinta) sea intercambiada entre emisor y receptor previamente. Para mensajes muy grandes, esto ya no es práctico

• Por tanto, habrá que inventar un sistema (circuito) que permita generar la clave en ambos extremos, emisor y receptor, y no necesariamente de forma simultánea

• Esto hará que la clave ya no sea aleatoria sino pseudoaleatoria y, por lo tanto, se pierde el secreto perfecto, al menos en teoría

Page 12: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Introducción a la cifra en flujo

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 12

• El mensaje en claro se cifra bit a bit o byte a byte, mediante una operación XOR entre el texto en claro y una secuencia cifrante Si

• Emisor y receptor comparten de forma segura una semilla secreta K y un circuito generador de la secuencia de bits Si que permita generar secuencias binarias pseudoaleatoria y seguras

• Para descifrar, se vuelve a realizar el XOR entre criptograma y la misma secuencia Si en destino, pues la función XOR es involutiva

Circuito Generador

K

Mi

Si

Ci Ci

Si Circuito Generador

K

Mi

CIFRADO DESCIFRADOSecuencia cifrante

Page 13: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Características secuencias cifrantes (1)

• La secuencia cifrante Si debe tener un período muy elevado, tanto o más que el propio mensaje, para que la clave no se repita durante la operación de cifrado

• En la práctica, se usará una semilla K de mínimo 120 bits para generar períodos de secuencia cifrante mínimos de 2120 bits, es decir 1037 bits

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 13

• Pregunta recurrente: ¿es suficientemente grande este valor de bits de Si? 1. “El ingenioso hidalgo Don Quijote de La Mancha” tiene algo más de dos

millones de caracteres, espacio en blanco incluido, menos de 2*107 bits 2. Cisco: tráfico anual de móviles en Internet 2022: 1 zettabyte (270 bytes)

El periodo de Si

Page 14: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Magnitudes de bytes y tráfico en Internet

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 14

https://www.allaccess.com/merge/archive/31294/infographic-what-happens-in-an-internet-minute

En 2020 estamos ya en estos órdenes de magnitud en cuanto a datos en Internet

El peso aproximado de todo Internet en el año 2018 era de 10 zettabytes, en 2020 este valor se podría duplicar

Page 15: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Características secuencias cifrantes (2)

• Para generar la misma secuencia cifrante Si en fase, ambos extremos usarán una semilla K que no puede ser un valor demasiado pequeño

• Para protegerse de ataques por fuerza bruta la semilla debe tener un tamaño suficientemente grande, por ejemplo sobre los 100 bits, para generar secuencias de al menos 2100 bits

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 15

• Pregunta recurrente: ¿la semilla K es lo mismo que la secuencia de cifra Si? • No. La semilla K es el secreto que deben guardar emisor y receptor y Si es la

secuencia de bits que generan para cifrar. La seguridad del sistema de cifra recae en el tamaño de la semilla y en la idoneidad del circuito generador

Tamaño de la semilla K

Page 16: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Características secuencias cifrantes (3)

• Debe ser fácil su implementación y que permita obtener algoritmo rápidos

• Se puede lograr con hardware y con software mediante diferentes sistemas o circuitos

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 16

Implementación

Imprevisibilidad

• Aunque se conozca una parte de la secuencia cifrante Si, la probabilidad de predecir el próximo bit no debería ser superior al 50%

• Una función aleatoria es, por definición, imprevisible

Page 17: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Características secuencias cifrantes (4)

• Si debe aproximarse a una secuencia aleatoria

• Cada generador de Si debe cumplir con los 3 Postulados de Golomb: “Shift Register Sequences”, Holden-Day, Inc., San Francisco (1967), 2a ed. Aegean Park Press (1982)

• Postulado G1: mitad de 0s y de 1s (probabilidad 50%)

• Postulado G2: probabilidad 50%, independiente de bits

• Postulado G3: la información de Si derivada de zonas con diferentes cadenas de bits conocidos, debe ser nula

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 17

• Pregunta recurrente: ¿existen otros test de aleatoriedad de cadenas binarias? • Sí. Los postulados de Golomb son solamente los más básicos, aunque los más

simples de entender. Otros test más avanzados: Diehard, Dieharder y NIST

Aleatoriedad de Si

Solomon Golomb (1932 – 2016)

Page 18: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Prácticas con Criptoclásicos y FlujoLab

• Criptoclásicos v2.1• http://www.criptored.upm.es/software/sw_m001c.htm

• Con Criptoclásicos cifrar con Vernam el texto en claro “Cifrado de Vernam” con la clave “Tiene secreto perfecto”

• FlujoLab: software para la generación de claves y el seguimiento de cifradores de flujo• http://www.criptored.upm.es/software/sw_m001m.htm

• Con FlujoLab, cifrar el texto en claro “Mamá dice que la vida es como una caja de bombones, nunca sabes el que te va a tocar.” con una secuencia cifrante de 1.023 bits generada con un registro de desplazamiento con realimentación lineal LFSR, polinomio primitivo asociado x10 + x3 + 1 y semilla 1101011111

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 18

Page 19: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Conclusiones de la lección 9.1

• La cifra en flujo tiene como precedente el cifrado de Vernam (1917), que cifra los caracteres representados con el código Baudot (1874), usando para ello una cinta perforada: con hoyo significa un 1 y sin hoyo significa un 0

• Vernam patenta en 1919 un sistema de relés que permite ejecutar la función XOR, un invento vital según la NSA . Posteriormente inventa, junto a Joseph Mauborgne, el sistema de libreta de un solo uso, one-time pad OTP

• El cifrado de Vernam es el único sistema con secreto perfecto, al ser la clave aleatoria, de un solo uso y mayor o de igual longitud que el mensaje

• En cifra de flujo moderna la secuencia de clave deberá generarse en emisión y en recepción, partiendo de una semilla segura previamente intercambiada

• Las secuencias cifrantes deberán cumplir con principios de aleatoriedad

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 19

Page 20: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Lectura extra recomendada (1)

• Cryptology and Data Secrecy: The Vernam Cipher• http://www.pro-technix.com/information/crypto/pages/vernam_base.html

• Gilbert Vernam (Wikipedia)• https://en.wikipedia.org/wiki/Gilbert_Vernam

• Securing Record Communications:The TSEC/KW-26, Melville Klein (NSA)• https://web.archive.org/web/20121010011445/https://www.nsa.gov/about/_files/cry

ptologic_heritage/publications/misc/tsec_kw26.pdf

• Baudot code (Wikipedia)• https://en.wikipedia.org/wiki/Baudot_code

• Crypto Museum• https://www.cryptomuseum.com/crypto/baudot.htm

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 20

Page 21: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Lectura extra recomendada (2)

• Cisco: Mobile internet traffic will approach a zettabyte by 2022, Kyle Wiggers, 2019• https://venturebeat.com/2019/02/19/cisco-mobile-internet-traffic-will-approach-a-

zettabyte-by-2022/

• Zettabyte Era (Wikipedia - Cisco)• https://en.wikipedia.org/wiki/Zettabyte_Era

• Comprobando la aleatoriedad (INCIBE Cert)• https://www.incibe-cert.es/blog/comprobando-aleatoriedad

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 21

Fin de la lección

Page 22: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Por favor colabora…

• Si, en general, te ha gustado el vídeo…

• Si has aprendido algo nuevo…

• Si has podido reforzar algún conocimiento que ya tenías…

• Entonces, por favor, ponle un “Me gusta” al vídeo

• Si deseas expresar alguna opinión sobre el contenido de esta clase o tienes alguna duda, hazlo aquí en YouTube. Todos los comentarios serán muy bien recibidos y las dudas contestadas a la mayor brevedad posible

• Muchas gracias

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 22

Page 23: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Otras videoclases del proyecto Class4crypt

• https://www.youtube.com/user/jorgeramio

• Más información en canal Twitter• https://twitter.com/class4crypt

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 23

Page 24: Class4crypt Aula Virtual de Criptografía...Módulo 9. Criptografía simétrica en flujo Lección 9.1. Fundamentos de la cifra simétrica en flujo 1. El código Baudot 2. El cifrado

Licencia y créditos

• Estas videoclases y la documentación utilizada en ellas, se encuentran bajo licencia CreativeCommons tipo CC BY-NC-ND 4.0

• Reconocimiento - No Comercial - Sin Obra Derivada

• Permite que otros puedan descargar esta obra y compartirla con otras personas, siempre que se reconozca su autoría, pero no se puede cambiar de ninguna manera su contenido ni se puede utilizar comercialmente

• Música:

• Enter_Blonde, Max Surla, Media Right Productions, YouTube Audio Library - Free Music https://www.youtube.com/audiolibrary/music?nv=1

Class4crypt c4c9.1 - © jorgeramio 2020 Lección 9.1 - página 24