encriptación de la información

62
Encriptación de la Información José Miguel Horcas Aguilera Blanca Bautista Perez Javier Fernández González

Upload: donar

Post on 18-Mar-2016

54 views

Category:

Documents


4 download

DESCRIPTION

Encriptación de la Información. José Miguel Horcas Aguilera Blanca Bautista Perez Javier Fernández González. ÍNDICE. DEFINICION Y CARÁCTERÍSTICAS DE ENCRIPTACIÓN HISTORIA - SUSTITUCIÓN - TRANSPOSICIÓN - ALGORITMOS SIMÉTRICOS Y ASIMÉTRICOS RSA EN HASKELL - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Encriptación de la Información

Encriptación de la Información

José Miguel Horcas AguileraBlanca Bautista Perez

Javier Fernández González

Page 2: Encriptación de la Información

ÍNDICE

-DEFINICION Y CARÁCTERÍSTICAS DE ENCRIPTACIÓN- HISTORIA- SUSTITUCIÓN- TRANSPOSICIÓN- ALGORITMOS SIMÉTRICOS Y ASIMÉTRICOS - RSA EN HASKELL -TÉCNICAS MATEMÁTICAS APLICADAS A LA CRIPTOGRAFÍA- EL FUTURO DE LA CRIPTOGRAFÍA- REFERENCIAS

Page 3: Encriptación de la Información

Criptografía. Definición

Es el arte o ciencia de cifrar y descifrar información mediante técnicas especiales.

¿Para qué se usa?

- Permitir un intercambio de mensajes de forma confidencial por un medio inseguro.

Pág 3/59

Page 4: Encriptación de la Información

¿Cómo funciona el cifrado?

Ek : Función para Encriptar (Cifrar)

Dk :Función para Desencriptar (Descifrar)

Pág 4/59

Page 5: Encriptación de la Información

Historia(I)

Se distinguen varias épocas:

Criptografía clásica:

- Época de los romanos y griegos en campañas militares.- Algoritmo de sustitución simple y transposición. - Destaca el Cifrado de César

Criptografía Medieval:-Ruptura de los cifrados de sustitución.-Aparición de los cifrados de sustitución múltiple. (Leon Battista Alberti)

Pág 5/59

Page 6: Encriptación de la Información

Historia(II)

Claude Shannon: En 1949 publicó “La teoría de la información” -Establece toda la base teórica de la criptografía y

criptoanálisis.

Segunda Guerra mundial: Máquinas electromecánicas. “Enigma”.

Pág 6/59

Page 7: Encriptación de la Información

Tipos de CifradoUna vez que el emisor y receptor acuerdan

que algoritmo de cifrado usar, se distinguen dos tipos de cifrado:

Cifrado simétrico: Si la clave de cifrado y descifrado es la misma.

Cifrado asimétrico:Se hace uso de dos claves distintas:

Pública: Generalmente para cifrar.Privada: Generalmente para descifrar.

Pág 7/59

Page 8: Encriptación de la Información

Métodos de encriptación de la Información

• Cifrado César • Código por sustitución de letras• Código por transposición• Criptografía de clave secreta.DES• Criptografía de clave pública. RSA

Pág 8/59

Page 9: Encriptación de la Información

Cifrado César(I)

Funcionamiento:- Reemplaza cada letra del alfabeto por otra más adelante en el

alfabeto. Siempre a la misma distancia.- La clave especifica la distancia.

Ejemplo:

Clave de sustitución: 3

Pág 9/59

Para cifrar y descifrar:

Donde n es la clave, x la letra a cifrar y 27 el número de letras del alfabeto.

Page 10: Encriptación de la Información

Cifrado César. Código (II)

Pág 10/59

Page 11: Encriptación de la Información

Código por Sustitución de Letras(I)

Funcionamiento:- Reemplaza cada letra del alfabeto por otra.- La clave especifica el tipo de sustitución.

Ejemplo:

Clave de sustitución: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

I C Ñ H O M T L B S A R Q P E W J F V U K X D Y N Z G

Cifrar: . EJEMPLO . HOLA

OSOQJRWLWRI

