Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/lord-feistel/power_analysis
Embedded-System-SicherheitKryptographieHardware-SicherheitPapers & ForschungLernen & Bildung
GitHublord-feistel/power_analysis

power_analysis

Proof-of-Concept, das einen Seitenkanalangriff durch Leistungsanalyse gegen eine verwundbare RSA-Implementierung auf Arduino (Atmega328P) demonstriert, mit detailliertem Hardware-Setup und Messmethodik.

Repository anzeigen
32467vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Angriff durch Leistungsanalyse auf RSA

Index

  • Einleitung
  • Angriffe durch Leistungsanalyse
  • RSA: Eine kurze Einführung
  • RSA-Beispiel
  • Ausrüstung
  • Leistungsmessung: Eine kurze Einführung
    • Ohmsches Gesetz
    • Kirchhoffs Spannungsgesetz (KVL)
    • Spannungsteiler
    • Shunt-Widerstand
  • Beispiel einer Leistungsmessung
  • Schnelle Exponentiation
  • Schnelle Exponentiation auf Arduino (Atmega328P)
  • Ergebnisse
  • Fazit
  • Referenzen

Einleitung

Kürzlich habe ich beobachtet, wie Leute selbst Kryptographie für Arduino implementieren, wie zum Beispiel in diesem Thema auf Stackoverflow:

https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino

Einige davon sind im Internet zu finden, einige übrigens auch in bekannten Bibliotheken.

Ich beschloss, diese kleine PoC (Proof of Concept) durchzuführen, um zu zeigen, warum es wichtig ist, nicht nur keinen eigenen Kryptographiealgorithmus zu erfinden, sondern auch eine robuste Implementierung solcher Algorithmen zu verwenden.

Diese PoC führt einen Seitenkanalangriff (Leistungsanalyseangriff) gegen eine schlechte Implementierung einer Hilfsroutine durch, die in der RSA-Implementierung verwendet wird (schnelle Exponentiation).

Ein Seitenkanalangriff ist eine Methode, um ein kryptographisches System zu kompromittieren, indem indirekte Informationslecks ausgenutzt werden, anstatt den kryptographischen Algorithmus oder das Protokoll selbst direkt anzugreifen.

Diese Art von Leck kann aus verschiedenen Quellen stammen, wie z. B. Timing-Informationen, Stromverbrauch, elektromagnetische Emissionen oder sogar Geräusche.

Solche Angriffe können sehr effektiv sein, um kryptographische Systeme wie RSA zu kompromittieren, ohne dass der Angreifer die zugrundeliegenden mathematischen Probleme lösen muss, die die Sicherheit des kryptographischen Schemas gewährleisten (Kocher, Jaffe & Jun, 1999).

Dieses Papier führt einen Leistungsanalyseangriff auf eine bekannte Schwachstelle in einer Implementierung des RSA-Algorithmus in einer Firmware für Arduino (Atmega328P) durch.

Hinweis: Ich habe dies in Eile getan, bitte verzeihen Sie die Rechtschreib-/Grammatikfehler, die Sie eventuell finden werden.

Angriffe durch Leistungsanalyse

Angriffe durch Leistungsanalyse beinhalten die Messung des Stromverbrauchs eines Geräts während kryptographischer Operationen.

Die differentielle Leistungsanalyse (DPA) umfasst die statistische Analyse von Stromverbrauchsmustern über mehrere kryptographische Operationen hinweg, um Geheimnisse zu extrahieren. Sie ist anspruchsvoller als die einfache Leistungsanalyse (SPA), die Stromschwankungen direkt mit bestimmten kryptographischen Operationen korreliert, um Geheimnisse abzuleiten.

Differentielle Leistungsanalyse (DPA) und einfache Leistungsanalyse (SPA) können verwendet werden, um private Schlüssel zu extrahieren, indem Muster im Stromverbrauch während RSA-Berechnungen analysiert werden.

Diese Angriffe können den privaten Schlüssel aufdecken, indem sie unterschiedliche Stromverbrauchsmuster identifizieren, die mit verschiedenen Schlüsselbits verbunden sind (Kocher, Jaffe & Jun, 1999).

RSA: Eine kurze Einführung

RSA (Rivest-Shamir-Adleman) ist ein weit verbreiteter Public-Key-Verschlüsselungsalgorithmus, benannt nach seinen Erfindern: Ron Rivest, Adi Shamir und Leonard Adleman, die ihn 1977 vorstellten (Paar & Pelzl, 2010).

