Dragon es un cifrado de flujo desarrollado en el Instituto de Seguridad de la Información por William Millan con la ayuda de Ed Dawson, Kevin Chen, Matt Henricksen, Leonie Simpson, HoonJae Lee y SangJae Moon.
Dragon es el primer cifrado de flujo publicado que emplea una retroalimentación no lineal para la función de actualización de estado y una función no lineal para la salida, donde el ciclo mínimo largo está garantizado por una estructura similar a un reloj. La retroalimentación y la salida se generan juntas mediante una permutación que toma como datos de entrada las palabras de estado de acuerdo con un conjunto de diferencias totalmente positivas. Estas opciones de diseño dificultan el empleo de métodos de análisis estándar. La permutación utiliza cajas S diseñadas utilizando heurísticas de búsqueda evolutiva.
El cifrado era un candidato de la Fase 3 del proyecto eSTREAM y cumplía con todos los requisitos de velocidad y seguridad. El cifrado está pensado para implementaciones de software rápidas y existen versiones con diferentes longitudes de clave . La versión seleccionada para la Fase 3 es Dragon-128. No está patentada .
Hasta la fecha, no se ha logrado atacar a Dragon con éxito, pero Cho y Pieprzyk encontraron sesgos en el componente no lineal primario del cifrado. [1] Algunos han sugerido que la seguridad del cifrado es más débil de lo que pretendían sus diseñadores. Sin embargo, los métodos para detectar los sesgos requieren una cantidad tan grande de datos, que no se generarían con ningún uso real del algoritmo, que existe una interpretación alternativa: el análisis publicado muestra que el cifrado es bastante seguro.