Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

12345678910111213141516171819202122232425262728293031323334
  1. ## PQ SIDH/SIKE implementation using AVX512IFMA instructions
  2. Using the AVX512IFMA (vpmadd52luq and vpmadd52huq) specifically designed for
  3. prime field arithmetic allows a projected speedup of up to 4X on supporting
  4. processors, when those become available.
  5. ### Current status
  6. * Tested for correctness with Intel SDE
  7. * EphemeralKeyGeneration_A and EphemeralKeyGeneration_B with P751 are implemented
  8. * Using "standins": 3X performance gain on Xeon Gold (with two FMA units)
  9. * Optimizations are 3-fold
  10. * Finite field *𝔽~p~* multiplication by performing a single horizontal Montgomery multiplication
  11. * Quadratic finite field *𝔽~p²~* multiplication and square by performing 3/4 horizontal Montgomery multiplications in parallel
  12. * A pair of quadratic finite field *𝔽~p²~* multiplications (where applicable) by performing 8 vertical Montgomery multiplications in parallel
  13. * AVX512 add/sub are also implemented
  14. ### How to test?
  15. The Makefile generates to executables: sidh_ifma can be run with Intel SDE to
  16. check for correctness. sidh_standin produces incorrect results, because it
  17. replaces the IFMA instrutions with FMA instructions and can be executed on a
  18. machine with AVX512 support to estimate performance.
  19. ### TODO
  20. * EphemeralSecretAgreement_A and EphemeralSecretAgreement_B
  21. * SIKE
  22. * P503
  23. * Using vertical representation throughout for greater speedups
  24. ### License
  25. Available under the original [SIKE](https://github.com/Microsoft/PQCrypto-SIKE) license