Sei sulla pagina 1di 62

Encriptacin de la Informacin

Jos Miguel Horcas Aguilera Blanca Bautista Perez Javier Fernndez Gonzlez

NDICE

-DEFINICION Y CARCTERSTICAS DE ENCRIPTACIN - HISTORIA - SUSTITUCIN - TRANSPOSICIN - ALGORITMOS SIMTRICOS Y ASIMTRICOS - RSA EN HASKELL -TCNICAS MATEMTICAS APLICADAS A LA CRIPTOGRAFA - EL FUTURO DE LA CRIPTOGRAFA - REFERENCIAS

Criptografa. Definicin
Es el arte o ciencia de cifrar y descifrar informacin mediante tcnicas especiales. Para qu se usa?

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

Pg 3/59

Cmo funciona el cifrado?

Ek : Funcin para Encriptar (Cifrar) Dk :Funcin para Desencriptar (Descifrar) Pg 4/59

Historia(I)
Se distinguen varias pocas: Criptografa clsica: - poca de los romanos y griegos en campaas militares. - Algoritmo de sustitucin simple y transposicin. - Destaca el Cifrado de Csar Criptografa Medieval: -Ruptura de los cifrados de sustitucin. -Aparicin de los cifrados de sustitucin mltiple. (Leon Battista Alberti)

Pg 5/59

Historia(II)
Segunda Guerra mundial: Mquinas electromecnicas. Enigma.

Claude Shannon: En 1949 public La teora de la informacin -Establece toda la base terica de la criptografa y criptoanlisis. Pg 6/59

Tipos de Cifrado
Una vez que el emisor y receptor acuerdan que algoritmo de cifrado usar, se distinguen dos tipos de cifrado:

Cifrado simtrico: Si la clave de cifrado y descifrado es la misma. Cifrado asimtrico: Se hace uso de dos claves distintas: Pblica: Generalmente para cifrar. Privada: Generalmente para descifrar.

Pg 7/59

Mtodos de encriptacin de la Informacin


Cifrado Csar Cdigo por sustitucin de letras Cdigo por transposicin Criptografa de clave secreta.DES Criptografa de clave pblica. RSA

Pg 8/59

Cifrado Csar(I)
Funcionamiento: - Reemplaza cada letra del alfabeto por otra ms adelante en el alfabeto. Siempre a la misma distancia. - La clave especifica la distancia. Ejemplo: Clave de sustitucin: 3

Para cifrar y descifrar:

Donde n es la clave, x la letra a cifrar y 27 el nmero de letras del alfabeto. Pg 9/59

Cifrado Csar. Cdigo (II)

Pg 10/59

Cdigo por Sustitucin de Letras(I)


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

Ejemplo: Clave de sustitucin:


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

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 OSOQJRW . HOLA LWRI


Pg 11/59

Cdigo por Sustitucin de Letras(II)


Problema. Puede romperse fcilmente para textos planos usando la frecuencia relativa de las letras.

(Ejemplo: la a es la letra ms usada en espaol).

Mejora. Cambiar la sustitucin de cada letra de acuerdo con un patrn peridico (sustitucin mltiple).

Pg 12/59

Cdigo por Sustitucin de Letras(III)


Ejemplo. Sustitucin mltiple. Seleccionamos un periodo L. Por ejemplo L=2; La clave de sustitucin sera:

0:

A
L

H
O

L
H

O
A

1:

A
O

H
L 0 1

L
A 0

O
H 1

Posicin: T. Cifrado: T. Plano:

O O H H

H H O O

H H L

o O A
Pg 13/59

Cdigo por Transposicin


Para aplicarlo, se considera el texto en filas de L (10 por ejemplo) letras cada una, y se enva el texto columna a columna:

- El cdigo se puede romper probando varias longitudes de fila distintas. - Combinando sustitucin con transposicin se puede alcanzar una seguridad fiable con algoritmos de bajo coste computacional. Pg 14/59

DES (Data Encription Standard) (I)


