class4crypt aula virtual de criptografía · •módulo 4: teoría de la información en la...

25
Class4crypt Videoclases de criptografía aplicada Class4crypt c4c9.3 - © jorgeramio 2020 Profesor Dr. Jorge Ramió A. Clase c4c9.3 Aleatoriedad en registros LFSR primitivos Madrid, martes 26 de mayo de 2020

Upload: others

Post on 05-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Class4crypt Aula Virtual de 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

Class4cryptVideoclases de criptografía aplicada

Class4crypt c4c9.3 - © jorgeramio 2020

Profesor Dr. Jorge Ramió A.

Clase c4c9.3Aleatoriedad en registros

LFSR primitivosMadrid, martes 26 de mayo de 2020

Page 2: Class4crypt Aula Virtual de 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

Temario de las clases Class4crypt

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - 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 4: Teoría de la información en la criptografía •Módulo 5: Fundamentos de la criptografía •Módulo 6: Algoritmos de

Clases publicadas en este canal

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

22. Aleatoriedad en registros LFSR con polinomio primitivo

Page 4: Class4crypt Aula Virtual de 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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 4

¡COMENZAMOS!

Page 5: Class4crypt Aula Virtual de 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

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

Lección 9.3. Aleatoriedad en registros LFSR con polinomio primitivo

1. Postulado de Golomb R1

2. Rachas de bits

3. Postulado de Golomb R2

4. Autocorrelación fuera de fase

5. Postulado de Golomb R3

6. Prácticas con el software FlujoLab

Class4crypt c4c9.3

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 5

Page 6: Class4crypt Aula Virtual de 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

La seguridad en la cifra en flujo

• La seguridad de los sistemas de cifra en flujo depende exclusivamente de la secuencia cifrante Si que debe tener las siguientes características:• La secuencia Si debe tener una longitud en bits mayor que la del mensaje M

• Aunque la secuencia Si sea pseudoaleatoria, debe tener un apariencia aleatoria

• La semilla K con la cual se inicia el circuito generador de secuencia Si deberá usarse una sola vez (one-time pad)

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - 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í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

Aleatoriedad de una secuencia de bits LFSR

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 7

• Existen varios test para poder demostrar la aleatoriedad de una secuencia. Por ejemplo, A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applicationsdel NIST, Diehard y Dieharder (ver bibliografía)

Solomon Golomb (1932 – 2016)

• No obstante, en esta primera etapa vamos a usar los test básicos propuestos por Solomon Golomb en Golomb’s Randomness Postulates• R1: Postulado de Golomb 1

• R2: Postulado de Golomb 2

• R3: Postulado de Golomb 3

Page 8: Class4crypt Aula Virtual de 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

Postulado R1 de Golomb

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 8

• Equiprobabilidad de bits tomados independientemente

• Deberá existir igual número de ceros que de unos. Se acepta como máximo una diferencia igual a la unidad (en favor de los unos)

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 T = 15S1

• La secuencia S1 cumple con R1 pues hay 8 unos y 7 ceros

1 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 T = 16S2

• La secuencia S2 no cumple con R1 pues hay 9 unos y 7 ceros

Page 9: Class4crypt Aula Virtual de 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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 9

• Si una secuencia Si como la indicada cumple con R1, quiere decir que la probabilidad de recibir un bit 1 es igual a la de recibir un bit 0, es decir un 50% o equiprobabilidad

• Por lo tanto, a lo largo de una secuencia Si, independientemente de cuál bit se analiza, en media será igualmente probable recibir un 1 que un 0, pues en la secuencia hay mitad de unos y mitad de ceros

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0Si

Significado del postulado R1 de Golomb

Ejemplo: Si 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 01 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 01 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

Page 10: Class4crypt Aula Virtual de 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

Postulado R2 de Golomb y rachas de bits

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 10

• Equiprobabilidad de próximo bit con secuencia anterior conocida

• 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., lo que se conoce como una distribución geométrica

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 T = 15Si

• Pero, ¿qué son las rachas de bits en una secuencia binaria?

