Forum: Mikrocontroller und Digitale Elektronik Crypto / Big-Integer Ansätze


von Tobbi (Gast)


Lesenswert?

Hallo,

ich stehe vor der Aufgabe eine Elliptic Curve Digital Signature -Prüfung 
auf einem 32 Bit Controller zu realisieren (Freescale Coldfire ~m68k).

Heap für dynamischen Speicher (malloc) gibt es. Es beschränkt sich auf 
die Signaturprüfung mit festem öffentlichen Schlüssel und fester 
Kurven-Domäne.

Hash Algorithmus habe ich fertig. Es steht aus: Handling und Operationen 
mit den Zahlen (32 Byte-Integer). Also Addition, Multiplikation, Modulo, 
Inverse Zahl, ...

Ich habe bereits google befragt was es da so gibt:

a) GNU Multip. Precision (GMP) Lib.
==> Ziemlich gut, aber komplex aufgebaut. Weiß nicht wie ich das auf den 
Controller bekomme(?) Wie ich mir die Lib. erstelle und ob das überhaupt 
Speichermäßig auf den Controller passt.
==> Gibts hier Erfahrungen in der Verwedung mit einem embedded 
Crosscompiler???

b) AVR (ARM) Crypto Lib. ( aus das-labor.org )
==> Nur teilweise fetig umgesetz.
Wieso heißt das AVR /ARM? Wo bestehen die Unterschiede?

c) Selber machen.
==> Dauert wahrscheinlich einen Monat.


Was seht ihr als besten Weg an ? Habt ihr vielleicht noch einen Tip 
/eine Idee?

Wie sind die Erfahrungen allgemein mit großen Zahlen, die den 
Wertebereich der Standard Typen übersteigen?

Kommt man evtl. ohne dynamischen Speicher aus ?

von Tobias H (Gast)


Lesenswert?

Hi,

guck dir mal TinyECC an. Das ist eine Variante für TinyOS 
("Betriebssystem" welches im Bereich der Forschung mit drahtlosen 
Sensornetzwerken eingesetzt wird).

Der Footprint der dort verwendeten µCs ist sehr viel kleiner als das was 
du benutzt, viele der Ansätze dürften aber übertragbar sein. Selber habe 
ich mir das allerdings noch nicht angesehen, nur vor kurzem in einem 
Paper gelesen. Einfach mal bei Google danach suchen, vielleicht hilft es 
dir weiter.

Schöne Grüße,
Tobi

von Tobbi (Gast)


Lesenswert?

Ja auf tinyECC wurde ich bereits verwiesen.

Hab auch mal reingesehen: Das ist in einer C-Erweiterung "nesC" 
umgesetzt.
Etwas ungewohnt fürs Auge. Werd mich da mal vertiefen.

von Nosnibor (Gast)


Lesenswert?

Ein Blick auf die libtomcrypt (http://libtom.org/) könnte sich lohnen. 
Da ist auch ECC dabei, und mit anderen Teilen der libtomcrypt habe ich 
schon gute Erfahrungen gemacht: ließ sich leicht in den eigenen Code 
übernehmen, ohne einen Rattenschwanz an zusätzlichen Libraries zu 
brauchen. Und die Lizenz (bei kommerzieller Verwendung) ist auch sehr 
günstig.   :)

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
Noch kein Account? Hier anmelden.