class4crypt aula virtual de criptografíamódulo 9. criptografía simétrica en flujo lección 9.2....

30
Class4crypt Videoclases de criptografía aplicada Class4crypt c4c9.2 - © jorgeramio 2020 Profesor Dr. Jorge Ramió A. Clase c4c9.2 Registros desplazamiento lineales y no lineales Madrid, martes 19 de mayo de 2020

Upload: others

Post on 28-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Class4cryptVideoclases de criptografía aplicada

Class4crypt c4c9.2 - © jorgeramio 2020

Profesor Dr. Jorge Ramió A.

Clase c4c9.2Registros desplazamiento

lineales y no linealesMadrid, martes 19 de mayo de 2020

Page 2: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Temario de las clases Class4crypt

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - 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íaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Clases publicadas en este canal

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - 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

21. Registros de desplazamiento realimentados lineales y no lineales

Page 4: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 4

¡COMENZAMOS!

Page 5: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

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

Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR

1. Generadores de secuencias cifrantes

2. Registro de desplazamiento realimentado

3. Registros de desplazamiento realimentados no lineales NLFSR

4. Registros de desplazamiento realimentados lineales LFSR1. Registros con polinomio asociado factorizable

2. Registros con polinomio asociado irreducible

3. Registros con polinomio asociado primitivo

Class4crypt c4c9.2

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 5

Page 6: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generadores de secuencias cifrantes

• Los generadores de la secuencia cifrante pueden ser de los siguientes tipos:• Registros de desplazamiento realimentados. Por ejemplo, el algoritmo A5 usado

en telefonía móvil GSM o 2G, entre los años 1990 y 2000

• Registros numéricos. Por ejemplo, el algoritmo RC4, usado desde 1995 en WEP y WPA de los sistemas inalámbricos, y en SSL/TLS de Internet hasta 2014

• Algoritmos de cifra simétrica en bloque. Por ejemplo, el algoritmo AES en modos de cifra contador CTR o contador con campos de Galois GCM

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 6

Circuito Generador

K

Mi

Si

Ci Ci

Si Circuito Generador

K

Mi

CIFRADO DESCIFRADOSecuencia cifrante

Page 7: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Registro de desplazamiento realimentado

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 7

• Los FSR (Feedback Shift Register) son la base de muchos de los generadores de secuencias cifrantes. Lo conforman un conjunto de n celdas {S1 ... Sn} en las que se almacena un bit (0 o 1)

• Las celdas contendrán inicialmente un valor 0 o 1, que será parte de la semilla o clave inicial

• El circuito estará controlada por un reloj, produciéndose un desplazamiento hacia la derecha del registro en cada pulso de reloj

• Sn se convierte en el nuevo bit de Si y S1 se obtiene como resultado de aplicar la función F al contenido de las n celdas (0 o 1) conectadas, antes del desplazamiento hacia la derecha del registro. De forma similar se opera con los siguientes bits del registro

S1 S2 S3 Sn

Función F

Si

Sí o No

Page 8: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generador con registro de desplazamiento

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 8

Generador de secuencia cifrante con registro de desplazamiento genérico

S1 S2 S3 S4 SnSn-1

F = g[a(t-1)a(t-2) ...a(t-n+1)] a(t-n)

SiBit que se transmite

Realimentación

Desplazamiento

Conexiones de celdas

Genera una secuencia con un período máximo igual a 2n

a(t-1) a(t-2) a(t-3) a(t-4) a(t-n+1) a(t-n)

Non Linear Feedback Shift RegisterRegistros de Desplazamiento Realimentados No Linealmente

NLFSR

LFSR

?

a(i) es el contenido de la celda i | Ci es 0 si no está conectada y 1 si está conectada

Si es bit 0 o 1

Linear Feedback Shift RegisterRegistros de Desplazamiento Realimentados Linealmente

C1 C2 C3 Cn-1 Cn

Page 9: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generadores con registros NLFSR

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 9

Ejemplo con generador NLFSR de cuatro celdas (n = 4)

S1 S2 S3 S4

AND

XOR

NOT

OR

Si

Sea la semilla: S1S2S3S4 = 0111

0 0

1

0

0 1 1 1

1Este es el estado de las celdas y operaciones previas en el registro, antes de realizar el desplazamiento de un bit hacia a la derecha

El bit S4 (1) saldrá como Si y los demás bits (0, 1, 1) se desplazan a la derecha y dejan a la celda S1 vacía, sin valor

S1 S2 S3 S4

Primeraoperación

Page 10: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generadores con registros NLFSR (cont.)

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 10