Historia En 1977, el gobierno de EEUU lo adopt como mtodo de encriptacin para informacin no clasificada. Fue desarrollado por IBM, y usa una combinacin de sustituciones y transposiciones. Existen chips VLSI encargados que realizan este tipo de cifrado. Caractersticas Es un cifrado simtrico, caracterizado por: . Forma de cifrar y descifrar conocidas . La clave es secreta (desconocida) Chip VLSI Pg 15/59

DES (Data Encription Standard) (II)


Cmo 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 idnticas denominadas rondas.


- PI y PF son funciones de transposicin inversas entre s: Facilita carga y descarga de los bloques sobre el HW. -La funcin 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. Pg 16/59

DES (Data Encription Standard) (III)


Problema La seguridad de cualquier cifrado simtrico reside en mantener secreto de la clave. Consecuencia La clave k debe distribuirse de forma segura. Cmo? - Usando una clave maestra, acordada al reunirse fsicamente. Sirve para transmitirse la clave k. La clave maestra se usa muy rara vez.

Pg 17/59

Criptografa de Clave Pblica


(Algoritmos asimtricos) A diferencia de los algoritmos simtricos, ahora vamos a disponer de 2 tipos de claves (por cada usuario) : - Clave pblica - Clave privada La clave pblica la conoce todo el mundo y la privada es secreta y va ligado a un usuario.

Es imposible ( muy difcil) deducir la clave secreta a partir de clave pblica.

Pg 18/59

Criptografa de Clave Pblica


Confidencialidad :

Usuario A E
KPB

Usuario B D
KSB

(M)

(E

KPB

(M) ) = M

Firma digital (autenticacin):

Usuario A

Usuario cualquiera D
KPA

KSA

(M)

(E

KSA

(M) ) = M Pg 19/59

Comparativa entre Simtrica y Asimtrica


Simtrico Ms seguro Ms rpido Nmero de claves Problema ms significativo X N*(N-1) Distribucin de claves 2*N Velocidad Asimtrico X

Qu es lo deseado ?
Combinar la velocidad con la seguridad

Criptosistemas hbridos

Pg 20/59

Criptografa de Clave Pblica


RSA

El algoritmo ms conocido es el RSA

Fue desarrollado en 1977.

(Rivest, Shamir, Adleman)

Actualmente es el primer sistema criptogrfico y el mas utilizado.

Podemos cifrar y firmar digitalmente.

Pg 21/59

Algoritmo RSA
Este algoritmo se basa en principios de la teora de nmeros.
Generacin de claves
1. Seleccionar dos nmeros primos grandes, p y q, (tpicamente mayores que 10100). 2. Calcular: n=pxq z = (p-1) x (q-1) ( de Euler) Pg 22/59

Generacin de la Clave Publica 3. Seleccionar un nmero e: - Coprimo con z - Menor que z

Exponente de la clave publica


Pg 23/59

Pg 24/59

Generacin de la Clave Privada 3. Seleccionar un nmero d: - e*d = 1 mod z - de-1 divide a (n) Exponente de la clave privada
Pg 25/59

Pg 26/59

Pg 27/59

Criptografa de Clave Pblica


RSA 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 Pg 28/59

RSA en Haskell

Pg 29/59

Codificar

Pg 30/59

Descodificar

Pg 31/59

Pg 32/59

Criptografa de Clave Pblica


RSA Ejemplo del RSA : P = 61 Q = 53 Para cifrar M : C = E (M) = Me mod n = m17 mod 3233

N = P * Q = 3233
E = 17 D = 2753

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

Pg 33/59

Teora de Nmeros
Problemas de RSA

Primalidad

Determinar nmeros primos grandes de forma aleatoria.

Factorizacin

Encontrar la factorizacin de un nmero n como producto de factores primos.

Clculo con nmeros grandes


Pg 34/59

Eficiencia en las operaciones matemticas cuando se trabaja con nmeros grandes.

Teora de Nmeros
Primalidad

Test de primalidad

