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.