03 - Fundamentos

Post on 11-Dec-2015

8 views 1 download

description

Fundamentos de Criptografía

Transcript of 03 - Fundamentos

Fundamentos

Criptografía

Jorge Eterovic - Marcelo Cipriano 2015

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

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

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

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

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

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

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:

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

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

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

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:

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:

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:

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:

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:

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:

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:

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:

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

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

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:

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:

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

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:

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:

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:

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

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:

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:

Cifrado en bloque

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:

Dicotomía Ideológica

Principio de Kerchoff • Todo conocido menos la clave

Seguridad por oscuridad • Algoritmos y sistema secretos

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

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)

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