Este artículo
intenta explicar las verdaderas razones de la desclasificación
del algoritmo Skipjack por el gobierno de EE.UU. algunos detalles
sobre el algoritmo en sí y sus aplicaciones en la práctica
a los chips Clipper y Capstone.
Skipjack fue desarrollado
por la NSA inicialmente para los chips Clipper y Capstone. Su
diseño comenzó en 1985 y se completó su evaluación
en 1990. Digamos algo más sobre los chips antes de comenzar
con la descripción del algoritmo.
El chip Clipper
Este chip, también
conocido como MYK-78T , de diseño anti - manipulaciones
(tamper- proof) del tipo VLSI, fue pensado para encriptar mensajes
de voz. Lo manufactura VLSI Technologies y Mykotronx, Inc lo programa.
El aspecto más
controvertido del chip es, por supuesto, el protocolo de depósito
de claves. Cada chip tiene una clave especial que no se usa para
los mensajes, sino para encriptar una copia de la clave que el
usuario utiliza para sus mensajes. Como parte del proceso de sincronización,
el Clipper emisor genera y envía un “Law Enforcement
Access Field (LEAF)” al Clipper receptor. El LEAF contiene
una copia de la clave de sesión actual encriptada con una
clave especial llamada unit key. Esto permite a un ‘cotilla’
del gobierno de EE.UU. recuperar la clave de la sesión
y en consecuencia toda la conversación.
Supuestamente el chip
resistiría un intento de ingeniería inversa por
un adversario sofisticado y con bastante dinero; pero se rumorea
que en los Laboratorios Nacionales Sandia ya se ha hecho. Incluso
aunque no fuera así, es de suponer que los mayores fabricantes
de chips podrían realizar la ingeniería inversa
de Clipper. Es sólo cuestion de tiempo que aparezca alguien
con la combinación adecuada de recursos y (falta de) ética.
El chip Capstone
Capstone, también
conocido como MYK-80, es también un chip VLSI que implementa
el EES (Escrowed Encryption System) e incorpora las siguientes
funciones:
Capstone
proporciona las funcionalidades criptográficas necesarias
para el comercio electrónico y otras aplicaciones basadas
en el ordenador. La primera aplicación del chip Capstone
fue la tarjeta Fortezza.
El algoritmo
Siguiendo con Skipjack,
decir que es un cifrado simétrico que usa bloques de 64
bits y una clave de 80 bits. Como queda dicho se usaba en el programa
Clipper, pero no tenía el depósito de claves (key
escrow) incorporado (el depósito de claves era parte del
mecanismo de intercambio de claves y no del cifrado de datos).
Es un algoritmo de alto riesgo, lo que quiere decir que había
un elevado riesgo de que fuera comprometido. Por tanto, es improbable
que la NSA ponga en él sus diseños mas secretos
(o inteligentes).
Es más lento
que Blowfish y alguna de las propuestas AES, pero aún así
es el doble de rápido que DES en micros de 32 bits. Es
rápido cuando se usa en tarjetas inteligentes y eficiente
en hardware. Tampoco lleva tiempo la preparación de la
clave. Si no fuera por que el tamaño de la clave es pequeño
(80 bits), podríamos tenerlo en cuenta para nuestras aplicaciones.
Skipjack es interesante
sobre todo por su diseño. Es el primer algoritmo desarrollado
por la NSA que podemos ver. La criptografía es una ciencia
de adversarios. Alguien diseña un algoritmo, yo lo rompo.
Yo diseño otro; alguien más lo rompe. Así
es como aprendemos. Skipjack es un buen blanco, es un algoritmo
diseñado usando metodologías secretas por una organización
respetada.
Skipjack es una red
no equilibrada de Feistel
(específicamente una construcción incompleta), pero
es obviamente un producto de la criptografía militar. La
criptografía académica esta basada fundamentalmente
en el trabajo de Feistel a mediados de los 70 en IBM: redes SP
y redes de Feistel. La criptografía militar comenzó
con maquinas de rotor, y luego se generalizó a los registros
de desplazamiento (shift registers). El diagrama de bloques y
la descripción de Skipjack muestran claramente sus raíces
en los registros de desplazamiento. Resulta fascinante que las
dos formas de diseño estén convergiendo.
Lo primero que se observa
en Skipjack es su simplicidad. Hay pocos elementos de diseño,
y pensándolo un poco puedes señalar cada uno de
ellos y explicar porqué está allí. No hay
constantes misteriosas. Hay 32 rondas y 32 rondas pueden esconder
un montón de fallos, pero el diseño parece sólido.
Y a la vez muy frágil.
Algunos algoritmos son fuertes porque son de un tipo fuerte de
algoritmo. Los algoritmos similares también serán
fuertes, pero Skipjack no es así, es un único algoritmo
fuerte en un mar de mediocridad. Haz casi cualquier modificación
a Skipjack, incluso una pequeña y el resultado puede romperse.
Podemos prever que los trabajos de criptoanálisis más
interesantes vendrán del criptoanálisis de variantes
de Skipjack.
Algunas personas ya
intentan criptoanalizar Skipjack. Sobre todo hemos visto rupturas
de versiones modificadas del algoritmo, junto con explicaciones
de por qué el ataque no funcionaría contra Skipjack
propiamente dicho. Y Skipjack con menos rondas puede romperse,
pero eso era de esperar.
Finalmente, Skipjack
no es una propuesta para AES (Advanced Encription System), no
cumple las condiciones. AES es un cifrado de bloques de 128 bits;
Skipjack usa 64 bits. AES puede utilizar claves de 128, 192 y
256 bits frente a los 80 bits de Skipjack. Creo que podría
incrementarse el tamaño de bloque que utiliza Skipjack
sin afectar a la seguridad; pero no hay una forma obvia de incrementar
la longitud de la clave del algoritmo.
La desclasificación de Skipjack
La NSA ha desclasificado
Fortezza. Específicamente, han desclasificado Skipjack
y KEA (un algoritmo para intercambio de claves públicas).
SHA-1 (una función hash) y DSA (digital signature algorithm)
son también parte de Fortezza pero ya eran públicos.
No lo hicieron para
ayudar a la industria ni a los criptógrafos ni a nadie.
Lo hicieron para ayudarse a sí mismos porque tenían
que protegerse de una equivocación.
DMS (Defense Messaging
System) es un sistema clasificado de mensajes por ordenador; más
o menos como el e-mail, que utiliza tarjetas Fortezza PCMIA como
medida de seguridad. Como algunos de los algoritmos de Fortezza
estaban clasificados, las tarjetas con Fortezza tenían
todos los controles físicos y características de
resistencia a la manipulación que se necesitaban para proteger
dichos algoritmos.
Dentro de los protocolos
DMS no hay manera de tener varios cifrados diferentes. S/MIME
por ejemplo, define múltiples algoritmos, hay una variable
en el mensaje S/MIME que dice al receptor qué algoritmos
fueron utilizados para encriptar ese mensaje en particular.
El problema surgió
porque la NSA no podía instalar tarjetas Fortezza y lectores
lo suficientemente deprisa. No sé si eran demasiado caras
(*son* caras), si no podían aumentar la producción
a suficiente velocidad o si instalar la infraestructura (lectores
de tarjetas PCMCIA etc.) era demasiado problema para ellos. Estoy
seguro de que contaban con tener lectores de PCMCIA en todos los
ordenadores.
Cualquiera que fuera
la causa, la mayoría de la gente que necesitaba participar
en DMS no tenía el hardware necesario. Si pudieran establecer
un conjunto de algoritmos alternativos en DMS, entonces podrían
distribuir una versión sólo de software con algoritmos
no clasificados: triple-DES, Diffie-Hellman, etc. Cada terminal
sabría si estaba comunicándose con un DMS con Fortezza
habilitada o con un DMS sólo software y el problema desaparecería.
Pero el DMS no podía permitir esto, o usas Skipjack/KEA
o nada. Así que o eliminaban el cifrado o pasaban los algoritmos
clasificados a software.
Una vez que haces eso,
también podrías desclasificarlo. El comportamiento
del gobierno de EE.UU. ha sido simplemente hacer de la necesidad
virtud.
Referencias:
Boletín Cryptogram num. 1, www.counterpane.com
Applied Cryptography, B.Schneier
Publicado originalmente en la Tribuna de Kriptopolis