Jonasfj.dk/Blog
A blog by Jonas Finnemann Jensen


December 29, 2007
SimpleECDSA, a simple implementation of ECDSA in C
Filed under: Computer,English,Linux,School by jonasfj at 2:32 pm

2 weeks ago I did a school project on ECDSA (Elliptic Curve Digital Signature Algorithm). At HTX we have to do a project that goes beyond the curriculum, we must combine two subjects and do an individual project about something we find interesting. I decided to combine mathematics and programming in a project about ECDSA. Personally I think it was great fun, but perhaps I have a twisted sense of humor ūüôā

Anyway, I’ve publish my report here, it’s in Danish though. But I did also write an implementation of ECDSA in C. The implementation is called SimpleECDSA, though I must admit it not very Simple anymore. It uses GMP as integer library, and uses the standardized curves cryptographic operations.

The comments in my source is in English, though I did translate them to Danish, before delivering my paper. Anyway, I still have the source with English comments, so I thought I’d post the source here.

As I had a little spare time this holiday I’ve configured the source with the GNU build system. It my first tarball created with Autotools, and it’s mostly hacked together of snippets from the automake and autoconf manual. But it works and the package compiles, and “./configure” complains if GMP isn’t present. I did also manage to get “make check” to run my internal tests, so I think it’s pretty good, considering the fact that is my first package build with autotools.

If you’ve any comments, bug-reports or questions to my packaging or SimpleECDSA, feel free to leave a comment. SimpleECDSA is ofcourse released under GNU GPLv3, and can be downloaded here:



December 18, 2007
ECDSA: Elliptic Curve Digital Signature Algorithm
Filed under: Computer,Dansk,School by jonasfj at 1:03 pm

I den sidste uges tid har jeg skrevet studieretningsprojekt, og som overskriften afsl√łrer har jeg skrevet om Elliptic Curve Digital Signature Algorithm (ECDSA). Jeg har i projektet arbejdet med de matematiske aspekter af ECDSA, og har faktisk gennemg√•et alle de n√łdvendige algoritmer. Derudover har jeg selvf√łlgelig implementeret dem i C. Faktisk gik implementeringen hen og blev en hel implementering af ECDSA. Implementeringen hedder SimpleECDSA, og er skrevet oven p√• GMP, den er selvf√łlgelig ogs√• frigivet under GNU GPLv3.

Jeg synes selv projektet har v√¶ret meget sjovt. Der er ikke ofte man f√•r lov til at dykke s√• dybt ned i et emne. Nu har matematik niveauet i det jeg har arbejdet med s√• ogs√• v√¶ret s√• h√łjt at det til tider var direkte underholdende. Okay, m√•ske jeg har en m√¶rkelig form for humor. Men jeg synes nu alligevel det har v√¶ret sjovt at lege med abstrakt algebra og algoritmer. Og efter dette projekt er jeg bestemt mere sikker p√• at jeg gerne vil studere datalogi n√¶ste √•r.

Hvis nogen skulle have lyst til at l√¶re ECDSA eller implementere ECDSA, vil jeg mene at min rapport burde kunne danne grundlag for en praktisk implementering af ECDSA. Hvis ikke er der i hvert fald kildehenvisninger nok. Min rapport er skrevet p√• dansk i LaTeX og frigivet under CreativeCommons Attribution-Noncommercial-Share Alike 2.5. B√•de rapport og kildekode er selvf√łlgelig tilg√¶ngelig her:

Mod alt sandsynlighed er alle kommentarerne i min kildekode faktisk p√• dansk. Funktions navne og variabler er dog p√• engelsk. F√łrst skrev jeg faktisk ogs√• alle kommentarerne p√• engelsk, men da det var et projekt p√• dansk valgte jeg alligevel at overs√¶tte dem alle sammen, og der er faktisk rigtig mange. Mon ikke ogs√• jeg skriver en engelsk post om projektet og poster kildekoden med engelsk kommentarer der. Min viden om C er godt nok begr√¶nset, men man er velkommen til at skrive en mail eller kommentar, hvis man har problemer med programmet, eller mod alt sandsynlighed skulle finde ud af at bruge den til noget fornuftigt.