0Pricing
Cryptology Academy · Lesson

WireGuard: ChaCha20 and Curve25519 VPN

Explore WireGuard's minimal cryptographic design using ChaCha20-Poly1305, Curve25519, and BLAKE2.

WireGuard Design Philosophy

WireGuard was designed with radical simplicity as a primary goal. Its codebase is approximately 4,000 lines, compared to 70,000 for OpenVPN and over 400,000 for strongSwan IPsec. Fewer lines mean fewer potential vulnerabilities and an audit surface small enough for a single engineer to review thoroughly. This simplicity is a deliberate security choice, not a feature limitation.

Fixed Cryptographic Primitives

Unlike OpenVPN and IPsec, WireGuard does not negotiate cryptographic algorithms. Every WireGuard connection uses the same fixed set of primitives: Curve25519 for ECDH, ChaCha20-Poly1305 for authenticated encryption, BLAKE2s for hashing, and SipHash-2-4 for hashtable security. This eliminates cipher negotiation, which removes an entire class of downgrade attacks.

All lessons in this course

  1. IPsec: IKEv2, ESP, and AH Protocols
  2. WireGuard: ChaCha20 and Curve25519 VPN
  3. OpenVPN: TLS-Based VPN Architecture
  4. Comparing VPN Protocols: Security and Performance
← Back to Cryptology Academy