1
0
mirror of https://github.com/henrydcase/nobs.git synced 2024-11-22 15:18:57 +00:00
Go to file
Kris Kwiatkowski ea2ffa2d61 PERF: sidh-p503: Split sub and add into 2 uops instead of 3 (#8)
The performance improvement comes from the fact that on Skylake
"add mem, reg" splits into 2 uops - one arithmetic uop and another one
for loading a value from mem.
However, changing operand order to "add reg, mem" splits into 3 uops:
one for arithmetic op, one for load and one additional one for storing
the result back.
Using separated instruction for loading/storing helps to parallelize
execution (load/store and arithmetic instruction is done in parallel
if possible)

For details, see: https://www.agner.org/optimize/instruction_tables.pdf

New: BenchmarkFp503StrongReduce-4    300000000            5.57 ns/op
Old: BenchmarkFp503StrongReduce-4    200000000            8.60 ns/op

This just improves one function, but more functions can be improved
2018-11-18 20:57:29 +00:00
dh/sidh PERF: sidh-p503: Split sub and add into 2 uops instead of 3 (#8) 2018-11-18 20:57:29 +00:00
drbg Temporarily change sha3 import location 2018-07-05 15:51:09 +01:00
ec/x448 x448: Export shared secret size 2018-08-03 14:37:38 +01:00
etc script used for calculating sliding window startegy in SIDH P34 2018-10-25 15:22:28 +01:00
hash License BS for sha3 2018-10-25 15:22:28 +01:00
kem/sike complate rewrite for SIDH and SIKE. adds p503 (#5) 2018-10-25 15:22:28 +01:00
.gitignore tls: git ignore 2018-07-27 17:11:53 +01:00
.travis.yml adds code coverage 2018-07-31 20:26:50 +01:00
LICENSE License bulshit 2018-10-25 15:22:28 +01:00
Makefile sidh/csidh: use SEE for performing CSWAP (#6) 2018-10-29 15:41:09 +00:00
README.md readme: License 2018-10-25 15:22:28 +01:00

nobs-j-crypto

Crypto primitives implementation in Go.

Implemented primitives

  • dh/
    • SIDH
  • ec/
    • x448
  • hash/
    • cSHAKE (sha3 coppied from "golang.org/x/crypto")
    • SM3
  • rand/
    • CTR_DRBG with AES256 (NIST SP800-90A)
  • kem/
    • SIKE: version 3 (as per paper on sike.org)

Testing

make test

Licence

WTFPL except if specified differently in subfolders