cothority
cothority copied to clipboard
Twisted Edwards Curve / Montgomery
The current kyber
ed25519 implementations seem to both use Twisted Edwards Curve, as proposed in the RFC8032:
-
curve25519
is the variable-time, fast implementation - not used -
ed25519
is the constant-time, slower implementation - used incothority
Unfortunately the popular BouncyCastle library uses Montgomery representation, as described in the RFC7748, but BouncyCastle doesn't support Twisted Edwards Curve representation.
So, we either:
- implement Twisted Edwards Curve in BouncyCastle or
- implement a Montgomery (RFC7748?) compatible
curve25519
fordedis/kyber
Things to verify:
- Twisted Edwards Curve and Montgomery definitions in RFCs
- Compatibility of
kyber/ed25519
with RFC8032 - Availability of Montgomery implementation in golang
- Why does golang use Twisted Edwards Curve representation per default?