Er bleibt eine der sichersten Methoden, um Daten sicher über das Internet zu übertragen.

Eine der Grundlagen der RSA-Sicherheit liegt in der Schwierigkeit, große zusammengesetzte Zahlen in ihre Primfaktoren zu zerlegen (Menezes, van Oorschot & Vanstone, 1996).

Dieses Problem, bekannt als das Faktorisierungsproblem, besteht darin, die Primzahlen zu finden, die miteinander multipliziert eine gegebene große Zahl ergeben.

Die RSA-Verschlüsselung beruht auf der Annahme, dass dieses Faktorisierungsproblem rechnerisch schwierig genug ist, um es unpraktikabel zu machen, die Verschlüsselung durch Faktorisierung des Modulus in seine Primfaktoren zu brechen (Menezes, van Oorschot & Vanstone, 1996).

RSA-Beispiel

Abbildung 1 veranschaulicht den RSA-Verschlüsselungs- und Entschlüsselungsprozess anhand eines einfachen Beispiels.

RSA-Beispiel

Abbildung 1 - RSA-Beispiel.

Bitte beachten Sie, dass in diesem Fall 3 und 33 öffentlich sind. Die Zahl 7 im Beispiel ist der private Schlüssel.

Die Phi(N)-Funktion, die eulersche Phi-Funktion, berechnet alle teilerfremden Zahlen im Intervall von 1 bis 33.

Der Wert 33 ergibt sich aus der Multiplikation von P und Q; in diesem Fall 11 multipliziert mit 3.

Das Ergebnis der Phi-Funktion erhält man durch Multiplikation von (P - 1) mit (Q - 1); in diesem Fall 10 multipliziert mit 2.

Die Operation e<sup>-1</sup> mod 20 bezeichnet die modulare Inverse (Menezes, van Oorschot & Vanstone, 1996).

Hinweis: Falls Sie tiefer in RSA einsteigen möchten, was zum Verständnis dieses Papiers nicht notwendig ist. In diesem Repository gibt es eine kurze Einführung in diese grundlegenden zahlentheoretischen Operationen in der Datei number_theory.md. Die Erklärung kann Ihr Verständnis der RSA-Operationen verbessern.

Ausrüstung

Das Experiment verwendete ein Oszilloskop DS1102 (dargestellt in Abbildung 2), hergestellt von Rigol.

Das Handbuch des Oszilloskops befindet sich in den Referenzen (RIGOL Technologies, Inc., 2017).

Es wurde auch ein handelsübliches Netzteil verwendet (dargestellt in Abbildung 3).

Oszilloskop

Abbildung 2 - Im Experiment verwendetes Oszilloskop.

Netzteil

Abbildung 3 - Im Experiment verwendetes Netzteil.

Leistungsmessung: Eine kurze Einführung

Ohmsches Gesetz

Das Ohmsche Gesetz ist ein grundlegendes Prinzip in der Elektrotechnik und Physik.

Es besagt, dass der Strom, der durch einen Leiter zwischen zwei Punkten fließt, direkt proportional zur Spannung zwischen den beiden Punkten und umgekehrt proportional zum Widerstand zwischen ihnen ist (Boylestad, 2015).

Abbildung 4 zeigt einen Schaltkreis und das Ohmsche Gesetz.

Ohmsches Gesetz

Abbildung 4 - Veranschaulichung des Ohmschen Gesetzes.

Das Ohmsche Gesetz impliziert, dass bei Erhöhung der Spannung über einem Leiter auch der Strom ansteigt, sofern der Widerstand konstant bleibt (Johnson & Hilburn, 2013). Abbildung 5 zeigt ein Beispiel für die Anwendung des Ohmschen Gesetzes, bei dem das Ziel darin besteht, den Strom im Stromkreis zu ermitteln.

Ohm-Beispiel

Abbildung 5 - Beispiel für das Ohmsche Gesetz.

Kirchhoffsches Gesetz und

Das Kirchhoffsche Spannungsgesetz (KVL) ist ein grundlegendes Prinzip in der Elektrotechnik und Physik (Boylestad, 2015).

Es besagt, dass die Summe aller elektrischen Potentialdifferenzen (Spannungen) in einem geschlossenen Netzwerk oder einer Masche null ist (Boylestad, 2015).

Abbildung 6 veranschaulicht das Kirchhoffsche Spannungsgesetz.

Kirchhoffsches Gesetz

Abbildung 6 - Veranschaulichung des Kirchhoffschen Gesetzes.

Tool herunterladen