I've (finally) implemented the answer to this question in our library, which stated how to transform montgomery curves (and points) to weierstrass curves (and points).
Now, for scalar multiplication, we currently use our Weierstrass code, but want to replace it in the long run. Clearly the Montgomery ladder is the algorithm of choice when it comes to scalar multiplication on Montgomery / Edwards curves. However the ladder usually is given very simplified (always double and add but swap what is doubled and what is added based on the bit in question).
I'm asking for the best, side-channel resistant technique to implement scalar multiplication on Montgomery / Edwards curves.
Note:
- Same-base pre-computation speed-ups are welcomed.
- Advanced projective coordinate tricks (tripling and such) are welcomed as long as they don't break side-channel resistance.
My definition of the "best" technique: It should be as fast as possible and as side-channel resistant as possible (side-channel resistance has priority).