Bitslicing
Eine Implementierungstechnik, die ein CPU-Wort als Dutzende parallel arbeitender Ein-Bit-Prozessoren behandelt und S-Boxen als reine Boolesche Logik umschreibt.
Eli Biham führte sie 1997 für DES ein. Statt einen Block nach dem anderen zu verschlüsseln, legt man Bit i von 64 verschiedenen Blöcken in dasselbe 64-Bit-Register, sodass jedes AND, XOR oder OR alle Blöcke auf einmal bearbeitet. S-Boxen werden zu Gatternetzwerken statt zu Nachschlagetabellen, und Bitpermutationen — in gewöhnlicher Software teuer — kosten nichts, weil es nur darauf ankommt, welches Register man liest.
Der größere Gewinn lag am Ende nicht in der Geschwindigkeit, sondern in der Sicherheit. Ohne Tabellenzugriffe gibt es keine cacheabhängigen Speicherzugriffe und damit keinen Cache-Timing-Angriff. 2009 veröffentlichten Emilia Käsper und Peter Schwabe ein Bitslice-AES mit SIMD-Befehlen, das schnell und zugleich frei von Seitenkanälen war. Der Haken: Man braucht viele Blöcke gleichzeitig, was zu CTR deutlich besser passt als zu CBC.