7 Stimmen

Kleine asymmetrische Verschlüsselungsimplementierung zur Überprüfung des Downloads

Um einer kleinen C++-Anwendung zu ermöglichen, sich über das Internet bei verbundenen Clients zu aktualisieren, benötige ich einen Mechanismus, der den Download anhand eines öffentlichen Schlüssels validiert. Algorithmen wie DSA oder RSA scheinen dies gut zu können.

Bei Betrachtung bekannter verfügbarer Bibliotheken dafür (Crypto++, LibTomCrypt) wird mein Binärdatei jedoch immer größer als 500 KB, während es mir scheint, dass solche Logik in ein paar KB implementiert werden kann. Gibt es Bibliotheken, die RSA/DSA-Hash-Verifikation in einem <20 KB großen Speicher implementieren?

2voto

Emiel Mols Punkte 406

Da ich keine Bibliotheken gefunden habe, die meinen spezifischen Bedarf erfüllten, habe ich meine eigene Bibliothek dafür geschrieben: http://github.com/paiq/dsa_verify. Die aktuelle Implementierung hat einen Programmspeicher-Fußabdruck von ca. 50 KB, hauptsächlich aufgrund der enthaltenen Bignum-Mathematik-Bibliothek, aber zukünftige Versionen könnten noch weiter gestrafft werden.

1voto

Scott Chamberlain Punkte 120610

Wenn Sie nur Windows verwenden, können Sie möglicherweise gegen die Windows Crypto-API verknüpfen, solange Ihre Apps auf Win2k oder höher bereitgestellt sind. Windows Crypto MSDN-Artikel.

BEARBEITEN: Eine weitere mögliche Lösung, wenn Sie nur überprüfen müssen, ob der Download nicht beschädigt wurde, haben Sie mit einer schnellen Google-Suche die Quelle für diese kleine Implementierung von MD5 gefunden. Laut dem Readme oben 3k Objektcode kompiliert.

1voto

Scharron Punkte 16533

Brauchen Sie wirklich Chiffren ? Im Allgemeinen können Sie zur Überprüfung eines Downloads eine Hash-Funktion wie MD5 oder SHA verwenden. Vielleicht finden Sie eine kleine Bibliothek, die diese verwendet.

Andernfalls können Sie die openssl-Bibliothek ausprobieren. Auf meinem Rechner ist die .a-Datei jedoch etwa 400K groß und 250K nach dem Stripping.

0voto

Peter G. Punkte 14248

In http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.143.3049&rep=rep1&type=pdf wird eine elliptische Kurvenbibliothek beschrieben, die laut den Autoren so konfiguriert werden kann, dass sie nur etwa 7k ROM und weniger als 200 Byte RAM auf einem Mikrocontroller benötigt

0voto

Ich denke, Sie finden möglicherweise, dass die MIRACL-Bibliothek Ihren Anforderungen entspricht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X