What is the algorithm of elliptic curve scalar multiplication in CW305_ECC casen


I tried to run the CW305_ECC demo project.
I found that the power traces of the example ecc code on CW305 had no obviously difference between two different keys.
Here I showed the power traces with two keys (the power trace is sample with scope.adc.decimate = 20):
red: k = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
blue: k = 0x8000000000000000000000000000000000000000000000000000000000000000

Then I went to check the verilog code of ecc in the demo project.
It seemed that the scalar multiplication is implemented by double-and-add-always method.
Is my assumption correct?



Did you run through the entire CW305_ECC.ipynb notebook? It shows that the power differences from different k are indeed very very VERY small, and so you should not expect them to be visible on the type of plot that you show. The notebook also explains that the implementation is indeed double-add-always.

If you did go through the notebook and some things aren’t clear, then let me know – this is a newer one, so it’s entirely possible that some things aren’t explained as well as they could; any feedback is appreciated!


Hi jpthibault,

Thank you for your reply.
I have gone through the entire notebook and got a full understanding on the ECC demo project.
Sorry for this question without well realization on this project.