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 :-))
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).
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?
Nö, eigene Erfahrungen habe ich nicht, ist eher Hörensagen.
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.
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?
> 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.
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?
> 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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.