1
0
mirror of https://github.com/henrydcase/nobs.git synced 2024-11-22 15:18:57 +00:00
Go to file
Henry Case 49bf0db8fd SHAKE: Don't use function pointers (#20)
* xorIn and copyOut function pointers cause input and output data
  to be moved to heap. This degrades performance of calling code.

* This change removes usage of those function pointers. We will always
  use unaligned implementation as it's faster (but may crash on some
  systems)

* Benchmark compares generic vs unaligned xorIn and copyOut

benchmark                          old ns/op     new ns/op     delta
BenchmarkPermutationFunction-4     463           815           +76.03%
BenchmarkShake128_MTU-4            4443          8180          +84.11%
BenchmarkShake256_MTU-4            4739          9060          +91.18%
BenchmarkShake256_16x-4            71886         132629        +84.50%
BenchmarkShake256_1MiB-4           3695138       6649012       +79.94%
BenchmarkCShake128_448_16x-4       21210         24611         +16.03%
BenchmarkCShake128_1MiB-4          3009342       3396496       +12.87%
BenchmarkCShake256_448_16x-4       26034         27785         +6.73%
BenchmarkCShake256_1MiB-4          3654713       3829404       +4.78%
2019-05-14 17:08:33 +01:00
dh/sidh Nits for SIDH 2019-04-09 17:09:34 +01:00
drbg CTR-DRBG: Use hardware acceleration on X86 (#18) 2019-04-09 23:50:21 +01:00
ec/x448 x448: Export shared secret size 2018-08-03 14:37:38 +01:00
etc Run tests on ARM64 (#11) 2019-02-16 21:29:20 +00:00
hash SHAKE: Don't use function pointers (#20) 2019-05-14 17:08:33 +01:00
kem/sike complate rewrite for SIDH and SIKE. adds p503 (#5) 2018-10-25 15:22:28 +01:00
utils DRBG: Speed improvements 2019-04-09 14:37:59 +01:00
.gitignore tls: git ignore 2018-07-27 17:11:53 +01:00
.travis.yml Run tests on ARM64 (#11) 2019-02-16 21:29:20 +00:00
LICENSE SIDH: Update (#9) 2018-12-03 23:07:01 +00:00
Makefile Improvements to makefile 2019-04-09 17:30:30 +01: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