Está en la página 1de 36

Algoritmos criptogrficos

Trabajo realizado por:


H. Daniel Zurita Castro
Semana de la Carrera de
Ingeniera en Sistemas

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. Se busca una palabra (clave) fcil de recordar y se le quitan las letras duplicadas.
SEGURIDAD SEGURIDA
2. Se aaden al final de la palabra las restantes letras del alfabeto (sin duplicar letras).
SEGURIDABCFH..................XYZ
3. Se ordenan en una matriz cuya primera fila es la palabra clave
S E G U R I D A
B C F H J K L M
N O P Q T V W X
Y Z
4. 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: A D I O S A D I O S A D I O S A D
Criptograma E V B D W S F Z W H T R T C Y I D

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:
- Texto normal:
Estamos en la semana de la carrera"
- Clave: Video
- Texto cifrado:
T AAECRAE N AASSLMD EMNSALR
EO E AR
V I D E O
5 3 1 2 4
E s t a m
o s e n
l a s
e m a n a
d e l
a c a r
r e r a
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.

c
S 1010011 1100011 1001111 O
I 1001001 1100011 1010101 U
s 1110011 1100011 1101111 o
t 1110100 1100011 1101000 h
e 1100101 1100011 1111001 y
m 1101101 1100011 1110001 q
a 1100001 1100011 1111101 }
s 1110011 1100011 1101111 o
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:
X
1
X
2
X
3
X
4

X
1
X
2
X
3
X
4

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
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.
Independientemente del mtodo empleado qu
ocurre cuando la longitud del mensaje no es un
mltiplo exacto del tamao de bloque?
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:
Permite codificar bloques
independientemente de
su orden.
Es resistente a errores.
Desventajas:
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:
Nos protege respecto a la
sustitucin de bloques.
Es resistente a errores.
Desventajas:
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 = p
x
(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 = p
k
(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 y
a
a
b
= p
m
(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 = p
k
(mod n)
b = y
k
m (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 = m
2
(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.

También podría gustarte