Hardwaresicherheit
Was ist bei der Implementierung kryptografischer Verarbeitung in „konstanter Zeit“ (Constant-Time) zu beachten?
- ADie gesamte Verarbeitung soll stets genau eine Sekunde dauern
- BMitten in der Verarbeitung wird die Uhr angehalten
- CDie Richtung von bedingten Verzweigungen, die Schleifenzahl und die gelesenen oder beschriebenen Speicheradressen dürfen nicht von geheimen Werten abhängen
Antwort und Erläuterung anzeigen
Antwort: C. Die Richtung von bedingten Verzweigungen, die Schleifenzahl und die gelesenen oder beschriebenen Speicheradressen dürfen nicht von geheimen Werten abhängen
Konstante Zeit bedeutet, dass die Verarbeitungszeit nicht vom geheimen Wert abhängt. Ändert sich die Richtung einer if-Anweisung mit dem geheimen Wert, ändert sich die Zeit; bestimmt der geheime Wert den Array-Index, ändert sich die Spur im Cache. Daher wird anstelle von Verzweigungen mit Bitoperationen beides berechnet und ausgewählt, und es wird nicht mit geheimen Werten in Tabellen gesucht. Es ist auch zu prüfen, ob durch Compileroptimierungen Verzweigungen entstehen.