Was genau macht SPECK und SIMON besonders für IoT-Geräte geeignet?


12

Bei einigen IoT-Geräten sind die zu sendenden Daten vertraulich und können daher nicht im Klartext gesendet werden. Aus diesem Grund habe ich mir überlegt, wie zwischen IoT-Geräten gesendete Daten verschlüsselt werden können. In einem Artikel, den ich kürzlich auf der Website des RFID Journal gelesen habe, werden die von der NSA entwickelten SPECK- und SIMON- Chiffren als besonders geeignet für IoT-Anwendungen erwähnt:

Die NSA stellt die Verschlüsselungen [...] kostenlos zur Verfügung, um die Sicherheit im Internet der Dinge (Internet of Things, IOT) zu gewährleisten, in dem Geräte Daten mit anderen im Internet austauschen.

[...]

Die NSA-Forscher entwickelten SIMON und SPECK als Verbesserung der bereits verwendeten Blockchiffrierungsalgorithmen, die in den meisten Fällen für Desktop-Computer oder sehr spezielle Systeme entwickelt wurden

Warum sollte ich für mein IoT-Gerät einen neueren Algorithmus wie SIMON oder SPECK auswählen, insbesondere für Anwendungen mit eingeschränkter Stromversorgung (z. B. nur Batterieleistung)? Was sind die Vorteile gegenüber anderen Verschlüsselungssystemen wie AES ?

Antworten:


7

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:

  1. 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.

  2. 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.

  3. 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 ?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.