S1 S2 S3 S4

AND

XOR

NOT

OR

Si

Semilla: S1S2S3S4 = 0111

0 0

1

0

0 1 1 1

1

1

• Si = 1110 1100 1010 0001. Su período es máximo: Tmáx = 2n = 24 = 16• Se conoce como secuencia de Bruijn. El contenido de las celdas pasará por

todos los estados posibles del registro, desde 0000 hasta 1111, no en orden

1101

Observa que se transmite primero S4S3S2S1 (semilla al revés) y luego los restantes bits de la secuencia S5S6S7S8S9S10S11S12S11S14 S15S16

S1 S2 S3 S4

Estado inicial

Page 11: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Práctica de NLFSR con FlujoLab

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 11

FlujoLab: http://www.criptored.upm.es/software/sw_m001m.htm

Page 12: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generadores con registros LFSR

• La función F es el XOR de algunas celdas, ya que cada Ci puede valer 0 (si no está conectada) o 1 (si está conectada), excepto Cn que siempre valdrá 1. La secuencia será: S1(t) = CnSn(t-1) …. C2S2(t-1) C1S1(t-1)

• A esta función de conexión de celdas se le asociará un polinomio, que nos permitirá clasificar los generadores en muy malos, malos y buenos para generar claves. Esta función es f(x) = Cnxn + Cn-1xn-1 + …. + C2x2 + C1x + 1

• Aquí el período máximo Tmáx = 2n – 1, ya que se podrá pasar por todos los estados del registro, excepto n ceros. Con n ceros el registro no evoluciona al tener sólo un XOR

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 12

S1 S2 S3 S4

Si

C1 C2 C3 C4

? ? ?

Page 13: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Tipos de polinomios usados en LFSR

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 13

• Polinomios factorizables (cuando pueden expresarse como producto de dos o más polinomios de menor grado). Se obtienen secuencias con un periodo inferior a Tmáx y estos valores además dependen de la semilla utilizada

• Polinomios irreducibles (cuando son no factorizables). En este caso se obtienen secuencias con un periodo fijo, que no depende de la semilla, pero son inferior a Tmáx al ser un múltiplo de ésta

• Polinomios primitivos (cuando, además de no factorizables, generan todos los restos). Son los más adecuados y los que deben usarse, ya que se obtienen secuencias máximas (m-secuencias) con periodo fijo Tmáx = 2n - 1

• En bibliografía se entrega una página para la factorización de polinomios y otras páginas con listas de polinomios primitivos

Page 14: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generador LFSR con f(x) factorizable

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 14

Generador f(x) factorizable de cuatro celdas (n = 4)

S1 S2 S3 S4

Si

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+1

Tras la reducción módulo 2

Luego f(x) = x4 + x2 +1

• Este polinomio es muy mala elección• T 2n - 1• Y además T dependerá de la semilla,

habiendo períodos secundarios

Page 15: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Ejemplo LFSR con f(x) factorizable (1/2)

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 15

S1 S2 S3 S4

Si

f(x) = x4 + x2 + 1

0 1 1 1

Registro Bit Si

0111 1

0011 1

1001 1

1100 0

Operación subrayados S1 = S2 S4 es el bit de reemplazo en rojo

Sea la semilla: S1S2S3S4 = 0111

Registro Bit Si

1110 0

1111 1

0111 … semilla

Si = 111001 T = 6

Page 16: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Ejemplo LFSR con f(x) factorizable (2/2)

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 16

S1 S2 S3 S4

Si

f(x) = x4 + x2 + 1

1 1 0 1

Registro Bit Si

1101 1

0110 0

1011 1

1101

Operación subrayados S1 = S2 S4 es el bit de reemplazo en rojo

Sea la semilla: S1S2S3S4 = 1101

… semilla

• Si = 101• T = 3• T es un periodo secundario,

aquí es incluso menor que la propia semilla

Page 17: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Prácticas de LFSR con f(x) factorizable

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 17

Page 18: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generador LFSR con f(x) irreducible

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 18

Generador f(x) irreducible de cuatro celdas (n = 4)

S1 S2 S3 S4

Si

Sea f(x) = x4 + x3 + x2 + x + 1

• Es imposible factorizar el polinomio f(x) en dos o más polinomios f(xi) de grado menor

• Ahora T ya no depende de la semilla, es un valor constante• Este polinomio irreducible es mejor que el anterior factorizable• Pero el periodo será un factor de Tmáx = 2n – 1 y no obtendremos un período

máximo

Page 19: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

