12 ms·
I also wrote an introduction to ECC using Python. It's longer, less gentle, more mathematical, and doesn't cover Edwards curves. But it ends with a program allo
by j2kun 12y ago
I also wrote an introduction to ECC using Python. It's longer, less gentle, more mathematical, and doesn't cover Edwards curves. But it ends with a program allowing you to play EC's over any finite field, and implements and explains some of the major protocols.
http://jeremykun.com/2014/02/08/introducing-elliptic-curves/ http://jeremykun.com/2014/02/08/introducing-elliptic-curves/
- deleted 12y ago[deleted]
- nullc 12y agoNo disrespect to the extensive work you did there-- and this is a general complaint about basically all the "ECC explained" I've seen on the web, but I think that jumping into the mechanics of explaining at the blades-of-grass level how to implement point arithmetic without ever giving an clear intuition as to how a cyclic group with intractable discrete log is cryptographically useful does the reader a disservice. E.g. after reading one of these tutorials, they might be able to go and _implement_ the cryptosystem, but they won't actually understand it except at a "Chinese Room" level, and as a result it won't actually be safe for them to implement any of it, since they'll be unlikely to ask the right questions. E.g. they'd make the Sony mistake. Yours goes a little further, and for that I must give it credit: Many just explain the addition law and russian peasants algorithm, throw out an equation for ECDSA and call it a day. But if you do a revision, I'd encourage you to rearrange and explain the cryptographic algorithms abstractly, and in depth, first... before jumping into the mechanics of the machine implementation of a particular group law.
- j2kun 12y agoIn writing them my main goal was to explain elliptic curves to my own satisfaction (i.e. derive things and not shy away from projective space and finite fields). To me they are interesting in their own right, as is realizing them in code. I view the crypto as sort of a bonus. I do see your point that I could have done everything with, say, multiplicative integers modulo a prime and the core algorithms wouldn't change. I think I will redo that when I get around to writing articles on abstract crypto (one-way functions, pseudorandom generators, and the like).