Pág 11/59

Page 12: Encriptación de la Información

Código por Sustitución de Letras(II)

Problema.Puede romperse fácilmente para textos planos usando la

frecuencia relativa de las letras.

(Ejemplo: la ‘a’ es la letra más usada en español).

Mejora.Cambiar la sustitución de cada letra de acuerdo con un

patrón periódico (sustitución múltiple).

Pág 12/59

Page 13: Encriptación de la Información

Código por Sustitución de Letras(III)

Ejemplo. Sustitución múltiple.Seleccionamos un periodo L. Por ejemplo L=2;

La clave de sustitución sería:

0: A H L O

L O H A

A H L O

O L A H

1:

0 1 0 1

O H H oO H H OH OH O L A

Posición:

T. Cifrado:

T. Plano:

Pág 13/59

Page 14: Encriptación de la Información

Código por TransposiciónPara aplicarlo, se considera el texto en filas de L

(10 por ejemplo) letras cada una, y se envía el texto columna a columna:

- El código se puede romper probando varias longitudes de fila distintas.

- Combinando sustitución con transposición se puede alcanzar una seguridad fiable con algoritmos de bajo coste computacional.

Pág 14/59

Page 15: Encriptación de la Información

DES (Data Encription Standard) (I)

HistoriaEn 1977, el gobierno de EEUU lo adoptó como método de

encriptación para información no clasificada.

CaracterísticasEs un cifrado simétrico, caracterizado por:

. Forma de cifrar y descifrar conocidas

. La clave es secreta (desconocida)

Fue desarrollado por IBM, y usa una combinación de sustituciones y transposiciones.

Existen chips VLSI encargados que realizan este tipo de cifrado.

Chip VLSIPág 15/59

Page 16: Encriptación de la Información

DES (Data Encription Standard) (II)

¿Cómo funciona?- Dividimos el texto plano en bloques de 64 bits.- La clave secreta es de 64 bits:

- 56 bits útiles para el algoritmo - 8 bits de paridad

- Se divide en 16 fases idénticas denominadas rondas.- PI y PF son funciones de transposición inversas entre sí: Facilita carga y descarga de los bloques sobre el HW.-La función F mezcla la mitad del bloque con parte de la clave (subclave). A la salida se combina con la otra mitad del bloque y se intercambian.

-Para descifrar las subclaves se introducen en orden inverso. Pág 16/59

Page 17: Encriptación de la Información

DES (Data Encription Standard) (III)

ProblemaLa seguridad de cualquier cifrado simétrico reside en mantener

secreto de la clave.

ConsecuenciaLa clave k debe distribuirse de forma segura.

¿Cómo?

- Usando una clave maestra, acordada al reunirse físicamente.Sirve para transmitirse la clave k. La clave maestra se usa muy rara vez.

Pág 17/59

Page 18: Encriptación de la Información

Criptografía de Clave Pública(Algoritmos asimétricos)

A diferencia de los algoritmos simétricos, ahora vamos a disponer de 2 tipos de claves (por cada usuario) :

- Clave pública- Clave privada

La clave pública la conoce todo el mundo y la privada es secreta y va ligado a un usuario.

Es imposible (ó muy difícil) deducir la clave secreta a partir de clave pública.

Pág 18/59

Page 19: Encriptación de la Información

Criptografía de Clave Pública

Usuario A Usuario BE (M)

KPB D (E (M) ) = MKPBKSB

Usuario A Usuario cualquieraE (M)

KSA D (E (M) ) = MKSAKPA

Confidencialidad :

Firma digital (autenticación):

Pág 19/59

Page 20: Encriptación de la Información

Comparativa entre Simétrica y Asimétrica

Simétrico Asimétrico

Más seguro X

Más rápido X

Número de claves

N*(N-1) 2*N

Problema más significativo

Distribución de claves

Velocidad

¿ Qué es lo deseado ?Combinar la velocidad con la seguridad

Criptosistemas híbridos Pág 20/59

Page 21: Encriptación de la Información

Criptografía de Clave Pública

El algoritmo más conocido es el RSA

Fue desarrollado en 1977. (Rivest, Shamir, Adleman)

