In "Die Simon- und Speck-Blockchiffren auf AVR-8-Bit-Mikrocontrollern" haben Beaulieu et al. Untersuchen Sie die Implementierung von SIMON und SPECK auf einem 8-Bit-Low-End-Mikrocontroller und vergleichen Sie die Leistung mit anderen Chiffren. Ein Atmel ATmega128 wird mit 128 KByte programmierbarem Flash-Speicher, 4 KByte SRAM und 32 8-Bit-Universalregistern verwendet.
Drei Verschlüsselungsimplementierungen werden verglichen:
- RAM-Minimierung
Diese Implementierungen vermeiden die Verwendung von RAM zum Speichern von runden Schlüsseln, indem die vorerweiterten runden Schlüssel in den Flash-Programmspeicher aufgenommen werden. Für die Aktualisierung dieses erweiterten Schlüssels ist kein Schlüsselzeitplan enthalten, sodass diese Implementierungen für Anwendungen geeignet sind, bei denen der Schlüssel statisch ist.
- Hoher Durchsatz / niedrige Energie
Diese Implementierungen umfassen den Schlüsselzeitplan und das Abwickeln von genügend Kopien der Rundenfunktion in der Verschlüsselungsroutine, um einen Durchsatz innerhalb von etwa 3% einer vollständig abgewickelten Implementierung zu erzielen. Der in Flash gespeicherte Schlüssel wird verwendet, um die runden Schlüssel zu erzeugen, die anschließend im RAM gespeichert werden.
- Flash-Minimierung
Der Schlüsselplan ist hier enthalten. Aufgrund der Platzbeschränkungen können wir diese Implementierungen nur unvollständig beschreiben. Es ist jedoch zu beachten, dass die beiden vorherigen Implementierungstypen bereits sehr bescheidene Codegrößen aufweisen.
Um verschiedene Chiffren zu vergleichen, wird ein Leistungseffizienzmaß - Rang - verwendet. Der Rang ist proportional zum Durchsatz geteilt durch die Speichernutzung.
SPECK belegt für jede unterstützte Block- und Schlüsselgröße den ersten Platz. Mit Ausnahme der 128-Bit-Blockgröße steht SIMON bei allen Block- und Schlüsselgrößen an zweiter Stelle.
...
Es überrascht nicht, dass AES-128 auf dieser Plattform eine sehr gute Leistung erbringt, obwohl SPECK bei gleicher Block- und Schlüsselgröße etwa die doppelte Leistung erbringt. Bei gleicher Schlüsselgröße, aber 64-Bit-Blockgröße, erzielen SIMON und SPECK eine zwei- bzw. viermal bessere Gesamtleistung als AES.
Beim Vergleich von SPECK 128/128 mit AES-128 stellen die Autoren fest, dass der Speicherbedarf von SPECK signifikant reduziert ist (460 Bytes gegenüber 970 Bytes), während der Durchsatz nur geringfügig verringert ist (171 Zyklen / Byte gegenüber 146 Zyklen / Byte). Somit ist die Leistung von SPECK (in der gewählten Metrik) höher als die von AES. Angesichts der Tatsache, dass die Geschwindigkeit mit dem Energieverbrauch korreliert, folgern die Autoren, dass "AES-128 in energiekritischen Anwendungen eine bessere Wahl ist als SPECK 128/128 auf dieser Plattform". Die Autoren sind sich jedoch nicht sicher, ob eine starke Auslastung des RAM-Zugriffs (Hochgeschwindigkeits-AES-Implementierungen) energieeffizienter ist als eine registergestützte Implementierung von SPECK. In beiden Fällen kann eine signifikante Reduzierung des Flash-Speicherverbrauchs erzielt werden, was für Low-End-Mikrocontroller von Bedeutung sein kann.
Wenn eine Anwendung hohe Geschwindigkeit erfordert und die Speichernutzung keine Priorität hat, hat AES die schnellste Implementierung (mit 1912 Byte Flash, 432 Byte RAM) unter allen Blockchiffren mit einem 128-Bit-Block und einem Schlüssel, die wir kennen Kosten von nur 125 Zyklen / Byte. Der nächstgelegene AES-Konkurrent ist SPECK 128/128 mit Kosten von 138 Zyklen / Byte für eine vollständig entrollte Implementierung. Da die Geschwindigkeit mit dem Energieverbrauch korreliert, ist AES-128 in energiekritischen Anwendungen möglicherweise die bessere Wahl als SPECK 128/128 auf dieser Plattform. Wenn jedoch kein 128-Bit-Block erforderlich ist, wie es für viele Anwendungen auf einem 8-Bit-Mikrocontroller zu erwarten ist, ist SPECK 64/128 eine energieeffizientere Lösung (unter Verwendung von 628 Byte Flash, 108 Byte RAM) gleiche Schlüsselgröße wie AES-128 und Verschlüsselungskosten von nur 122 Zyklen / Byte,
Außerdem enthält dieser Vortrag eine Enigma- Figur, wer könnte einer Chiffre widerstehen, die auf Enigma verweist ?