Anda di halaman 1dari 36

Algoritmos criptogrficos

Trabajo realizado por: Beln M. Garca Lobo

Asignatura de Redes

ndice:

Criptografa clsica Algoritmos simtricos (cifrado por bloques) Algoritmos asimtricos de cifrado

Criptografa clsica

Llamamos as a todos los sistemas de cifrado anteriores a la II Guerra Mundial, o lo que es lo mismo, al nacimiento de los ordenadores. Se basa en algoritmos sencillos y claves muy largas para la seguridad. Perdieron su eficacia, debido a que son fcilmente criptoanalizables por los ordenadores. Todos los algoritmos criptogrficos clsicos son simtricos

Cifrados por sustitucin

Se basa en la sustitucin de cada letra por otra letra para disfrazarla pero conservan el orden de los smbolos de texto normal. Entre ellos cabe destacar los siguientes: - algoritmo de Csar, - mtodos de cifrado monoalfabticos, - polialfabticos..

- Algoritmo de Csar:

Debe su nombre a que era usado por Julio Csar para enviar mensajes secretos Consiste en sumar 3 al nmero de orden de cada letra. De esta forma a la A le corresponde la D, a la B la E, y as sucesivamente. Este algoritmo no posee clave, puesto que la transformacin siempre es la misma. Para descifrar basta con restar 3 al nmero de orden de las letras del criptograma. Ejemplo: el mensaje ataque se convertira en DWDTXH

- Mtodos de cifrado monoalfabticos

Sustituyen cada letra por otra que ocupa la misma posicin en un alfabeto desordenado y esta correspondencia se mantiene a lo largo de todo el mensaje. As se consiguen tantas claves como posibilidades de alfabetos hay. El problema est en cmo recordar la clave (el alfabeto desordenado). El procedimiento es el siguiente:
1. 2. 3.

4.

Se busca una palabra (clave) fcil de recordar y se le quitan las letras duplicadas. SEGURIDAD SEGURIDA Se aaden al final de la palabra las restantes letras del alfabeto (sin duplicar letras). SEGURIDABCFH..................XYZ Se ordenan en una matriz cuya primera fila es la palabra clave SEGUR I DA BCFH JK LM NOPQTVWX YZ El nuevo alfabeto se lee por columnas: SBNYECOZGFPUHQRJTIKVDLWAMX

Ejemplo: el mensaje ataque se convertira en SVSTDE El sistema de criptoanlisis mejor para romper el algoritmo es el estadstico.

- Mtodos de cifrado polialfabticos


Corresponde a la aplicacin cclica de n cifrados monoalfabticos, (de varios abecedarios desordenados). Un ejemplo tpico es el Cifrado de Vignere: - Dada una tabla con un alfabeto por cada letra del abecedario - Mtodo: Se busca una palabra clave fcil de recordar. Se escribe la palabra debajo del texto en claro, repitindose tantas veces como sea necesario. Cada letra del texto en claro se codifica con el alfabeto de la tabla marcado por la letra inferior, o sea, la letra de la clave que corresponde. - Ejemplo:
CLAVE: ADIOS Texto en claro : E S T O E S C R I P T O L O G I A Clave: ADIO SA DIOSADIOSAD Criptograma EVBD WS FZWHTRTCYID

Cifrados por transposicin

Se basa en la reordenacin de las letras de un texto de acuerdo a una palabra clave escogida que no contiene letras repetidas. Mtodo:
-

Con la clave se numera las columnas, estando la columna 1 bajo la letra de la clave ms cercana al inicio del alfabeto, y as sucesivamente. El texto normal se escribe horizontalmente en filas. El texto cifrado se lee por columnas, comenzando por la columna cuya letra clave es ms baja

Se puede criptoanalizar efectuando un estudio estadstico sobre la frecuencia de aparicin de pares y tripletas de smbolos

Ejemplo:
-

V 5 E e

I 3 s s t

D 1 t

E 2 e u

O 4

Texto normal: Este es un trabajo para la asignatura de Redes" Clave: Video Texto cifrado: T ROAAA E EUA STDD SSTJR NAR NBPLIUEE EE AAAGR S

n b p l

r o a a

a a a g r

j r

s t d

i u e e

n a R

Rellenos de una sola vez

El mtodo consistira en:


