mikrocontroller.net

Forum: Compiler & IDEs Quellcode für RSA-Algorithmus auf einem Mikrocontroller


Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mir schon verschiedene symmetrische Verschlüsselungsverfahren
angeschaut und nun würde mich interessieren, ob von Euch schon einmal
jemand den RSA in C (nicht C++ auf dem PC) implementiert hat.

Falls ja würde mich der Quellcode dazu interessieren, um abschätzen zu
können, ob dieser in einem ATMega gerechnet werden kann oder nicht.
Freue mich auf Eure Rückmeldungen :-))

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur so, was willst du denn tun?

Erstens, AES dürfte von allen der freundlichste Algorithmus für
einen Controller sein, was die reine Verschlüsselung angeht.

Zweitens, wenn du einen DH key exchange machen willst, musst du dir
vor allen Dingen und in erster Linie um das nötige Maß an Zufall
Gedanken machen.  Damit steht und fällt die Sicherheit des
Schlüsseltauschs.  Sowie dein PRNG auch nur einigermaßen
vorhersagbare Werte erzeugt, hast du praktisch verloren.

Ansonsten lässt sich sowas sicher auf einem nicht zu kleinen ATmega
implementieren.  Je nach Anwendungsfall dürfte der RAM eher knapp
werden als der ROM (es sei denn, du kannst auf externen RAM
zurückgreifen).

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte wichtige Daten (Datenmenge ist gering) zwischen zwei
Mikrocontrollern auf einer Karte austauschen. Den AES habe ich schon
einmal auf einem kleinen Mikrocontroller implementiert und der
funktioniert auch gut.

Nun würde ich aber gerne ein asymmetrisches Verschlüsselungsverfahren
(RSA) einsetzen, kann jedoch die notwendigen Ressourcen dafür im
Mikrocontroller sowie die Rechenzeit auf einem ATMega nicht
einschätzen.

Hast Du Erfahrungen mit dem RSA bzw. mit der Implementierung auf einem
Mikrocontroller?

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, eigene Erfahrungen habe ich nicht, ist eher Hörensagen.

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab' mal jemanden gefragt, der sich auskennt.

Es ist ziemlich unrealistisch.  Die Rechenzeiten dürften im Bereich
von Sekunden liegen, es sind so um die 1000 Multiplikationen von 1024
* 1024 bits auszuführen.  Außerdem ist der Algorithmus durch die lange
Rechenzeit einfach zu attackieren, da man aus der tatsächlichen
Rechenzeit auf den Schlüssel schließen kann.

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der ATMega dafür z.B. 3 Sekunden benötigen würde, wäre das noch OK,
aber um dies besser einschätzen zu können müsste ich es eben mal
ausprobieren.
Daher die Frage, hast Du einen Quellcode oder könntest Du einen
besorgen, um dies auf einem Mikrocontroller auszuprobieren zu können?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn der ATMega dafür z.B. 3 Sekunden benötigen würde, wäre
> das noch OK, [...]

Nicht Jörgs letzten Satz gelesen? Wenn der Chip so lange braucht, ist
die erwünschte Sicherheit wahrscheinlich nicht mehr gegeben.

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Jörgs letzten Satz schon gelesen, aber wie lange ich für eine
Verschlüsselung benötige obliegt ja mir (dem ATMega), der benötigt
lediglich eine Mindestzeit bis der Algorithmus durchgerechnet ist,
danach würde er aber noch eine zusätzliche zufällige Zeit lang warten.
Damit dürften Rückschlüsse auf den Schlüssel schwierig werden.

Aber nun eine Frage an Dich Chris, kennst Du Dich mit dem RSA aus?
Falls ja, kannst du mir nähere Infos zu einem guten Quellcode für den
Mikrocontroller liefern?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Aber nun eine Frage an Dich Chris, kennst Du Dich mit dem RSA aus?

Nein, tut mir Leid. Zur konkreten Implementierung von RSA fehlt mir
noch das (mathematische) Hintergrundwissen.

Theoretisch (imho) kann man auch bei deinem Verfahren die tatsächliche
Rechenzeit herausfinden; je nach Implementierung der Warteschleife
weist der Stromverbrauch des AVRs in der Warteschleife ein messbar
anderes Muster auf als beim Rechnen.
Das sind Kleinigkeiten, aber je nach gewünschter Sicherheit sollte man
darüber evtl. Gedanken machen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.