In der Kryptographie wurde das Blinding erstmals im Zusammenhang mit Blindsignaturen bekannt , bei denen der Verfasser der Nachricht diese mit einem zufälligen Blinding-Faktor versieht , der Unterzeichner sie dann signiert und der Verfasser der Nachricht sie anschließend wieder „ entblindet“ ; Unterzeichner und Verfasser der Nachricht sind unterschiedliche Parteien.

Seit Ende der 1990er-Jahre bezeichnet „Blinding“ hauptsächlich Gegenmaßnahmen gegen Seitenkanalangriffe auf Verschlüsselungsgeräte [ 1 ] , wobei das zufällige Blinding und das anschließende „ Entblinden“ auf den Verschlüsselungsgeräten selbst erfolgen. Die Techniken zum Blinding von Signaturen wurden so angepasst, dass Angreifer die Eingabe für die modulare Exponentiationsfunktion von Diffie-Hellman oder RSA nicht kennen .

Die Verschleierung muss mit Bedacht angewendet werden, beispielsweise bei Rabin-Williams-Signaturen . Wird die Verschleierung auf die formatierte Nachricht angewendet, der Zufallswert erfüllt aber nicht die Jacobi-Anforderungen an p und q , kann dies zur Wiederherstellung des privaten Schlüssels führen. Eine Demonstration dieser Wiederherstellung findet sich in CVE -2015-2141 [ 2 ] , entdeckt von Evgeny Sidorov.

Seitenkanalangriffe ermöglichen es einem Angreifer, Informationen über die Eingabe einer kryptografischen Operation in einem asymmetrischen Verschlüsselungsverfahren zu gewinnen , indem er etwas anderes als das Ergebnis des Algorithmus misst, z. B. Stromverbrauch, Rechenzeit oder Funkfrequenzemissionen eines Geräts. Typischerweise setzen diese Angriffe voraus, dass der Angreifer die Eigenschaften des Algorithmus sowie (einige) Eingaben kennt. In diesem Zusammenhang dient die Verschleierung (Blinding) dazu, die Eingabe des Algorithmus in einen unvorhersehbaren Zustand zu versetzen. Abhängig von den Eigenschaften der Verschleierungsfunktion kann dies das Auslesen nützlicher Informationen teilweise oder vollständig verhindern. Die Sicherheit hängt jedoch auch von der Widerstandsfähigkeit der Verschleierungsfunktionen selbst gegenüber Seitenkanalangriffen ab.

Beispiele

  • Beim RSA- Blinding wird die Blinding-Operation E ( x ) = (xr) e mod N berechnet , wobei r eine zufällige ganze Zahl zwischen 1 und N und teilerfremd zu N ist (d. h. ggT( r , N ) = 1) , x der Klartext, e der öffentliche RSA-Exponent und N der RSA-Modulus. Wie üblich wird die Entschlüsselungsfunktion f ( z ) = zd mod N angewendet, wodurch sich f(E(x)) = (xr)ed mod N = xr mod N ergibt . Schließlich wird die Blinding - Operation mit der Funktion D ( z ) = zr⁻¹ mod N aufgehoben . Die Multiplikation von xr mod N mit r⁻¹ mod N liefert x , wie gewünscht . Bei dieser Art der Entschlüsselung kann ein Angreifer, der die für diese Operation benötigte Zeit messen kann, diese Information nicht nutzen (indem er Timing-Angriffe anwendet, gegen die RSA bekanntermaßen anfällig ist), da er die Konstante r nicht kennt und somit keine Kenntnis von der tatsächlichen Eingabe hat, die den RSA-Primitiven zugeführt wird.

Referenzen

  1. ^ Kocher, Paul C. (1996). „Timing-Angriffe auf Implementierungen von Diffie-Hellman, RSA, DSS und anderen Systemen“ . In: Koblitz, Neal (Hrsg.). Fortschritte in der Kryptologie – CRYPTO '96 . Lecture Notes in Computer Science. Band 1109. Berlin, Heidelberg: Springer. S.  104–113 . doi : 10.1007/3-540-68697-5_9 . ISBN 978-3-540-68697-2Die
  2. ^ „CVE-2015-2141 Common Vulnerabilities and Exposures | SUSE“ . www.suse.com . Abgerufen am 13.06.2025 .

Quellen