A minimal C# library for Elliptic Curve Cryptography (ECC) operations over prime fields.
dotnet add package EllipticaOr reference the project directly.
using Elliptica;
// Use secp256k1 curve (Bitcoin/Ethereum standard)
var curve = EllipticCurve.Secp256k1;
// Generate key pair
var (privateKey, publicKey) = curve.GenerateKeyPair();
Console.WriteLine($"Private: {privateKey}");
Console.WriteLine($"Public: {publicKey}");
// Verify public key is on curve
bool valid = curve.Verify(publicKey);
// Custom curve
var custom = new EllipticCurve(
a: 0, b: 7, p: BigInteger.Parse("..."),
generator: new Point(x, y),
order: BigInteger.Parse("...")
);
// Scalar multiplication
var point = curve.MultiplyByG(privateKey);An elliptic curve over a prime field
where
For two points
If
If
Scalar multiplication
result = O (point at infinity)
addend = P
while k > 0:
if k & 1:
result = result + addend
addend = addend + addend # doubling
k >>= 1
This runs in
MIT