Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit
Implementieren Sie Maskierung, Point Blinding und Vergleiche mit konstanter Laufzeit.
Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Die drei Familien von Gegenmaßnahmen
Gegenmaßnahmen gegen Seitenkanäle lassen sich in drei Familien einteilen: Maskierung (zufällige Zwischenwerte), Blinding (zufällige Eingaben und Ausgaben) und Code mit konstanter Laufzeit (Beseitigung datenabhängiger Laufzeiten).
Boolesche Maskierung
Verknüpfen Sie jeden Zwischenwert per XOR mit einer neuen zufälligen Maske r. Verarbeiten Sie den maskierten Wert x⊕r und entfernen Sie die Maske am Ende. Das Leistungsprofil hängt nun von x⊕r und nicht von x ab.
Arithmetische Maskierung für Multiplikationen
Verwenden Sie für multiplikative Operationen multiplikative Masken: Ersetzen Sie x durch x·r mod p. Das Maskierungsschema muss mit jeder algebraischen Operation der Chiffre kompatibel sein.
RSA-Blinding
Wählen Sie vor dem Entschlüsseln des Chiffrats c ein zufälliges r und berechnen Sie c' = c·r^e mod n. Entschlüsseln Sie c', um m·r mod n zu erhalten, und dividieren Sie anschließend durch r. Bei der eigentlichen Exponentiation wird das echte c nie verwendet.
Blinding von ECC-Punkten
Randomisieren Sie die projektiven Koordinaten: Verwenden Sie statt des affinen Punkts (x,y) den Punkt (λx : λy : λ) für ein zufälliges λ. Die Skalarmultiplikation arbeitet mit randomisierten Koordinaten, wodurch sich die Leistungsprofile bei jedem Durchlauf ändern.
Regeln für Programmierung mit konstanter Laufzeit
1. Keine von Geheimnissen abhängigen Verzweigungen. 2. Keine von Geheimnissen abhängigen Speicherindizes. 3. Keine vorzeitigen Abbrüche. 4. Verwenden Sie, sofern verfügbar, plattformspezifische Operationen mit konstanter Laufzeit (z. B. crypto_verify_32).
Vergleich mit konstanter Laufzeit in Python
Verwenden Sie in zeitkritischen Pfaden niemals == oder hmac.compare_digest für rohe Bytes. Verwenden Sie stattdessen:
import hmac
def constant_time_compare(a: bytes, b: bytes) -> bool:
"""Uses HMAC double-HMAC trick for constant-time equality."""
# hmac.compare_digest is constant-time in CPython
return hmac.compare_digest(a, b)
# Example
secret = b"expected_mac_value"
received = b"attacker_provided__"
print(constant_time_compare(secret, received)) # False, but no timing leakFallstricke bei Compilern und Architekturen
Compiler können Code mit konstanter Laufzeit wegoptimieren. Verwenden Sie volatile Speicherzugriffe, Speicherbarrieren oder Assembly-Intrinsics. C-Compiler verfügen über -fno-delete-null-pointer-checks, bieten jedoch keine universelle Garantie für konstante Laufzeit.
Permutationen und Dummy-Operationen
Permutieren Sie die Reihenfolge der S-Box-Lookups zufällig oder fügen Sie Dummy-Operationen ein, die Leistung verbrauchen, ohne das Ergebnis zu beeinflussen. Dies erschwert DPA, beseitigt die Leckage jedoch nicht.
Hardware-Gegenmaßnahmen
Spezielle Krypto-Beschleuniger (ARM TrustZone, STM32-Hardware-AES) wenden Maskierung direkt im Silizium an. ASIC-Implementierungen ergänzen eine Metallabschirmung und ein aktives Mesh, um physische Sondierungen zu erkennen.
Wissensabfrage
Welche Gegenmaßnahme verhindert RSA-Timing-Angriffe, indem sie das Chiffrat vor der Exponentiation randomisiert?
Zusammenfassung der Lektion
Maskierung randomisiert Zwischenwerte, Blinding randomisiert RSA-/ECC-Eingaben und Code mit konstanter Laufzeit beseitigt zeitabhängige Verzweigungen. Eine mehrschichtige Verteidigung kombiniert alle drei Maßnahmen. Hardware-Beschleuniger setzen diese für besonders starke Sicherheitsgarantien direkt im Silizium um.
Lerne Cryptology Academy mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 67
- Lektionen
- 261
Häufig gestellte Fragen
Ist die Lektion „Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit“ kostenlos?
Ja — der vollständige Text von „Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit“?
Implementieren Sie Maskierung, Point Blinding und Vergleiche mit konstanter Laufzeit. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cryptology Academy zu starten?
Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Timing-Angriffe: Schlüssel aus der Ausführungszeit gewinnen
- Seitenkanalanalyse des Stromverbrauchs: SPA und DPA
- Elektromagnetische und akustische Seitenkanäle
- Gegenmaßnahmen: Maskierung, Blinding und Code mit konstanter Laufzeit