03 - Fundamentos

36
Fundamentos Criptografía Jorge Eterovic - Marcelo Cipriano 2015

description

Fundamentos de Criptografía

Transcript of 03 - Fundamentos

Page 1: 03 -  Fundamentos

Fundamentos

Criptografía

Jorge Eterovic - Marcelo Cipriano 2015

Page 2: 03 -  Fundamentos

Bases teóricas de los criptosistemas modernos

Teoría de la Información

Teoría de Números

Teoría de la Complejidad Algorítmica

Criptosistemas modernos

Page 3: 03 -  Fundamentos

Teoría de la Información

• El estudio de Claude Shannon (1948) permitió: – Cuantificar la cantidad de información – Medir la entropía de la información – Definir un sistema con secreto perfecto – Calcular la redundancia del lenguaje – Encontrar la distancia de unicidad

• Permite medir la cantidad de información de un mensaje – Basado en el n° medio de bits necesario para codificar todos los

posibles mensajes – Toma como referencia el uso de letras

Page 4: 03 -  Fundamentos

Teoría de la Información - Información en un mensaje

• En función de su – Extensión – Utilidad – Sorpresa – Probabilidad

• A menor probabilidad de aparición, mayor cantidad de información

Page 5: 03 -  Fundamentos

Teoría de la Información – Entropía de un mensaje

• Se define como H(X) siendo X una variable aleatoria

• Es el valor medio ponderado de la cantidad de información de los estados del mensaje

• Es una medida de la incertidumbre media sobre una variable aleatoria y el n° de bits de información

• Propiedades – Es no negativa – Se anula sólo si un estado de la variable es 1 y el resto 0 – Es máxima cuando todos los valores de X son equiprobables

Page 6: 03 -  Fundamentos

Teoría de la Información – Entropía de un mensaje

• Sea un fenómeno de grado de indeterminación k con estados equiprobables

• La probabilidad que se dé uno de esos estados será: p = 1/k

• Luego, la cantidad de información es:

CI = log2 (k/1) = log2 [1/(1/k)] = - log2 p

• Si cada estado tiene una probabilidad distinta pi la entropía H será la suma ponderada de la cantidad de información:

H = - p1 log2 p1 - p2 log2 p2 - ... - pk log2 pk

k H = - Σ pi log2 pi i = 1

Page 7: 03 -  Fundamentos

Teoría de la Información - Definiciones

Codificador óptimo

• Aquel que para codificar un mensaje X usa el menor número posible de bits

Secreto criptográfico perfecto

• El conocimiento del texto cifrado no proporciona información acerca del mensaje

• La probabilidad de acierto al recibir el elemento (i+1) es igual que en el estado i

Distancia de unicidad

• Bloque N de texto cifrado mínimo necesario para que se pueda intentar con cierta expectativa de éxito un ataque en busca de la clave

Page 8: 03 -  Fundamentos

Teoría de la Información – Trabajo y criptoanálisis

• A: Mucho trabajo para obtener algo coherente

• B: Más cantidad de criptogramas, menos trabajo

• C: Se anula la equivocación de la clave: H(M/C) = 0

• D: Solución única

Cantidad de Trabajo Q H(M/C) n N Cantidad de caracteres

(A) (B)

(C) (D)

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 9: 03 -  Fundamentos

Teoría de Números

• Rama de matemáticas que estudia las propiedades de los números enteros

• Contiene muchos problemas comprensibles por no matemáticos

• Según los métodos y las preguntas a contestar se subdivide en varias ramas

• Se estudian los números enteros sin técnicas de otros campos de las matemáticas

Page 10: 03 -  Fundamentos

Teoría de Números – Aspectos

• Incluye diversas cuestiones – Divisibilidad – Algoritmo de Euclides para calcular el máximo común divisor – Factorización de los enteros como producto de números primos – Búsqueda de los números perfectos – Congruencias – Conjunto completo de restos

• Se investigan funciones multiplicativas y otras – Función de Moebius – Función φ de Euler – Sucesiones de números enteros – Factoriales – Números de Fibonacci

Page 11: 03 -  Fundamentos

Teoría de Números – Congruencia

• La congruencia es la base de las operaciones de cifrado en matemática discreta

• Sean dos números enteros a y b, a es congruente con b en el módulo n (Zn) si y sólo si existe algún entero k que divide exactamente la diferencia (a - b)

• Matemáticamente:

– a - b = k ∗ n – a ≡ b mod n

• Ejemplo

– ¿Es 18 congruente con 3 módulo 5? Sí – Demostración: 18 - 3 = 15 = k ∗ 5 con k = 3 – Se expresa: 18 mod 5 = 3 – k es el resto o residuo

Page 12: 03 -  Fundamentos