Escoger una clave al azar, Por otro lado se convierte el texto normal en una cadena de bits Se calcula el XOR de estas dos cadenas

El texto cifrado es indescifrable ya que no proporciona ninguna informacin. Problemas:

La clave no puede memorizarse La cantidad de datos que se puede transmitir est limitada a la cantidad de clave disponible Es sensible a la perdida o insercin de caracteres si se pierde la sincrona entre receptor y emisor

Algoritmos de clave simtrica


Tambin se le denomina critografa privada o cifrado por bloques. Se caracteriza por usar la misma clave para encriptar y desencriptar.

Toda la seguridad est basada en la privacidad de esta clave

Cifrado de producto

Se apoyan en dos conceptos:

Confusin: tratar de ocultar la relacin que existe entre el texto normal, el texto cifrado y la clave, es decir, realizar sustituciones simples Difusin: trata de repartir la influencia de cada bit del mensaje original lo ms posible en el mensaje cifrado, es decir, realizar permutaciones

Estas tcnicas consisten en trocear el mensaje en bloques de tamao fijo, y aplicar la funcin de cifrado a cada uno de ellos. Destacar que la confusin por s sola sera suficiente, pero ocupara mucha memoria, por lo que sera inviable.

Algoritmo DES

Es el algoritmo simtrico ms extendido mundialmente. Codifica bloques de 64 bits empleando claves de 56 bits. Consta de 16 rondas, ms dos permutaciones, una que se aplica al principio (Pi) y otra al final (Pf ), tales que la ltima es la inversa de la primera. Para descifrar basta con usar el mismo algoritmo empleando el orden inverso. Ventajas del algoritmo:

Es muy rpido y fcil de implementar.

Desventajas:

Emplea una clave demasiado corta, lo cual hace que con el avance actual de los ordenadores, los ataques por la fuerza bruta se puedan llevar a cabo.

Variantes del DES

Se han propuesto variantes de este algoritmo para as aprovechar gran parte de las implementaciones por hardware existentes de DES. De ellos el que cabe destacar es: DES Mltiple:

Consiste en aplicar varias veces el algoritmo DES con diferentes claves al mensaje original. El ms comn de todos ellos es el Triple-DES, que responde a la siguiente estructura:

Codificar con la subclave k1, decodificar con k2 y volver a codificar con k1. La clave resultante es la concatenacin de k1 y k2, con una longitud de 112 bits.

Idea (International Data Encryption Algorithm)

Codifica bloques de 64 bits empleando una clave de 128 bits. Como en el caso de DES, se usa el mismo algoritmo tanto para cifrar como para descifrar. Es un algoritmo bastante seguro, y hasta ahora se ha mostrado resistente a los ataques. Su longitud de clave hace imposible en la prctica un ataque por la fuerza bruta como se poda hacer en el DES.

Consta de ocho rondas. Dividiremos el bloque X a codificar, de 64 bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Zi a cada una de las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos a cabo en cada ronda, se pueden apreciar en la figura:

X1

X2

X3

X4

X1

X2

X3

X4

Algoritmo de Rijndael (AES)

Es considerado el sucesor de DES. Este algoritmo se adopt oficialmente en octubre del 2000 como nuevo Estndar Avanzado de Cifrado (AES) por el NIST (National Institute for Standards and Technology) para su empleo en aplicaciones criptogrficas. Su nombre se debe a dos autores belgas Joan Daemen y Vincent Rijmen.

Como peculiaridad tiene que todo el proceso de seleccin, revisin y estudio tanto de este algoritmo como de los restantes candidatos, se efectu de forma pblica y abierta, por lo que, toda la comunidad criptogrfica mundial ha participado en su anlisis, lo cual convierte a Rijndael en un algoritmo perfectamente digno de la confianza de todos. AES es un sistema de cifrado por bloques, diseado para manejar longitudes de clave y de bloque variables, ambas comprendidas entre los 128 y los 256 bits.

Se basa en aplicar un nmero determinado de rondas a un valor intermedio que se denomina estado y que se representar en una matriz rectangular, que posee cuatro filas, y Nb columnas. A[4,Nb] La clave tiene una estructura anloga a la del estado, y se representar mediante una tabla con cuatro filas y Nk columnas. K[4,Nk] El bloque que se pretende cifrar o descifrar se traslada a la matriz de estado y anlogamente, la clave se copia sobre la matriz de clave Siendo B el bloque que queremos cifrar, y S la matriz de estado, el algoritmo AES con n rondas queda como sigue:

1. Calcular K0,K1, Kn subclaves a partir de la clave K. 2. S B K0 3. Para i = 1 hasta n hacer 4. Aplicar ronda i-sima del algoritmo con la subclave Ki. Puesto que AES permite emplear diferentes longitudes tanto de bloque como de clave, el nmero de rondas requerido en cada caso es variable Siendo S la matriz de estado, y Ki la subclave correspondiente a la ronda i-sima, cada una de las rondas posee la siguiente estructura: 1. S ByteSub(S) 2. S DesplazarFila(S) 3. S MezclarColumnas(S) 4. S Ki S

Funciones DesplazarFila y MezclarColumnas permiten obtener un alto nivel de difusin a lo largo de varias rondas. Funcin ByteSub consiste en la aplicacin paralela de s-cajas. La capa de adicin de clave es un simple or-exclusivo entre el estado intermedio y la subclave correspondiente a cada ronda. La ltima ronda es igual a las anteriores, pero eliminando el paso 3.
El algoritmo de descifrado consistir en aplicar las inversas de cada una de las funciones en el orden contrario Es un algoritmo resistente al criptoanlisis tanto lineal como diferencial y uno de los ms seguros en la actualidad.

Modos de Operacin para Algoritmos de Cifrado por Bloques

Independientemente del mtodo empleado qu ocurre cuando la longitud del mensaje no es un mltiplo exacto del tamao de bloque?

Se ha de aadir informacin al final para que s lo sea. Mecanismo:


Rellenar con 0s el bloque que se codifica hasta completar. Problema: cundo se descifra por donde hay que cortar?.

Aadir como ltimo byte del ltimo bloque el nmero de bytes que se han aadido.

Por otro lado


Los algoritmos simtricos encriptan bloques de texto aplicando cifrados de bloques. El tamao de los bloques puede ser constante o variable segn el tipo de algoritmo. Tienen 4 formas de funcionamiento:

ECB CBC

CFB OFB

- Modo ECB (Electronic Code Book)


Es el mtodo ms sencillo de aplicar Subdivide la cadena a codificar en bloques del tamao fijo y se cifran todos ellos empleando la misma clave.

Ventajas:

Desventajas:

Permite codificar bloques independientemente de su orden. Es resistente a errores.

Si el mensaje presenta patrones que se repiten, el texto cifrado tambin los presentar. Puede sufrir una sustitucin de bloques

- Modo CBC (Cipher Book Chaining)

Es un mecanismo de retroalimentacin de bloques mediante una codificacin XOR entre el mensaje a codificar y el criptograma cifrado anterior. No comienza a codificar hasta que no tenga un bloque entero

Ventajas:

Desventajas:

Nos protege respecto a la sustitucin de bloques. Es resistente a errores.

Si dos textos tienen el mismo patrn obtendrn el mismo resultado usar Vector de Inicio

- Modo CFB (Cipher Feedback Mode)


Permite codificar la informacin en unidades inferiores al tamao del bloque Realiza una XOR entre caracteres o bits aislados del texto y las salidas del algoritmo.

Ventajas:
- Permite aprovechar totalmente la capacidad de transmisin del canal de comunicaciones con mayor seguridad.

- Modo OFB (Output FeedBack Mode)


Como el CFB, realiza una XOR entre caracteres o bits aislados del texto y las salidas del algoritmo. Pero utiliza como entradas sus propias salidas, por lo tanto no depende del texto.

Ventajas:

Ya no depende del texto

Algoritmos de clave asimtrica

Se caracteriza por usar una clave para encriptar y otra para desencriptar. Una clave no se derivar de la otra. Emplean longitudes de clave mucho mayores que los simtricos. Adems, la complejidad de clculo que comportan los hace ms lentos que los algoritmos de cifrado simtricos. Por ello, los mtodos asimtricos se emplean para intercambiar la clave de sesin mientras que los simtricos para el intercambio de informacin dentro de una sesin.

Aplicaciones