S1 S2 S3 S4

Si

Ejemplo LFSR con f(x) irreducible

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 19

f(x) = x4 + x3 + x2 + x + 1

0 0 0 1

Registro Bit Si

0001 1

1000 0

1100 0

0110 0

Operación con todos S1 = S1 S2 S3 S4

marcando el bit de reemplazo en rojo

Sea la semilla: S1S2S3S4 = 0001

Registro Bit Si

0011 1

0001 … semilla

• Si = 10001 con T = 5• Tmáx = 2n – 1 = 24 – 1 = 15

Page 20: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Prácticas de LFSR con f(x) irreducible

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 20

Page 21: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Generador LFSR con f(x) primitivo

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 21

Generador f(x) primitivo de cuatro celdas (n = 4)

S1 S2 S3 S4

Si

Sea f(x) = x4 + x + 1

• El polinomio f(x) no es factorizable mediante dos o más polinomios f(xi) de grado menor

• T será un valor constante y el máximo posible para registros lineales• Tmáx = 2n – 1, característico de las denominadas m-secuencias• Interesante: habrá (2n – 1)/n polinomios primitivos para un generador LSFR

primitivo de grado n

Page 22: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Ejemplo LFSR con f(x) primitivo

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 22

Sea la semilla: S1S2S3S4 = 1001

Registro Bit Si

1001 1

0100 0

0010 0

0001 1

S1 S2 S3 S4

Si

1000 0

T = 2n - 1T = 24 - 1T = 15

1100 0

1110 0

1111 1

0111 1

1011 1

0101 1

1010 0

1101 1

0110 0

0011 1

1001

1 0 0 1

f(x) = x4 + x + 1 Si = 100100011110101

… semilla

Operación con bits subrayados, rojo bit de reemplazo S1 = S1 S4

Page 23: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Prácticas de LFSR con f(x) primitivo

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 23

Page 24: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Prácticas de LFSR con f(x) general

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 24

Page 25: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Refuerzo: píldora formativa Thoth nº 33

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 25

https://www.youtube.com/watch?v=vfq3onw-uiM

Page 26: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Conclusiones de la lección 9.2

• Los registros de desplazamiento realimentados son las máquinas o circuitos utilizados en los comienzos de los cifradores de flujo, en la década de los 90

• Los registros no lineales, conocidos como NLFSR contienen, además de la puerta xor que conecta el bit de la última celda, un conjunto de puertas lógicas que conectan las otras celdas al xor. No interesantes su uso porque en algunos casos se obtiene como máximo un periodo igual a 2n bits, siendo n el número de celdas, pero a costa de un alto coste computacional

• Los registros lineales, conocidos como LFSR, contienen solamente una puerta xor como realimentación y están representados por un polinomio asociado. Si éste el factorizable, el periodo no es máximo y depende de la semilla. Si es irreducible, no depende de la semilla pero es un factor del máximo. Y si es primitivo, se obtiene un periodo máximo 2n - 1 bits, casi igual que con NLFSR

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 26

Page 27: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Lectura extra recomendada

• Guion píldora nº 33: ¿Cómo se usan los registros de desplazamiento en la cifra?, Jorge Ramió, 2015• http://www.criptored.upm.es/thoth/material/texto/pildora033.pdf

• Wolfram|Alpha, Factoring Polynomials Calculator

• https://www.wolframalpha.com/widgets/gallery/view.jsp?id=15b128aa42d812ef9f3a9640bf1fb3fa

• Complete list of binary irreducible polynomials up to degree 11, Joerg Arndt, 2003

• https://www.jjj.de/mathdata/all-irredpoly.txt

• Primitive Polynomial List, Arash Partow

• http://www.partow.net/programming/polynomials/index.html

• Primitive Polynomials for the Field GF(2), Degree 2 Through Degree 16, Peter M. Maurer

• https://baylor-ir.tdl.org/baylor-ir/bitstream/handle/2104/8792/GF2%20Polynomials.pdf?sequence=1

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 27

Fin de la lección

Page 28: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

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.2 - © jorgeramio 2020 Lección 9.2 - página 28

Page 29: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

Otras videoclases del proyecto Class4crypt

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

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

Class4crypt c4c9.2 - © jorgeramio 2020 Lección 9.2 - página 29

Page 30: Class4crypt Aula Virtual de CriptografíaMódulo 9. Criptografía simétrica en flujo Lección 9.2. Registros de desplazamiento realimentados lineales y no lineales: LFSR y NLFSR 1

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.2 - © jorgeramio 2020 Lección 9.2 - página 30