• Una racha de bits es un conjunto de L bits (L = 1, 2, 3, …) iguales, separados por bits diferentes. Así, 010 es una racha de longitud de uno de 1s, 1001 es una racha de longitud dos de 0s y 01110 es una racha de longitud tres de 1s

Page 11: Class4crypt Aula Virtual de 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

Rachas de bits de una secuencia binaria

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 11

Rachas de una secuencia Si de período T = 15

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

Rachas de 0s

Racha de 00s

Racha de 1s

El próximobit será un 1

El bit anteriorera un 0

Racha de 1111s

Racha de 000s

Racha de 11s

Esta distribución tan particular se comentará más adelante...

Racha de 1s

Page 12: Class4crypt Aula Virtual de 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

Distribución de las rachas de bits en Si

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 12

• Las rachas deberán seguir una distribución estadística, de forma que la secuencia cifrante pseudoaleatoria Si tenga un comportamiento lo más parecido a una secuencia aleatoria

• Para que esto se cumpla, es obvio que será necesario que haya mayor número de rachas de longitud corta (L = 1, 2, 3, …) que número de rachas de longitud larga (L = … 7, 8, 9, …), como se observaba en el ejemplo de la diapositiva anterior

• Este tipo de distribución seguirá una progresión geométrica

• Es decir, una secuencia Si podría tener 256 rachas de longitud uno, 128 rachas de longitud dos, 64 rachas de longitud tres, 32 rachas de longitud cuatro, etc., siempre igual cantidad de rachas de 0s que de 1s

Page 13: Class4crypt Aula Virtual de 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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 13

• Si una secuencia Si como la indicada cumple con R2, quiere decir que la probabilidad de recibir un bit 1 o un bit 0, después de haber recibido un conjunto de bits 0s o 1s sigue siendo la misma, es decir un 50%

• En este caso de T = 15, conocido un 1 el par 10 será igual de probable que el par 11. Recibido un 0, las cadenas 00 y 01 son equiprobables. Lo mismo un conocido 00, 01, 10, 11, 001, 010, 011, 100, 101, 110 o 111

• Es decir, existirá una equiprobabilidad a pesar de los bits ya conocidos

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 T = 15Si

Significado del postulado R2 de Golomb

Si 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 01 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 01 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

Page 14: Class4crypt Aula Virtual de 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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 14

Importancia del postulado R2 de Golomb

• Cuando una secuencia Si cumple con R2, significa que el registro LFSR pasará por todos los estados o restos posibles del mismo, desde 0000…001 hasta 1111…111, no orden lógicamente

• Por lo tanto, se obtendrá la mayor secuencia posible que puede aportar ese registro, con un periodo Tmáx = 2n – 1

• Esto es importante porque, además de la equiprobabilidad del próximo bit a pesar de conocer los anteriores bits, que es vital de cara para la apariencia de aleatoriedad de la secuencia, obtenemos una secuencia máxima, que también lo estábamos buscando

• Pero esto también entregará pistas al atacante…

Page 15: Class4crypt Aula Virtual de 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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 15

Polinomio primitivo, rachas y m-secuencias

• Cumplir con R2 nos llevará a un periodo Tmáx = 2n – 1, lo que se conoce como m-secuencia

• Las m-secuencias solamente se logran con un LFSR que tenga polinomio asociado primitivo

• Habrá un total de 2n-1 rachas en una m-secuencia (50% serán de 1s y 50% serán de 0s)

• Sea f(x) = x11 + x2 + 1 con periodo Tmáx = 211 – 1 = 2.047

siempresiempre

Page 16: Class4crypt Aula Virtual de 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

Postulado R3 de Golomb y AC(k)

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 16

• La autocorrelación fuera de fase AC(k) de una cadena o secuencia de bits, desplazada k bits, debe permanecer constante para todos los desplazamientos, es decir, desde k = 1 hasta k = n – 1

• AC(k) = (A – F)/T, donde A son los aciertos (bits iguales) y F son los fallos (bits diferentes) al comparar la cadena con su desplazada

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

