Actualmente los antiguos métodos
de cifrado se han quedado obsoletos debido a la rapidez de computación
de los actuales ordenadores. Como ejemplo: en 1917 el algoritmo de vigenère
fue descrito como irrompible, hoy en día un mensaje cifrado con
él se tardarían menos de dos minutos en descifrarlo con un
computador. Por ello se han tenido que buscar métodos más
complejos de cifrado.
1.CRIPTOGRAFÍA DE CLAVE PRIVADA
Se caracteriza por usar la misma clave para cifrar que para descifrar, de ahí que también se le conozca con el nombre de simétrica. Su éxito radica en el secreto de la clave, que será la misma para el emisor que para el receptor. Los algoritmos de clave simétrica son más sencillos de implementar y más rápidos a la hora de cifrar y descifrar que los de clave pública.
La mayoría de estos algoritmos se basan en las técnicas de confusión y difusión (sustitución y permutación), que dan lugar a los cifrados de producto.
REDES DE FIESTEL
Es una estructura utilizada en la mayoría
de los cifrados de producto. Se trata de dividir un bloque de longitud
n en dos mitades, L y R, para luego aplicar un número finito de
iteraciones que finalmente da como resultado el mensaje cifrado.
ALGORITMO DES (Data Encription Standard)
El algoritmo de encriptamiento DES es el más utilizado en el mundo. Aunque no se ha dado el caso de que se descubra la clave a partir del texto cifrado si que es factible descifrar el texto mediante un ataque con fuerza bruta, gracias a los ordenadores de hoy en día. El des seguirá siendo útil solo cuando lo que queramos cifrar sea menos valioso que el coste de descifrarlo. Para solventar el problema surgió la idea de usar el algoritmo tres veces para así reforzarlo. Tiene el nombre de Des-Triple. Utiliza dos llaves de 56 bits. Primero se encripta el mensaje con la primera llave, luego se desencripta con la segunda para acabar encriptando otra vez con la primera. Esto es posible gracias a que las claves no forman una estructura de grupo. Esta condición la deberían cumplir todos los algoritmos.
Des es un cifrador en bloque, es decir, trabaja con bloques de 64 bits y con una clave de 56 bits a la cual se le añaden 8 bits de paridad. Cada bloque de 64 bits es dividido en dos de 32 bits, llamados L y R.
Paso 1: La clave es permutada para sacar 16 subllaves cada una de las cuales de 48 bits.
Paso 2: Se codifica cada bloque de 64 bits. primero se le aplica una permutación inicial al bloque. Luego se realizan las 16 iteraciones usando una función que opera en dos bloques (uno de 32 y una de las claves des 48 bits) para producir un bloque de 32 bits donde:
Ln = Rn-1
Rn = Ln-1 XOR f(Rn-1,Kn)
En cada iteración se cogen los 32 bits derechos del resultado anterior y se ponen a la izquierda. Luego se cogen los otros y se les aplica una operación XOR con la función f. Este resultado se reparte en grupos de 6 bits y se tomaran como direcciones para las cajas S. Localizado en ese lugar se encontrará un número de 4 bits. Este número de 4 bits reemplazará a los 6 originales. El resultado neto es que los 8 grupos de 6 bits serán transformados en 8 grupos de 4 bits
Paso 3: Se aplica una permutación
final. Esta será la inversa de la inicial.
La desencriptación es simplemente el inverso de la encriptación, siguiendo los mismos pasos pero invirtiendo el orden en que las subllaves son aplicadas.
Se puede cambiar el algoritmo cambiando tan solo las cajas S.
Modos de operación DES
El algoritmos DES convierte un bloque de
mensaje de 64 bits M en un bloque encriptado C de 64 bits. Si cada bloque
de 64 bits es encriptado individualmente, se llama a este modo de operación
modo Electronic Code Book (ECB), los bloques solo tienen en común
que han sido cifrados con la misma clave. Existen otras dos modalidades
de encriptación DES llamadas Chain Block Coding (CBC) y Cipher Feedback
(CFB), los cuales encriptran cada bloque dependiendo de los bloques previos
por una operación XOR inicial. Es mejor el uso de estos dos últimos
cuando la información es my evidente.
Hay que tener cuidado al usar el des ya
que tiene 4 claves débiles con las cuales el cifrado es igual al
mensaje original y 12 claves semidébiles que el cifrado es muy parecido
al mensaje original.
ALGORITMO IDEA (International Data Encryption Algorithm)
Es un algoritmo de cifrado simétrico. Fue creado en 1992. Cifra bloques de texto de 64 bits con una clave de 128 bits. Se usa el mismo algoritmo tanto para cifrar como para descifrar. Usa operaciones como XOR exclusiva, suma y multiplicación de enteros.
No ha sido roto todavía, en parte
gracias a la longitud de su clave. Es de libre difusión por lo que
es muy usado.
ALGORITMO RC4
El algoritmo hace un XOR al mensaje con
un arreglo que se supone aleatorio y que se desprende de la clave.
2.CRIPTOGRAFÍA DE CLAVE
PÚBLICA
La criptografía de clave pública se caracteriza por usar un par de claves distintas para cada usuario. Entre las claves existe una relación, lo que una clave cifra la otra lo descifra, nunca se podrá cifrar y descifrar algo con la misma clave. Una clave privada que el usuario tendrá que mantener en secreto y con la que podrá descifrar, otra clave pública que podrá conocer todo el mundo y con la que se cifrará la información que se le quiera dar al usuario. Este método surge del problema que tiene la criptografía simétrica a la hora de comunicar las claves. Así no se pone en peligro la seguridad de la clave privada ya que es la clave pública la que se manda, lo cual permite su uso en canales inseguros.
Las llaves pública y privada tienen características matemáticas, su generación es siempre en parejas, y están relacionadas de tal forma que si dos llaves públicas son diferentes, entonces, las correspondientes llaves privadas son diferentes y viceversa. En otras palabras, si dos sujetos tienen llaves públicas diferentes, entonces sus llaves privadas son diferentes.
Los algoritmos de cifrado asimétrico se basan en general en plantear al atacante problemas matemáticos difíciles de resolver. Estos algoritmos emplean generalmente longitudes de clave enormes, mucho más largas que las de los simétricos.
Estos algoritmos son muy seguros pero son
muy lentos a la hora de descifrar con lo cual en la práctica se
cifra con los algoritmos simétricos los mensajes grandes y se manda
el mensaje cifrado junto con la clave de sesión (clave simétrica,
normalmente es un número aleatorio nuevo para cada sesión,
por ello no hay que guardarla) cifrada con algoritmos asimétricos.
Así el descifrar la clave no se hace costoso por que es corta y
luego descifrar algo largo con los algoritmos simétricos es muy
rápido.
Cuando el envío es múltiple
solo hace falta añadir la clave simétrica cifrada con la
clave pública del resto de personas a las que se le quiera enviar
el mensaje.
ALGORITMO RSA
Apareció en 1978, fue creado por Ron Rivest, Adi Shamir y Leonard Adleman. tiene gran aceptación debido a la seguridad que ofrece. Se han implementado otros sistemas de clave pública pero no han tenido tanto éxito.
EL algoritmo funciona de la siguiente manera: se eligen dos números primos grandes y fuertes p,q y se multiplican, n=pq. Como p y q son primos su función de euler será: FE= (p-1)(q-1). Se escoge un número e menor que n y que e y FE sean primos entre si. Se elige otro número d que cumpla: ed-1 divisible por FE. La clave pública será (e,n) y la clave privada será (d,n).
La fortaleza de este sistema está
en la longitud de la clave, ya que para sacar la clave privada a partir
de la pública se debería factorizar n en p y
q
y esto es un problema computacionalmente intratable. En el caso
de un ataque a fuerza bruta sería más difícil todavía
descifrarlo.
Para encriptar: c=m^e (mod n)
Para desencriptar: m=c^d (mod n)
Esto es cierto porque d y e son inversas.
La longitud de la clave no está fijada pero actualmente es aconsejable que no sea menor de 1024 bits.
Una de las desventajas de estos algoritmos
es que se puede obtener todo el texto cifrado que se quiera, ya que se
conoce la clave pública y a partir comparar el texto cifrado con
el no cifrado.