2.6 Seguridad de los sistemas criptográficos
La seguridad de un sistema criptográfico depende generalmente
de que al menos una de las claves empleadas sea secreta, más que
de que el algoritmo de encriptación sea secreto.
El publicar los algoritmos empleados por un sistema
criptográfico para que sean revisados públicamente es una buena
práctica que permite que se mejoren algoritmos no totalmente
seguros o se considere que un algoritmo no tiene
debilidades.
Los algoritmos criptográficos tienen distintos grados de
seguridad:
- Seguro computacionalmente. Con suficiente poder
de cálculo y almacenamiento el sistema puede ser roto, pero
a un coste tan elevado que no es práctico. De cualquier
modo, el coste computacional para considerar que un
algoritmo es seguro ha ido cambiando con el paso del tiempo;
algoritmos antes considerados seguros, como el DES, han sido
rotos en meses con sistemas distribuidos y en días con
sistemas diseñados específicamente para la tarea, como se
describe en
[EFF98]
.
- Seguro incondicionalmente. Son aquellos en los
que aun disponiendo de recursos y gran cantidad de texto
cifrado no es posible romper el algoritmo. Los únicos
sistemas incondicionalmente seguros son los One Time
Pads.
Un sistema criptográfico puede ser roto en varios niveles:
- Deducción de información. Se obtiene parte
de información de la clave o del texto en claro.
- Deducción de una instancia. Se obtiene el
texto en claro a partir de un texto cifrado.
- Deducción global. A partir de la deducción
de una instancia se obtiene un algoritmo que obtiene los
mismos resultados que el algoritmo original.
- Rotura total. Se recupera la clave y se
puede descifrar cualquier mensaje encriptado con la
misma clave.
Para romper un algoritmo se pueden emplear distintos tipos
de ataque criptoanalítico:
- Ataque de sólo texto cifrado. El analista
dispone de un texto cifrado y quiere obtener el texto en
claro o la clave. Se pueden usar métodos de fuerza
bruta (probando todas las claves posibles hasta que
obtenemos un mensaje con sentido) o basados en
diccionario (probando únicamente con un subconjunto
de las claves posibles, por ejemplo si las claves son
palabras). Es importante disponer de suficiente texto en
clave para que sea fácil identificar cual es el texto en
claro correcto.
- Ataque de texto en claro conocido. El analista
dispone de un texto en claro y su correspondiente texto
cifrado, lo que permite reducir el espacio de búsqueda de
claves u obtener estadísticas que pueden usarse para hacer
deducciones en otros textos cifrados.
- Ataque de texto en claro conocido
adaptativo. Es igual que el anterior pero el analista
puede elegir nuevos textos dinámicamente y alterar sus
elecciones en función de los resultados que va
obteniendo.
- Ataque de texto en claro elegido. El analista
puede elegir el texto en claro y obtener el texto cifrado
correspondiente. Este tipo de ataque puede evitar duplicados
y centrarse más en las debilidades del algoritmo.
- Ataque de texto en claro elegido adaptativo. Es
la versión adaptativa del ataque anterior.
Para que un sistema criptográfico sea considerado como
fuerte debe tener las siguientes características:
- Debe disponer de un número muy elevado de claves
posibles, de modo que sea poco razonable intentar descifrar
un mensaje por el método de la fuerza bruta (probando todas
las claves).
- Debe producir texto cifrado que parezca aleatorio a un
test estadístico estándar.
- Debe resistir todos los métodos conocidos de romper los
códigos, es decir, debe ser resistente al
criptoanálisis.