3

Link to MIRACL crypto library by CertiVox

Following the instructions in fastgf2m.txt, I've been able to get everything to compile. However, after execution, the benchmark (bmark.exe) program halts when evaluating curves over GF(2^m) with error, "This is not a point on the curve!"

I am able to get everything to work without the optimization but I'm unsure where the problem exists. I haven't modified any curve parameters and followed instructions in the distribution. I'm compiling on 64-bit Windows 8.1, on an Intel i7-3520M.

If anyone has any advice on how to correct this, it would be greatly appreciated.

Thanks!!

broccoli
  • 55
  • 4

1 Answers1

2

The method outlined in fastgf2m.txt is for generating unrolled code associated with a fixed m value determined at compile time. The bmark program changes m at runtime, and so the unrolled code will often not be correct in this case. The documentation could be clearer on this point.

Also make sure your processor does support the PCLMULQDQ instruction - many older processors will not.

It might be better to test the method on the ecsgen2/ecssign2/ecsver2 programs to implement ECDSA over GF(2^283) for example.

Buck Doyle
  • 6,333
  • 1
  • 22
  • 35
Mike Scott
  • 36
  • 1
  • Thanks for the reply! I believe I have correctly set the word length of the optimizations. I'm trying to get it to work over GF(2^233) so I've used `#define MR_COMBA2 4` which I believe should be good for values of m up to 256 bits. It will run the GF(2^163) curves but without problem and crash on GF(2^233). However, I will begin testing on the programs you've suggested. – broccoli May 21 '14 at 18:29