Bitslicing
Una técnica de implementación que trata cada palabra del procesador como decenas de procesadores de un bit en paralelo y reescribe las cajas S como lógica booleana pura.
Eli Biham la presentó en 1997 para DES. En vez de cifrar un bloque cada vez, se coloca el bit i de 64 bloques distintos en el mismo registro de 64 bits, de modo que cada AND, XOR u OR procesa todos a la vez. Las cajas S se convierten en redes de puertas en lugar de tablas, y las permutaciones de bits —caras en software normal— salen gratis, porque solo dependen de qué registro se lee.
La ganancia de verdad resultó ser la seguridad, no la velocidad. Sin consultas a tablas no hay accesos a memoria que dependan de la caché, y por tanto no hay ataque de temporización de caché. En 2009 Emilia Käsper y Peter Schwabe publicaron un AES con bitslicing sobre instrucciones SIMD, rápido y sin fugas. El precio es que hacen falta muchos bloques a la vez, algo que encaja mucho mejor con CTR que con CBC.