Algoritmos simétricos:
Estos algoritmos presentan la particularidad de
presentar una sola llave, que se usa tanto para
cifrar como para descifrar. Este principio se
muestra en la siguiente figura.
Como dijimos, el algoritmo es ampliamente conocido,
como nuestro candado del dibujo, pero sólo quien
posea la llave (que es el secreto), en este caso
amarilla, podrá operarlo. Como se ve en la figura
siguiente, la misma llave se usa a ambos extremos.
La fortaleza de los algoritmos
simétricos está dada por la longitud de sus llaves.
Imaginemos el caso de la llave de un candado. Si una
persona tuviese que adivinar la forma de la llave
sin saber ningún dato, cuanto más larga sea,
presentará más variabilidad de dientes y hendiduras,
haciéndola más segura. El concepto informático es el
mismo, a llaves más grandes (más bits), mayor
seguridad.
Los algoritmos simétricos son muy
rápidos para cifrar y descifrar gran cantidad de
datos, lo que los hace apropiados para cifrar un
archivo completo, un ejecutable de un programa, o
una imagen.
La gran limitación de los
algoritmos simétricos se da en los casos en que
trabajar con la misma llave se vuelve un problema.
Justamente la distribución de la llave entre las
personas que deseen operar entre sí supone que se
encuentren en algún lugar, o tengan otro medio
confiable para la distribución de la llave.
Generalmente se dice que encuentran mayor aplicación
en casos 1 a 1, donde solo dos individuos deben
conocer la misma llave.
Hay una multitud de algoritmos
simétricos -los bloques antes mencionados como
“algoritmo conocido”- por ejemplo DES, Triple DES,
AES, Blowfish, IDEA, entre otros.
Algoritmo DES
Sin duda el DES (Data Encryption
Standard) es el algoritmo simétrico más usado hasta
nuestros días. Creado en 1974, fue adoptado como
estándar por el gobierno de EEUU en 1977, y como
estándar ANSI en 1981.
Extrañamente, el algoritmo
original propuesto por la IBM tenía una clave de 128
bits, pero el estándar adoptado la recortó a 64
bits. La clave es considerada algo corta para el
poder computacional actual, como quedó demostrado en
1998, cuando diversas personas en conjunto aplicaron
el método de fuerza bruta y lograron romperlo. Sin
embargo, se sigue considerando fuerte, ya que no ha
demostrado ninguna debilidad desde el punto de vista
teórico.
El algoritmo DES codifica bloques
de texto plano de 64 bits, utilizando una clave de
64 bits, y produciendo texto cifrado también de 64
bits.
Variantes del algoritmo DES:
Se han intentado muchas variantes
al algoritmo DES, la mayoría de ellas resultando en
poca o nada mejoría respecto del original, algunas
incluso con peores comportamientos.
La variante más utilizada de DES
es la que justamente apunta a solucionar el problema
de longitud de clave del algoritmo. Esta variante es
la llamada “Triple DES”.
En Triple DES ciframos con la
clave k1, desciframos con la k2, y ciframos
nuevamente con k1. La clave resultante es la
concatenación de k1 y k2, con una longitud de 112
bits. La figura siguiente muestra el proceso.
El proceso de descifrado es
naturalmente opuesto. Siguiendo la secuencia
completa de las transformaciones, queda claro que
terminamos con el mismo texto plano original.
Nótese que cada etapa del
descifrado va deshaciendo la etapa correspondiente
del cifrado, ya que utiliza el algoritmo opuesto,
con la misma clave.
Criptoanálisis de algoritmos
simétricos
DES ha motivado numerosos métodos
de criptoanálisis. Ninguno de ellos ha logrado
doblegarlo, pero sí han “profesionalizado” esta
actividad, causando ataques con éxito a otros
algoritmos.
La forma más simple de ataque,
llamada “fuerza bruta” simplemente intenta todas las
posibles claves hasta que con una de ellas aparece
el texto plano, legible. El siguiente cuadro muestra
el tiempo necesario para probar todas las posibles
claves.
Queda claro que si la longitud de
la clave (en bits) es 128 bits o más, resulta
impráctico probar todas las claves. En la tabla se
muestra el tiempo necesario para probar todas las
combinaciones si se realizara un cifrado por cada
microsegundo (velocidad realista en nuestros días),
y si se realizaran 1 millón de cifrados (106) por
cada microsegundo (velocidad alcanzable en los
próximos años). Cabe notar que una indicación de 109
equivale a un 1 seguido de 9 ceros
Los dos esquemas más usados, que
comentaremos ahora, se basan en tener gran cantidad
de texto plano y su correspondiente texto cifrado.
El usar claves diferentes cada vez que se emplea DES
–“claves de sesión”- pone aún más seguridad en la
seguridad del algoritmo.
Criptoanálisis diferencial:
Se basa en analizar dos textos
cifrados que provienen de dos textos planos que
tienen diferencias particulares entre ellos (un
número de bits). Se analizan los textos cifrados y
buscan claves que tengan alta probabilidad de
producir esas diferencias entre los textos cifrados.
A medida que tengamos más pares de texto cifrado a
analizar, una de las claves se ve como la más
probable.
Criptoanálisis lineal:
Este método se basa en efectuar
una operación lógica XOR entre varios bits del texto
plano, y luego hacer la misma operación, pero con el
texto cifrado. Luego se hace una XOR con los dos
resultados anteriores, obteniendo un único bit.
Haciendo este proceso una gran
cantidad de pares texto plano-cifrado, podemos
observar si obtenemos más ceros o más unos. La
presencia de muchos más ceros que unos, o viceversa,
se utiliza para asignar probabilidades de acierto a
la clave analizada.
Néstor Pisciota
Universidad Blas Pascal
|