Actualmente es el primer sistema criptográfico y el mas utilizado.

Podemos cifrar y firmar digitalmente.

RSA

Pág 21/59

Page 22: Encriptación de la Información

Algoritmo RSA

Generación de claves

1. Seleccionar dos números primos grandes, p y q, (típicamente mayores que 10100).

2. Calcular: n = p x q

z = (p-1) x (q-1) (φ de Euler)

• Este algoritmo se basa en principios de la teoría de números.

Pág 22/59

Page 23: Encriptación de la Información

Generación de la Clave Publica

3. Seleccionar un número e:- Coprimo con z- Menor que z

Exponente de la clave publica

Pág 23/59

Page 24: Encriptación de la Información

Pág 24/59

Page 25: Encriptación de la Información

Generación de la Clave Privada

3. Seleccionar un número d:- e*d = 1 mod z- de-1 divide a φ(n)

Exponente de la clave privada

Pág 25/59

Page 26: Encriptación de la Información

Pág 26/59

Page 27: Encriptación de la Información

Pág 27/59

Page 28: Encriptación de la Información

Criptografía de Clave PúblicaRSA

Funcionamiento :

a. Considerar el texto plano como una cadena de bits. Dividirlo en bloques de valor P tales que 0 ≤ P < n. Para ello agrupar en trozos de k bits, donde 2k < n

b. Cifrar el mensaje haciendo C = Pe mod n

c. Enviar C por el canal

d. Descifrar el mensaje haciendo P = Cd mod n

Pág 28/59

Page 29: Encriptación de la Información

RSA en Haskell

Pág 29/59

Page 30: Encriptación de la Información

• Codificar

Pág 30/59

Page 31: Encriptación de la Información

• Descodificar

Pág 31/59

Page 32: Encriptación de la Información

Pág 32/59

Page 33: Encriptación de la Información

Criptografía de Clave PúblicaRSA

Ejemplo del RSA :

P = 61

Q = 53

N = P * Q = 3233

E = 17

D = 2753

Para cifrar M :C = E (M) = Me mod n = m17 mod 3233

Para descifrar C :M = D (C) = Cd mod n = c2753 mod 3233

Pág 33/59

Page 34: Encriptación de la Información

PrimalidadDeterminar números primos grandes de forma aleatoria. FactorizaciónEncontrar la factorización de un número n como producto de

factores primos.

Cálculo con números grandesEficiencia en las operaciones matemáticas cuando se trabaja

con números grandes.

Teoría de Números

Problemas de RSA

Pág 34/59

Page 35: Encriptación de la Información

Primalidad

Test de primalidadCriterio para decidir si un número dado es o no primo.

Test de la divisiones sucesivas. Test de pseudoprimalidadCriterio para decidir, con un alto grado de probabilidad, si un

número dado es o no primo. Test basado en el Teorema pequeño de Fermat. Test de Solovay-Strassen Test de Miller-Rabin

Pág 35/59

Teoría de Números

Page 36: Encriptación de la Información

Dado un número impar, consiste en tomar todos los números impares en el intervalo [3 .. raíz(n)] y comprobar si alguno es divisor de n.

Test de las divisiones sucesivas

Pág 36/59

Teoría de Números

Page 37: Encriptación de la Información

Obteniendo números primos grandes

Usar tablas publicadasRápido.Números pequeños para objetivos criptográficos.

Generación y testGenerar números aleatorios impares de tamaño grande

y aplicarles un test de pseudoprimalidad.

Teorema de TchebycheffLa cantidad de números primos menores o iguales que N es

Pág 37/59

Teoría de Números

Page 38: Encriptación de la Información

Obteniendo números primos grandes Generación de números aleatorios de N dígitos

Pág 38/59

Teoría de Números

Page 39: Encriptación de la Información

Obteniendo números primos grandes Generación de primos aleatorios de N dígitos

Pág 39/59

Teoría de Números

Page 40: Encriptación de la Información

Test de pseudoprimalidad

Test de FermatSi n es primo, entonces para cualquier b con mcd(b,n) = 1, se tiene que:

Números de Carmichael -> son compuestos y verifican la igualdad.

Probabilidad de que un número no sea primo y pase el test:

2-k

Pág 40/59

Teoría de Números

Page 41: Encriptación de la Información

Test de pseudoprimalidad

Test de Solovay-StrassenEl método consiste en elegir K naturales 0 < b < n aleatoriamente.

Para cada uno de estos números b se calcula: y

Si estos valores no son congruentes módulo n; entonces el número es compuesto.

Probabilidad de que un número no sea primo y pase el test:

2-k

Pág 41/59

Teoría de Números

Page 42: Encriptación de la Información

Test de pseudoprimalidad

Test de Miller-Rabin n > 2 impar. m: impar n-1 = 2k * m ó a: aleatorio [2, n-2]

para algún r: [1, k-1]

http://www.haskell.org/haskellwiki/Prime_numbersPág 42/59

Teoría de Números

Page 43: Encriptación de la Información

Últimos avances Algoritmo AKS (2002)Manindra Agrawal, Neeraj Kayal y Nitin SaxenaDepartamento de Computación del Instituto de Investigaciones de

Kanpur (India)Basado en una versión simplificada del Pequeño Teorema de Fermat:

Primer algoritmo determinístico matemáticamente demostrado, de tiempo polinómico.

Las constantes de la complejidad son muchas más costosas que en los actuales algoritmos probabilísticos.

Pág 43/59

Teoría de Números

Page 44: Encriptación de la Información

Factorización

Uno de los ataques contra el algoritmo RSA consiste en descomponer en factores primos el número n de la clave pública.

Test de las divisiones sucesivas Método del algoritmo de Euclides Método de Fermat Método de Legendre Método rho de Pollard (Monte Carlo)

Pág 44/59

Teoría de Números

Page 45: Encriptación de la Información

Factorización: Test de las divisiones sucesivas

Test de las divisiones sucesivasMismo procedimiento que para comprobar la primalidad.

Pág 45/59

Teoría de Números

Page 46: Encriptación de la Información

Factorización: Método del algoritmo de Euclides

Método del algoritmo de EuclidesDado un número compuesto n entre dos valores f y g, el método consiste en multiplicar todos los números

primos comprendidos entre f y g, y a continuación aplicar el algoritmo de Euclides al número n y al producto resultante.

Si n es grande también se requiere mucho tiempo de computación.

Pág 46/59

Teoría de Números

Page 47: Encriptación de la Información

Factorización: Método de Fermat Método de Fermat

¿El número 100895598169

es primo?

Es el producto de 898423 por 11230, ambos

primos.

Mersenne FermatPág 47/59

Teoría de Números

Page 48: Encriptación de la Información

Factorización: Método de Fermat Método de Fermat

El método consiste en encontrar un cuadrado.

1. Dado n, escoger un x > raiz(n).2. Calcular x2 – n. Si es un cuadrado hemos terminado, sino:3. Calcular (x+1)2 – n. Si es un cuadrado hemos terminado, sino:…

Idea de Fermatsi n = x2 * y2, entonces n puede factorizarse: n = (x+y)*(x-y)Como x2 > n se tiene que x > raiz(n)

Pág 48/59

Teoría de Números

Page 49: Encriptación de la Información

Factorización: Método de Legendre Método de Legendre

Número de soluciones de la congruencia:

Números primos -> Soluciones triviales -> Números compuestos -> Admite más soluciones.

El método intenta determinar soluciones no triviales a la congruencia.

Como si (x+y) es una solución no trivial, un factor de n se calcula hallando el mcd(x+y,n).

Pág 49/59

Teoría de Números

Page 50: Encriptación de la Información

Factorización: Método rho de Pollard Método rho de Pollard (Método de Monte Carlo)Se basa en el algoritmo de la liebre y la tortuga y en:o x e y son congruentes módulo p con probabilidad 0.5 tras elegir

1.177*raiz(p) números.o Si p es factor de n, entonces 1 < mcd(|x-y|, n) <= n, ya que p divide

tanto a |x-y| como a n.

Secuencia x

Secuencia y