Cifrado de la informacin sin tener que transmitir la clave de decodificacin, lo cual permite su uso en canales inseguros.

La clave que se hace pblica es aquella que permite codificar los mensajes, mientras que la clave privada es aquella que permite descifrarlos.

Autentificacin de mensajes que nos permiten obtener una firma digital a partir de un mensaje. Dicha firma es mucho ms pequea que el mensaje original, y es muy difcil encontrar otro mensaje de lugar a la misma.

La clave de descifrado se har pblica previamente, y la clave que se emplea para cifrar es la clave privada.

Algoritmo RSA

Debe su nombre a: Ronald Rivest, Adi Shamir y Leonard Adleman. Las primeras versiones de PGP lo incorporaban como mtodo de cifrado y firma digital. Se le tiene como uno de los algoritmos asimtricos ms seguros. RSA se basa en la dificultad para factorizar grandes nmeros. El atacante se enfrentar a un problema de factorizacin.

Vulnerabilidades:
-

Claves Demasiado Cortas


Deberemos escoger la longitud de la clave en funcin del tiempo que queramos que nuestra informacin permanezca en secreto.

Ataques de Intermediario
Puede darse con cualquier algoritmo asimtrico. Manera de evitar: Certificados de confianza, que certifican la autenticidad de la clave.

Ataques de Texto en Claro Escogido


Explota la posibilidad de que un usuario codifique y firme un nico mensaje empleando el mismo par de claves.

Firmar y Codificar
Nunca se debe firmar un mensaje despus de codificarlo ya que existen ataques que aprovechan este hecho.

Algoritmo de Diffie-Hellman

Se emplea fundamentalmente para acordar una clave comn entre dos interlocutores, a travs de un canal de comunicacin inseguro. Algoritmo:

A escoge un nmero aleatorio x, y enva a B el valor x(mod p) B escoge un nmero aleatorio y enva a A el valor y(mod p) B recoge x y calcula K = ( x)y (mod p). A recoge y y calcula K = ( y)x (mod p).

Ventaja: no son necesarias claves pblicas en el sentido estricto, sino una informacin compartida por los dos comunicantes.

Algoritmo ElGamal

Fue diseado en un principio para producir firmas digitales, pero posteriormente se extendi tambin para codificar mensajes. Se basa en el problema de los logaritmos discretos Algoritmo:

Se escoge un nmero primo n y dos nmeros aleatorios p y x menores que n. Se calcula entonces la expresin: y = px (mod n) La clave pblica es (p, y, n), mientras que la clave privada es x.

Algoritmo ElGamal

Firmas Digitales de ElGamal Escoger un nmero k aleatorio, tal que mcd(k,n-1) =1, y calcular: a = pk(mod n) b = (m-xa)k-1 (mod (n-1))

La firma la constituye el par (a, b). En cuanto al valor k, debe mantenerse en secreto y ser diferente cada vez.
La firma se verifica comprobando que

yaab = pm (mod n)

Codificacin de ElGamal Para codificar el mensaje m se escoge primero un nmero aleatorio k primo relativo con (n-1), que tambin ser mantenido en secreto. Calculamos: a = pk (mod n) b = ykm (mod n) El par (a, b) es el texto cifrado, de doble longitud que el texto original. Para decodificar se calcula m = b * a-x (mod n)

Algoritmo de Rabin

Se basa en el problema de calcular races cuadradas modulo un nmero compuesto. Este problema se ha demostrado que es equivalente al de la factorizacin de dicho nmero. En primer lugar escogemos dos nmeros primos, p y q, ambos congruentes con 3 mdulo 4 (los dos ltimos bits a 1). Estos primos son la clave privada. La clave pblica es su producto, n = pq. Para codificar un mensaje m, se calcula: c = m2 (mod n)

Algoritmo DSA (Digital Signature Algorithm)


Es una parte el estndar de firma digital DSS (Digital Signature Standard). Este algoritmo, propuesto por el NIST, data de 1991, es una variante del mtodo asimtrico de ElGamal. Pasos:

Por un lado se generar la clave pblica compuesta por (p, q, , y). Y por otro la clave privada a. Se gener la firma con la cual podr operar el emisor. El destinatario efectuar las operaciones oportunas, suponiendo que conoce la clave pblica (p, q, , y), para verificar la autenticidad de la firma.