Teoría de Números - Propiedades de congruencia en Zn

• Reflexión a ≡ a mod n ∀ a ∈ Z

• Simetría 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

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 13: 03 -  Fundamentos

Teoría de Números - Propiedades de operaciones en Zn

• Propiedad Asociativa a + (b + c) mod n ≡ (a + b) + c mod n

• Propiedad Conmutativa a + b mod n ≡ b + a mod n a ∗ b mod n ≡ b ∗ a mod n

• Propiedad Distributiva a ∗ (b+c) mod n ≡ ((a ∗ b) + (a ∗ c)) mod n

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 14: 03 -  Fundamentos

Teoría de Números - Propiedades de operaciones en Zn

• Identidad a + 0 mod n = 0 + a mod n = a mod n = a a ∗ 1 mod n = 1 ∗ a mod n = a mod n = a

• Inversos a + (-a) mod n = 0 a ∗ (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

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 15: 03 -  Fundamentos

Teoría de la Complejidad Algorítmica

• En criptografía permite conocer la fortaleza de un algoritmo

• Recursos estudiados – Tiempo (función del n° de pasos) – Memoria utilizada

• Esto da lugar a problemas fáciles y difíciles de tratar

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 16: 03 -  Fundamentos

Teoría de la Complejidad Algorítmica - Tipos

• Complejidad Polinomial – Depende polinómicamente del tamaño de la entrada

• Complejidad Polinomial No Determinista – Depende exponencialmente del tamaño de la entrada

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 17: 03 -  Fundamentos

Teoría de la Complejidad Algorítmica - Problemas

• Problema de la factorización de números grandes (PFNG) – Dado un número n, resultado del producto de 2 o más primos,

encontrar estos factores – Cuando el valor n = p∗q es muy grande se vuelve difícil de tratar – En el caso inverso, encontrar el resultado p∗q = n, es un problema tipo

Polinomial

• Problema del logaritmo discreto (PLD) – Dado un par de enteros α y β encontrar un entero x de forma que: x =

logα β mod p – Si p es muy grande, es difícil de tratar – En el caso inverso, dado α y x, encontrar β = αx mod p es un

problema Polinomial

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 18: 03 -  Fundamentos

Problema de la mochila

• Enunciado – Dada una mochila y un conjunto de elementos de distintos tamaños:

¿Es posible llenarla completa con distintos elementos sin repetirlos?

• Interés en criptografía: es NP completo – Resolución de complejidad exponencial – Existe un caso de resolución lineal y solución única (si existe)

• Matemáticamente: – Dados

• S = {S1, S2, S3, ..., Sm-2, Sm-1, Sm} (todos enteros positivos) • T: valor objetivo

– Encontrar un subconjunto de S: SS = {Sa, Sb, ..., Sj} que cumpla con T • T = Σ SS = Sa + Sb + ... + Sj

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 19: 03 -  Fundamentos

Problema de la mochila – Solución

• La resolución es no Polinomial si los elementos: – Son números grandes – No están ordenados – No siguen una distribución supercreciente (Si > Σ Sk<i)

• Se buscan los vectores Vi de 0s y 1s tales que: Σ Si ∗ Vi = T – Si se cumple esta relación, la mochila tiene solución

• Uso en criptografía – Algoritmos Graham-Shamir y Chor-Rivest (ambos criptoanalizables) – Uso actual solo en protección de software por hardware

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 20: 03 -  Fundamentos

Clasificación de Criptosistemas Modernos

Según el tratamiento del

mensaje

Cifrado en flujo

Cifrado en bloque

Según el tipo de claves

Clave Secreta

Clave Pública

Page 21: 03 -  Fundamentos

Clasificación de Criptosistemas Modernos

De flujo De bloque

Clave secreta Clave pública

Exponenciación Suma/Producto

- Información de sesión

- Cifrado local

- Intercambio de claves

- Firma digital

- CE: intercambio clave y firma digital

- Mochilas: protección de SW por HW

- Telefonía móvil

- WLAN

Curvas Elípticas/Mochilas

Métodos de cifrado modernos

Page 22: 03 -  Fundamentos

Requisitos de un criptosistema

Algoritmo rápido y confiable

Uso en transmisión y almacenamiento

Bajo retardo en operaciones de cifrado y descifrado

Seguridad basada en el secreto de la clave

Fortaleza basada en la imposibilidad computacional de romper el cifrado

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 23: 03 -  Fundamentos

Operaciones de cifrado

Operaciones básicas

Cifrado: C = E(M)

Descifrado: M = D(C)

Descifrado de M cifrado M = D(E(M))

Operaciones con clave k

C = E(k,M) o Ek(M)

M = D(k, C) o Dk(C)

M = D(k, E(k,M))

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 24: 03 -  Fundamentos

Cifrado de Flujo

• Usa el concepto de Vernam – Espacio de Claves ≥ Espacio de Mensajes – Claves equiprobables – Secuencia cifrante de un solo uso

• El algoritmo se aplica al mensaje mediante un flujo aleatorio de igual longitud

Page 25: 03 -  Fundamentos

Cifrado de Flujo

• Problemas – Envío de clave por canal inseguro – Una secuencia aleatoria e infinita excede la capacidad del canal

• Solución – Usar secuencia pseudoaleatoria con algoritmo determinístico – Partir de una semilla de n bits (período = 2n) – Enviar la semilla mediante algoritmo de intercambio de llaves

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 26: 03 -  Fundamentos

Técnica de cifrado de flujo

• Utilizar valores para generar aleatoriedad: vectores de inicialización

• Utilizar XOR con una secuencia cifrante pseudoaleatoria y de gran período

• Cifrar bit a bit

+

Secuencia cifrante Si

Mensaje M

Bits del criptograma

+ Mensaje M

Secuencia cifrante Si

C C

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 27: 03 -  Fundamentos

Secuencias pseudoaleatorias: Postulados de Golomb

• Igual cantidad de ceros que de unos (+/- 1)

• La probabilidad de recibir un 1 o 0 es la misma P(b1=1|b0=0) = P(b1=1|b0=1)

• Sin secuencias con mayor cantidad de información que otras

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 28: 03 -  Fundamentos

Secuencias pseudoaleatorias: Generación

• Algoritmos PRNG (PseudoRandom Number Generators) – Linear Congruential Generator (LCG): basado en recurrencia – Linear Feedback Shift Register (LFSR) – Blum Blum Shub (BBS) – Multiply-with-carry (MWC) – Otros

• Hardware TRNG (True Random Number Generators)

• Online Random Number Servers

Page 29: 03 -  Fundamentos

Cifrado en bloque

• El mensaje se agrupa en bloques antes de aplicar el algoritmo a cada uno

• Tamaño del bloque – Muy pequeño => Ataques por estadísticas del lenguaje – Muy grande => Lentitud en el tratamiento – Solución de compromiso: término medio en valores de 64 / 128 bits

• Estructura – Transformación inicial (T) – Función criptográficamente débil iterada N veces – Transformación final (T-1) – Algoritmo de expansión de clave

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 30: 03 -  Fundamentos

MENSAJE (N bits)

BLOQUE A BLOQUE B

⊕ ⊕

FUNCIÓN f

N/2 N/2

ki

Xi

A ⊕ Xi B ⊕ Xi

⊕ ⊕

FUNCIÓN f ki

Xi

A B

A ⊕ Xi B ⊕ Xi

Recordar: Y ⊕ Xi ⊕ Xi = Y

Cifrado y descifrado genérico en bloque

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 31: 03 -  Fundamentos

Cifrado en bloque

Page 32: 03 -  Fundamentos

Crifrado de Bloque Vs Flujo

Bloque

Ventajas •Alta difusión en el criptograma

• Imposible introducir bloques sin detectarlos

Desventajas •Debe leer bloque completo

•Un error se refleja en todo el bloque

Flujo

Ventajas •Alta velocidad de cifrado

•Cifrado independiente en cada bit

Desventajas •Baja difusión en el criptograma

•Pueden alterarse los elementos por separado

Moderador
Notas de la presentación
NOTAS SOBRE EL TEMA:
Page 33: 03 -  Fundamentos

Dicotomía Ideológica

Principio de Kerchoff • Todo conocido menos la clave

Seguridad por oscuridad • Algoritmos y sistema secretos

Page 34: 03 -  Fundamentos

Tipos de ataque según su naturaleza

• Se prueban todas las claves posibles Fuerza bruta

• Manipulación algebraica para reducir complejidad Analíticos

• Utilizan debilidades estadísticas del diseño Estadísticos

• No atacan el algoritmo sino como fue implantado Implementación

Page 35: 03 -  Fundamentos

Tipos de ataque según los elementos conocidos

• El atacante solo tiene el texto cifrado Ciphertext-only attack (COA)

• El atacante conoce un texto plano correspondiente Known-plaintext attack (KPA)

• El atacante conoce un texto plano a elección Chosen-plaintext attack (CPA)

• El atacante conoce un texto cifrado a elección Chosen-ciphertext attack (CCA)

Page 36: 03 -  Fundamentos

Jorge Eterovic

Marcelo Cipriano

Material de la cátedra Criptografía creado bajo licencia Creative Commons Atribución-NoComercial-CompartirDerivadasIgual 3.0 Unported

Criptografía