1 1 1 0 1 0 1 1 0 0 1 0 0 0 1

Si k = 1

A =

F =

A=7; F=8

AC(1) = -1/15

Si

Page 17: Class4crypt Aula Virtual de 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

Significado del postulado R3 de Golomb

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 17

1 0 0 1 1 1 0Si

0 0 1 1 1 0 1 AC(1) = (3-4)/7 = -1/7

0 1 1 1 0 1 0

k = 1

AC(2) = (3-4)/7 = -1/7k = 2

k = 3 1 1 1 0 1 0 0 AC(3) = (3-4)/7 = -1/7

1 1 0 1 0 0 1 AC(2) = (3-4)/7 = -1/7k = 4

k = 5 1 0 1 0 0 1 1 AC(3) = (3-4)/7 = -1/7

k = 6 0 1 0 0 1 1 1 AC(3) = (3-4)/7 = -1/7

Aciertos: color

Fallos: color

• Si una secuencia Si cumple con el postulado R3, quiere decir que independientemente del trozo de secuencia elegido o conocido por el atacante, no tendrá una mayor cantidad de información que en otro trozo cualquiera de la misma

• Será imposible entonces deducir cómo continúa la secuencia desde ese trozo u obtener información de otro tipo… “analogía” con el ataque de Kasiski a Vigenère…

Page 18: Class4crypt Aula Virtual de 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

Prácticas de postulados de Golomb

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 18

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

Page 19: Class4crypt Aula Virtual de 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

Refuerzo: píldora formativa Thoth nº 32

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 19

https://www.youtube.com/watch?v=fLN-jYUlsv8

Page 20: Class4crypt Aula Virtual de 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

Conclusiones de la lección 9.3

• Aunque existen muchos test mejores y más eficientes, una buena primera aproximación para poder apreciar las características de aleatoriedad de una secuencia Si cifrante en un LFSR, es estudiar los postulados de Golomb

• El postulado de Golomb R1 habla de la equiprobabilidad de encontrar un bit 1 o un bit 0 en cualquier lugar de la secuencia

• El postulado de Golomb R2 habla de la misma equiprobabilidad de encontrar un bit 1 o un bit 0 en la secuencia, pero conociendo de antemano un conjunto de bits anteriores. Está relacionado con las rachas de bits

• El postulado de Golomb R3 habla de la nula información que debería entregar un trozo de la secuencia Si sobre los bits precedentes o los bits posteriores. Está relacionado con la autocorrelación fuera de fase AC(k)

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 20

Page 21: Class4crypt Aula Virtual de 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

Lectura extra recomendada (1)

• A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications, NIST, Revised 2010

• https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-22r1a.pdf

• Diehard tests

• https://en.wikipedia.org/wiki/Diehard_tests

• Dieharder, Robert G. Brown's General Tools Page

• https://webhome.phy.duke.edu/~rgb/General/dieharder.php

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 21

Page 22: Class4crypt Aula Virtual de 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

Lectura extra recomendada (2)

• Golomb’s Randomness Postulates

• https://link.springer.com/referenceworkentry/10.1007%2F978-1-4419-5906-5_351

• http://www.iitg.ac.in/pinaki/Golomb.pdf

• Shift Register Sequences, Golomb Solomon, Aegean Park Press, Laguna Hills, CA, 1982

• https://www.amazon.com/exec/obidos/ASIN/0894120484/acmorg-20

• Guion píldora nº 32: ¿Qué son los postulados de Golomb?, Jorge Ramió, 2015

• http://www.criptored.upm.es/thoth/material/texto/pildora032.pdf

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 22

Fin de la lección

Page 23: Class4crypt Aula Virtual de 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

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.3 - © jorgeramio 2020 Lección 9.3 - página 23

Page 24: Class4crypt Aula Virtual de 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

Otras videoclases del proyecto Class4crypt

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

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

Class4crypt c4c9.3 - © jorgeramio 2020 Lección 9.3 - página 24

Page 25: Class4crypt Aula Virtual de 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

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.3 - © jorgeramio 2020 Lección 9.3 - página 25