mcd(|x-y|, n)

Si mcd(|x-y|, n) = n -> Fracaso Pág 50/59

Teoría de Números

Page 51: Encriptación de la Información

Trabajando con números grandes.

El tipo Integer de Haskell Números enteros de precisión ilimitada. Mismas operaciones que Int.

Tipo abstracto de datosPor ejemplo: array de dígitos.¡ Hay que implementar todas las operaciones!

5 7 2 0 1 8 9 7 1 3 6 4 0 0 4 5 6 2 7 8 9 6 4 1 2 2 5 1 3

Pág 51/59

Teoría de Números

Page 52: Encriptación de la Información

Trabajando con números grandes Cálculo de potencias modulares

Algoritmo de exponenciación modularLa idea consiste en obtener la representación del exponente n en dígitos binarios (dt, dt-1, …d2,d1) con dt=1, y hallar los distintos cuadrados sucesivos (mod m) de la base a: (a1, a2, a4, … a2*t), para después multiplicar módulo m las potencias a2*I correspondientes a los dígitos binarios di que sean “1”.

Pág 52/59

Teoría de Números

Page 53: Encriptación de la Información

Trabajando con números grandes Máximo común divisorMás eficiente teniendo en cuenta las propiedades:

x, si y=0MCD(x,y) =

MCD(y, x `mod` y), otro caso

Pág 53/59

Teoría de Números

Page 54: Encriptación de la Información

Trabajando con números grandes

Algoritmo extendido de Euclides

extendedEuclid :: Integer -> Integer -> (Integer, Integer, Integer)

a, b -> (u,v,d)

Pág 54/59

Teoría de Números

Page 55: Encriptación de la Información

El futuro de RSA

Romper el código cifrado con RSA buscando la factorización de n es prácticamente imposible incluso con los ordenadores de la próxima década.

Factorizar un número de 500 dígitos necesita 1025 años a 1us por instrucción.

Cuando se consiga, podríamos elegir números primos mayores y el sistema volvería a ser seguro.

El futuro de la criptografía

Pág 55/59

Page 56: Encriptación de la Información

El futuro de la criptografía

Criptografía CuánticaHace uso de los principios de la física cuántica.

El futuro de la criptografía

Más información en:http://giq.ifae.es/EducationalMaterial/Cripto.pdf

Criptografía Cuántica. M. Baig. de la Universidad Autónoma de Barcelona.

Grupo de Física Teórica.

¿Sin mucho futuro?

El nuevo ataque está basado en las

suposiciones hechas sobre el tipo de errores

que pueden aparecer en los mensajes cuánticos.

Pág 56/59

Page 57: Encriptación de la Información

RSA-HASKELL

Colección de herramientas criptográficas escritas en Haskell para trabajar mediante línea de comandos.

Referencias

http://netsuperbrain.com/rsa-haskell.html

Generar claves:

sskeygen

Cifrar un documento:

ssencrypt friend.public.key message.txt

Descifrar un documento:

ssdecrypt private.key message.txt.ss

public.key private.key

message.txt.ss

message.txtPág 57/59

Page 58: Encriptación de la Información

Bibliografía sobre Teoría de Números

Referencias

Pág 58/59

G. H. HARDY andE. M. WRIGHTUna introducción a la teoría de números

Primera Edición: 1938

Page 59: Encriptación de la Información

Bibliografía sobre Teoría de Números

Referencias

Pág 58/59

RICHARD CRANDALL andCARL POMERANCEPrime Numbers: A Computational Perspective

2ª ed.: 2005

Page 60: Encriptación de la Información

Artículos sobre Teoría de Números

Referencias

Pág 58/59

CARL POMERANCE• “Computational Number Theory”• “Prime Numbers and the Search for Extraterrestrial Intelligence”• “Primality testing with Gaussian periods”

COLING RUNCIMAN• “Lazy wheels sieves and spirals of  primes”

Page 61: Encriptación de la Información

Bibliografía sobre criptografía y seguridad

Referencias

Pág 58/59

Page 62: Encriptación de la Información

Bibliografía

Referencias

http://www.revistasic.com/ Pág 59/59