Skip to content
crypto-lab portfolio

Ed25519 Forge

EdDSA · Curve25519 · RFC 8032

Generate a keypair, deterministically sign a message, verify signatures, and forge a small-order key to watch ZIP215 and strict verification disagree.

Key Forge

- 32-byte private scalar — never fully displayed in UI
- 32-byte private scalar → 32-byte compressed point on Curve25519
public key = [scalar]·G

The public key is the base point G added to itself scalar times. Watch a coarse double-and-add walk that mechanical multiplication on the real Ed25519 group (order shown, not to scale).

Your browser does not support canvas.

Generate a keypair to walk [scalar]·G.

Sign

- 64 bytes: R = bytes 0–31 (a curve point), S = bytes 32–63 (a scalar).

Verify

Enter hexadecimal characters. Spaces and separators are ignored.

Try a failure:
Awaiting keypair, signature, and verification input.
Why this matters

Most signature schemes require a random nonce per signature. If that RNG fails - even once - your private key is exposed. Ed25519 eliminates this entire class of failure by deriving the nonce deterministically from the private key and message. Sony's PlayStation 3 was broken because their ECDSA implementation used a constant nonce. Ed25519 makes that mistake structurally impossible.

Ed25519 vs ECDSA

Ed25519 uses deterministic nonces, derived from private key material and message, so nonce RNG failure cannot expose keys the way bad ECDSA nonce generation can. Its group has cofactor = 8, which affects validation rules and small-subgroup edge cases. Ed25519 is commonly batch-verified, often verifies around 2x faster than P-256 ECDSA in practical stacks, and always outputs compact 64-byte signatures (instead of variable-length DER encoding).