“Welcome to Galois Field F(2^{m}) where elements are made up and carry doesn’t matter”

If this sounds familiar you should probably turn off TV sometimes (or youtube).

Nothing much was happening this week, I mostly spent it struggling with understanding and at later stage designing the ECDSA module. Man, that was quite a lot of algebra… and fun.

Because it’s not so popular topic (you know it when wikipedia starts to be insufficient) I had to dig through a lot of scientific papers and honestly, while I was doing it, I had only one thought: Most of the people who publish those papers either don’t actually understand it (I can say by copy-paste formulas, and a lot (I mean a LOT) of inconsistency) or it’s a part of a bigger conspiracy where they cut out the crucial pieces of their work so that no one can use their solutions. Either way it took me quite a while to start appreciate the beauty of finite field F(2^{m})

As I said, there is nothing really to share with yet. I came up with different idea for multiplication: it requires slightly more resources but is faster. Solution used in most of the examples I found uses *m* clock cycles per multiplication (where m=163,223…) while mine needs only as many as the position of most significant ‘1’ so for 0..011 = 3 it would take only 2 clock cycles. I have some doubts now though, it’s not an idea they couldn’t come up with so maybe they used the slower one on purpose. Question is whether I can afford those additional resources and whether faster design is better than predictable, constant *m* one.