btcd
btcd copied to clipboard
btcec: Impliment ElligatorSwift elliptic-curve points encoding, decoding functions
Ex post tracking issue for #2219
Background
BIP324 implementation necessitates btcd implement ElligatorSwift elliptic-curve points encoding and decoding functions. During BIP324's Handshake-key-exchange phase ellswift is called by the initiator and responder
Notes:
SwiftEC:
title: Indifferentiable Function To Elliptic Curves
link: https://eprint.iacr.org/2022/759.pdf
goals:
- Produce a form of steganography for censorship circumvention
subgoals:
- Create a covert method of EC-curve-point encoding
SwiftEC goal:
- Achieve a high grade of covertness in detecting whether bits are encoded EC curve points or entropy
metrics:
- Candidate bits should be "indifferentiable from a random oracle when composed with a random oracle to the base field"
summary:
ElligatorSwift produces a valid secp256k1-curve X coordinate that is indistinguishable from a uniformly distributed bitstream.