Bitslice-Implementierung von Verschlüsselung
Will man die gleiche Verschlüsselung für viele Daten ausführen, dann
gibt es die Möglichkeit der bitslice-Implementierung: man drückt die
n-Bit Verschlüsselungsfunktion als Bündel von n boole'schen Funktionen
in n Variablen aus. Die Auswertung dieser boole'schen Funktionen auf
k-Bit Registern erlaubt dann k Verschlüsselungen gleichzeitig, was den
Ansatz speziell für die aktuellen Vektorregister interessant macht.
Einige Arbeiten berichten von Performance-Vorteilen für verschiedene
Chiffren trotz den Konvertierungs-Overheads vor- und nachher.
Denn: man muss die n-bit des i-ten Blocks, die sich normalerweise in n/8
konsekutiven Bytes befinden, konvertieren, so dass sie sich in n
Variablen befinden, und zwar jeweils in Bit i. Macht man dies für i=0
bis k-1, dann hat man letztlich eine n*k-Bitmatrix transponiert.
Die gleiche Transposition muss man nach der Verschlüsselung wieder
²¹³Ü²õ´Úü³ó°ù±ð²Ô.
Der Transpositions-Algorithmus ist einfach wenn min(n,k) eine
Zweierpotenz und der andere Parameter ein Vielfaches davon ist.
Der Vortrag zeigt auch, wie man vorgeht, wenn keine Zweierpotenz vorliegt.
