Cifrado IDEA (International Data Encryption Algorithm).
Después de comprobar la debilidad del algoritmo DES en su forma simple, diversos trabajos propusieron nuevos métodos de cifrados de bloques (BLOWFISH, Crab, FEAL, KHAFRE, LOKI91, NEWDES, REDOCII, SAFER K64). Sin embargo el más interesante e importante de los cifrados posteriores al algoritmo DES es el algoritmo IDEA, algoritmo internacional de cifrado de datos. El algoritmo IDEA es un algoritmo de clave privada que fue diseñado por dos investigadores en Suiza, usa una clave de 128 bits, lo que lo hará inmune durante décadas a los ataques de la fuerza bruta, la lotería china y a los ataques de encuentro a la mitad. No hay ninguna técnica o máquina conocida actualmente que se crea que puede descifrar el algoritmo IDEA. La estructura básica del algoritmo se asemeja al algoritmo DES en cuanto a que se alteran bloques de entrada de texto normal de 64 bits en una secuencia de iteraciones parametrizadas para producir bloques de salida de texto cifrado de 64 bits, como se puede ver en la figura siguiente.
Figura 5: Algoritmo del cifrado IDEA.
Dada la extensa alteración de bits (por cada iteración, cada uno de los bits de salida depende de cada uno de los bits de entrada), basta con ocho iteraciones. Como con todos los cifrados de bloque, el algoritmo IDEA también puede usarse en el modo de realimentación de cifrado y en los demás modos del algoritmo DES. El algoritmo IDEA usa tres operaciones, todas sobre números sin signo de 16 bits. Estas 16 16 operaciones son un or exclusivo, suma módulo 2 y multiplicación módulo 2 +1. Las tres operaciones se pueden efectuar fácilmente en una microcomputadora de 16 bits ignorando las partes de orden mayor de los resultados. Las operaciones tienen la propiedad de que ningunos dos pares obedecen la ley asociativa ni la ley distributiva, dificultando el criptoanálisis. La clave de 128 bits se usa para generar 52 subclaves de 16 bits cada una, 6 por cada una de las ocho iteraciones y 4 para la transformación final. El descifrado usa el mismo algoritmo que el cifrado, sólo que con subclaves diferentes.