Sie möchten keine Passwörter (PINs) verschlüsseln - Sie möchten sie hashen . Wenn jemand ein Passwort eingibt, hashen Sie dieses Passwort und vergleichen den Hash mit dem gespeicherten Hash. Der Vorteil dieser Methode (die seit über 30 Jahren verwendet wird) besteht darin, dass jemand, selbst wenn er die Quelle und die Hashes erhält, nicht erkennen kann, welche PINs mit den Hashes übereinstimmen, solange Sie eine ausreichend starke Hash-Funktion auswählen .
Sie möchten die Verschlüsselung nicht selbst implementieren, sondern die Bibliothek eines anderen Benutzers verwenden, insbesondere eine Bibliothek mit einer offenen Implementierung, die von einer großen Community getestet wurde. Die Verschlüsselung ist schwierig, das Testen ist schwierig und das Testen der Verschlüsselung ist verdammt schwierig. Lassen Sie es also von jemand anderem für Sie tun.
Sie sollten die AVR Crypto Library auschecken , die mit GPLv3 lizenziert ist. Es gibt auch eine Implementierung von Skein für AVR .
Dieser Link, den Hristos gepostet hat, ist zwar möglicherweise nützlich, zählt aber sicherlich nicht als "Verschlüsselung". Es ist wirklich nur "Verschleierung".
Die richtige Kryptographie ist bekanntermaßen leicht zu verwechseln, selbst für Leute, die sich mit Mathematik auskennen.
Als Antwort auf den ursprünglichen Beitrag - Mit welchen Angriffsmethoden kann jemand auf die PINs im EEProm zugreifen? Sicher , wenn sie haben , dass weit in der Elektronik können sie nur „das rote Kabel schnippeln“ und die Tür öffnen?
Wenn Sie irgendwie tun ein System haben , in dem Angreifer halten den EEProm Inhalt bekommen könnte , ohne bereits genügend Zugang mit Ihrer Tür zu öffnen, möchten Sie wahrscheinlich es neu zu gestalten. Sie können sich Einweg-Hash-Funktionen ansehen, die dem Unix-Passwort-Hashing ähneln - auf diese Weise muss das EEProm keinen Entschlüsselungsschlüssel enthalten - das Problem ist, dass der Suchraum für PINs sehr klein ist - wenn ich die Hash-Version von herunterladen kann PIN, ich kann ziemlich schnell alle 10.000 möglichen PINs ausprobieren. Ich vermute, dass jeder moderne Laptop alle in wenigen Sekunden ausführen wird.
quelle
Das Problem, das ich sehe, ist, dass sie, wenn sie Ihre Pins sehen können, auch Ihr Programm sehen können, das Ihre Pins verschlüsselt / überprüft / entschlüsselt. Wenn sie Ihren Chip haben, können sie das Programm nicht einfach so ändern, dass immer ein positives Ergebnis (unter Umgehung der Prüfung) für jeden eingegebenen Pin erzielt wird.
quelle
Wie wollen Sie die verschlüsselten PINs entschlüsseln, um zu überprüfen, ob der Benutzer eine gültige PIN eingegeben hat? Sie müssen den Entschlüsselungsschlüssel speichern. Wenn der Angreifer Ihr E-Prom lesen kann, kann er auch Ihren Flash lesen, um den Verschlüsselungsschlüssel zu finden. Grundsätzlich wird Ihre gesamte Verschlüsselung völlig unbrauchbar. Auch wie die anderen Leute sagten, wenn er bereits die Fähigkeit hat, Ihren Chip zu lesen, könnte er einfach ein neues Programm schreiben. Es ist viel einfacher, die Tür einfach aufzutreten. Ich bezweifle, dass sich jemals jemand die Mühe machen würde, Ihren Chip zu hacken.
quelle
Hier ist eine Methode zur einfachen Beschriftung in C, die leicht auf das Arduino portiert werden kann. Dies scheint der einfachste Weg zu sein, Daten mit den begrenzten Ressourcen des Arduino zu verschlüsseln.
-EDIT- Um den Schlüssel aus Ihrem Programm herauszuhalten, können Sie die Hälfte der PIN zum Schlüssel machen. Dies bedeutet, dass Ihr Programm die Schlüsselhälfte der PIN verwendet, um die in EEProm gespeicherte verschlüsselte 1/2 PIN zu entschlüsseln. Wenn der entschlüsselte Schlüssel von EEProm mit dem Teil Ihrer PIN übereinstimmt, der nicht der Schlüssel ist, wird die Tür entriegelt. Dies würde nur in einer Situation funktionieren, in der es den Eindringlingen nicht möglich ist, die Tür aufzubrechen oder den Arduino neu zu programmieren.
quelle
Ich hasse es, die Frage nicht zu beantworten, während ich einen anderen frage, aber ...
Gibt es einen Grund, warum Ihr Gerät nicht manipulationssicher ist? Ich habe Druckknopfschalter in Schraubenlöchern gesehen, die "auf der Bank" implementiert wurden, um die Art von Manipulationen zu erkennen, über die Sie sich Sorgen machen. Dann ... hier kommt das Kind mit einer Butan-Mikrofackel, die es schafft, Ihren Chip zu erhalten, ohne etwas abzuschrauben (oder den Chip zu beschädigen). Irgendwie kannte er das Design Ihres manipulationssicheren Systems, das (hoffentlich auch) das Erkennen von Änderungen in umfasst Umgebungslicht und / oder Schall. Wenn sich die Abdeckung löst, werden beide ganz unterschiedlich. Tag oder Nacht.
Wenn dies der Fall ist, sollte es sich um ein zweiteiliges System handeln, bei dem die freigelegten Teile mit etwas kommunizieren, bei dem die Verschlüsselung einfacher implementiert werden kann. Außerdem berücksichtigen Prüfsummen (Hilfe) das Kind mit der Fackel.
Ich denke, Sie bitten einen Schraubenzieher, ein Hammer zu sein.
quelle
Diese Kommentare sind wirklich genau richtig. Es ist nichts Falsches daran zu experimentieren, um etwas über Verschlüsselung zu lernen, aber dies ist kein wirklich gutes Projekt, um solche Dinge zu lernen. Sie wollen wirklich ein gutes Lehrbuch und einen Computer, und wie @bigiain sagt, ist die Mathematik notorisch leicht falsch zu verstehen.
Um besser zu verstehen, wie Kryptografie funktioniert und was Sie erwartet, ist das Handbuch für angewandte Kryptografie ausgezeichnet und kostenlos:
Wenn Sie nur Ihr Projekt sichern möchten, ist dies eine ineffiziente Methode. Wenn Sie sich für Kryptografie interessieren, beginnen Sie mit diesem Buch und einem Computer.
quelle