03 - fundamentos
DESCRIPTION
Fundamentos de CriptografíaTRANSCRIPT
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)
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
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
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
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
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
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
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
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
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
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))
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
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
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
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
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
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
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