Descripción de la serpiente
Le sugiero que lea el documento presentado durante el concurso AES:
Speed
Serpent es más lenta que Rijndael (cifrado elegido para convertirse en AES), porque usa más rondas. Vea estos benchmarks , Serpent en modo CTR podría cifrar 32 MiB / seg mientras que AES-256 en modo CTR podría cifrar 96 MiB / segundo. Además, Serpent tardó 1,2 microsegundos en configurar la clave y IV, mientras que AES-256 tomó 0,76 microsegundos. Más referencias del concurso AES están disponibles aquí ; en una variedad de plataformas, Serpent puede cifrar de 2 a 4 veces menos datos que Rjindael (dado que esto fue Rjindael, que se modificó ligeramente para convertirse en AES).
Seguridad
Aproximadamente igual en que ambos, cuando se implementan adecuadamente, están protegidos contra todos los ataques computacionalmente factibles conocidos. Hay ataques ligeramente mejores en AES, pero todos los ataques públicos en AES no son computacionalmente viables (por ejemplo, 4 veces más rápido que la fuerza bruta), así como otros ataques oscuros en AES (es decir, hay un ataque clave relacionado en AES que Asumir que algunas condiciones extrañas es significativamente mejor que la fuerza bruta pero es irrelevante para AES como Normalmente se usa de una manera susceptible al ataque, y luego incluso el mejor ataque de clave relacionada lleva 2 veces 99.5 (lo que no es factible). Una razón importante para más ataques a AES es que AES se usa y analiza ampliamente, Serpent no se usa tanto como no ganó la competencia AES (Rijndael ganó y se convirtió en AES).
Modo de funcionamiento
El modo de la operación es independiente del cifrado de bloque utilizado, es una opción separada. Es decir, puedes usar serpent o AES o cualquier otro cifrado de bloque en cualquier modo de cifrado de bloque . Un modo de operación solo considera cómo se toma un cifrado de bloque que solo se puede usar para cifrar / descifrar bloques de un tamaño fijo (por ejemplo, un bloque de 128 bits para Serpent256 y AES256; 256 bits significa el tamaño de clave) y usarlo para cifrar / descifrar bloques de texto de tamaño arbitrario sin perder información si su texto en claro es redundante (excepto en el modo ECB, que es un modo inseguro en el que simplemente divide el texto en bloques de igual tamaño y aplica el cifrado de bloque en cada bloque de manera independiente).