Criterio para decidir si un nmero dado es o no primo. Test de la divisiones sucesivas.

Test de pseudoprimalidad

Criterio para decidir, con un alto grado de probabilidad, si un nmero dado es o no primo. Test basado en el Teorema pequeo de Fermat. Test de Solovay-Strassen Test de Miller-Rabin
Pg 35/59

Teora de Nmeros
Test de las divisiones sucesivas
Dado un nmero impar, consiste en tomar todos los nmeros impares en el intervalo [3 .. raz(n)] y comprobar si alguno es divisor de n.

Pg 36/59

Teora de Nmeros
Obteniendo nmeros primos grandes

Usar tablas publicadas


Rpido. Nmeros pequeos para objetivos criptogrficos.

Generacin y test

Generar nmeros aleatorios impares de tamao grande y aplicarles un test de pseudoprimalidad.


Teorema de Tchebycheff

La cantidad de nmeros primos menores o iguales que N es


Pg 37/59

Teora de Nmeros
Obteniendo nmeros primos grandes

Generacin de nmeros aleatorios de N dgitos

Pg 38/59

Teora de Nmeros
Obteniendo nmeros primos grandes

Generacin de primos aleatorios de N dgitos

Pg 39/59

Teora de Nmeros
Test de pseudoprimalidad

Test de Fermat

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

Nmeros de Carmichael -> son compuestos y verifican la igualdad.

Probabilidad de que un nmero no sea primo y pase el test:


2-k

Pg 40/59

Teora de Nmeros
Test de pseudoprimalidad

Test de Solovay-Strassen

El mtodo consiste en elegir K naturales 0 < b < n aleatoriamente. Para cada uno de estos nmeros b se calcula:

y
Si estos valores no son congruentes mdulo n; entonces el nmero es compuesto.

Probabilidad de que un nmero no sea primo y pase el test: 2-k Pg 41/59

Teora de Nmeros
Test de pseudoprimalidad

Test de Miller-Rabin n > 2 impar.


m: impar n-1 = 2k * m a: aleatorio [2, n-2] para algn r: [1, k-1]

http://www.haskell.org/haskellwiki/Prime_numbers
Pg 42/59

Teora de Nmeros
ltimos avances

Algoritmo AKS (2002)

Manindra Agrawal, Neeraj Kayal y Nitin Saxena


Departamento de Computacin del Instituto de Investigaciones de Kanpur (India)
Basado en una versin simplificada del Pequeo Teorema de Fermat:

Primer algoritmo determinstico matemticamente demostrado, de tiempo polinmico. Las constantes de la complejidad son muchas ms costosas que en los actuales algoritmos probabilsticos. Pg 43/59

Teora de Nmeros
Factorizacin
Uno de los ataques contra el algoritmo RSA consiste en descomponer en factores primos el nmero n de la clave pblica.

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

Pg 44/59

Teora de Nmeros
Factorizacin: Test de las divisiones sucesivas

Test de las divisiones sucesivas

Mismo procedimiento que para comprobar la primalidad.

Pg 45/59

Teora de Nmeros
Factorizacin: Mtodo del algoritmo de Euclides

Mtodo del algoritmo de Euclides

Dado un nmero compuesto n entre dos valores f y g, el mtodo consiste en multiplicar todos los nmeros primos comprendidos entre f y g, y a continuacin aplicar el algoritmo de Euclides al nmero n y al producto resultante.

Si n es grande tambin se requiere mucho tiempo de computacin.


Pg 46/59

Teora de Nmeros

Factorizacin: Mtodo de Fermat

Mtodo de Fermat
El nmero 100895598169 es primo?

Es el producto de 898423 por 11230, ambos primos. Mersenne Fermat Pg 47/59

Teora de Nmeros

Factorizacin: Mtodo de Fermat

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

El mtodo 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:
Pg 48/59

Teora de Nmeros

Factorizacin: Mtodo de Legendre

Mtodo de Legendre

Nmero de soluciones de la congruencia:


Nmeros primos -> Soluciones triviales -> Nmeros compuestos -> Admite ms soluciones.

El mtodo intenta determinar soluciones no triviales a la congruencia. Como si (x+y) es una solucin no trivial, un factor de n se calcula hallando el mcd(x+y,n).

Pg 49/59

Teora de Nmeros

Factorizacin: Mtodo rho de Pollard


Mtodo rho de Pollard (Mtodo de Monte Carlo) Se basa en el algoritmo de la liebre y la tortuga y en:

x e y son congruentes mdulo p con probabilidad 0.5 tras elegir 1.177*raiz(p) nmeros. Si p es factor de n, entonces 1 < mcd(|x-y|, n) <= n, ya que p divide tanto a |x-y| como a n.
mcd(|x-y|, n) Secuencia x Secuencia y Si mcd(|x-y|, n) = n -> Fracaso Pg 50/59

Teora de Nmeros
Trabajando con nmeros grandes.

El tipo Integer de Haskell


Nmeros enteros de precisin ilimitada. Mismas operaciones que Int.

Tipo abstracto de datos


Por ejemplo: array de dgitos. Hay que implementar todas las operaciones!

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

Pg 51/59

Teora de Nmeros
Trabajando con nmeros grandes

Clculo de potencias modulares

Algoritmo de exponenciacin modular


La idea consiste en obtener la representacin del exponente n en dgitos 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 despus multiplicar mdulo m las potencias a2*I correspondientes a los dgitos binarios di que sean 1.

Pg 52/59

Teora de Nmeros
Trabajando con nmeros grandes

Mximo comn divisor


x, MCD(x,y) = MCD(y, x `mod` y), otro caso si y=0

Ms eficiente teniendo en cuenta las propiedades:

Pg 53/59

Teora de Nmeros
Trabajando con nmeros grandes

Algoritmo extendido de Euclides


extendedEuclid :: Integer -> Integer -> (Integer, Integer, Integer) a, b -> (u,v,d)

Pg 54/59

El futuro de la criptografa
El futuro de RSA

Romper el cdigo cifrado con RSA buscando la factorizacin de n es prcticamente imposible incluso con los ordenadores de la prxima dcada. Factorizar un nmero de 500 dgitos necesita 1025 aos a 1us por instruccin.

Cuando se consiga, podramos elegir nmeros primos mayores y el sistema volvera a ser seguro.

Pg 55/59

El futuro de la criptografa
El futuro de la criptografa Criptografa Cuntica Hace uso de los principios de la fsica cuntica.

Ms informacin en: http://giq.ifae.es/EducationalMaterial/Cripto.pdf Criptografa Cuntica. M. Baig. de la Universidad Autnoma de Barcelona. Grupo de Fsica Terica.
El nuevo ataque est basado en las suposiciones hechas sobre el tipo de errores que pueden aparecer en los mensajes cunticos.

Sin mucho futuro?

Pg 56/59

Referencias
RSA-HASKELL
http://netsuperbrain.com/rsa-haskell.html
Coleccin de herramientas criptogrficas escritas en Haskell para trabajar mediante lnea de comandos.

Generar claves: sskeygen Cifrar un documento:

public.key

private.key

ssencrypt friend.public.key message.txt


Descifrar un documento: ssdecrypt private.key message.txt.ss

message.txt.ss message.txt

Pg 57/59

Referencias
Bibliografa sobre Teora de Nmeros
G. H. HARDY and E. M. WRIGHT Una introduccin a la teora de nmeros

Primera Edicin: 1938


Pg 58/59

Referencias
Bibliografa sobre Teora de Nmeros
RICHARD CRANDALL and CARL POMERANCE Prime Numbers: A Computational Perspective

2 ed.: 2005
Pg 58/59

Referencias
Artculos sobre Teora de Nmeros
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
Pg 58/59

Referencias
Bibliografa sobre criptografa y seguridad

Pg 58/59

Referencias
Bibliografa

http://www.revistasic.com/

Pg 59/59

Potrebbero piacerti anche