NEW
An AEAD construction combining the ChaCha20 stream cipher with the Poly1305 MAC, standardized for speed and strong security.
DESCRIPTION
ChaCha20-Poly1305 is an authenticated encryption algorithm pairing the ChaCha20 stream cipher with Poly1305 for message authentication. It provides confidentiality and integrity with nonce-based operation. Favored on systems without AES acceleration, it offers high performance and resilience against timing attacks. It’s widely deployed in TLS and libraries like libsodium. Correct nonce management is critical to prevent catastrophic failures.
ALTERNATIVE DEFINITIONS
IETF RFC 8439
This document defines the ChaCha20 stream cipher and the Poly1305 authenticator and specifies their use in IETF protocols, including the standardized AEAD construction ChaCha20-Poly1305.
Establishes standardized AEAD construction and scope in IETF protocols.
Cloudflare
ChaCha20-Poly1305 is an authenticated encryption with associated data (AEAD) algorithm that combines the ChaCha20 stream cipher with the Poly1305 MAC.
Explains AEAD nature and component algorithms in practical deployment contexts.
RELATED TERMS
Authenticated Encryption RFC 8439 TLS libsodium NaCl Nonce Key Derivation Function rfc7539
COMPETING TERMS
RELATIONS
- Broader: Authenticated Encryption
- Implemented by: WireGuard
KNOWLEDGE AREAS
Data Security Infrastructure Software Engineering
TARGET AUDIENCE
Security Architect Cybersecurity Engineer Software Developer Chief Information Security Officer DevOps Engineer
EXTERNAL SOURCES
- Wikipedia - ChaCha20-Poly1305
- IETF - Official standard for ChaCha20-Poly1305
- libsodium - Library docs and guidance
TOP QUESTIONS
What is ChaCha20-Poly1305?
It’s an authenticated encryption algorithm that ensures confidentiality and integrity using ChaCha20 for encryption and Poly1305 for authentication.
Category: Definition
Why use ChaCha20-Poly1305 over AES-GCM?
It performs well on devices without AES hardware acceleration and resists some timing attacks, making it efficient and secure.
Category: Opinion
Where is ChaCha20-Poly1305 commonly used?
It’s widely used in TLS stacks, secure messaging, and libraries like libsodium and NaCl for cross-platform encryption.
Category: Overview
What is the main risk when using ChaCha20-Poly1305?
Nonce reuse is catastrophic. Always use unique nonces per key-message pair to prevent breaking security.
Category: Risks
How does AEAD improve security?
AEAD provides both encryption and integrity in one operation, protecting against tampering and ensuring message authenticity.
Category: Requirements
What is currently a hot topic around ChaCha20-Poly1305?
Balancing performance and security in TLS, and using ChaCha20-Poly1305 for mobile networks with heterogeneous hardware is notable.
Category: Topic
How do I implement ChaCha20-Poly1305?
Use vetted libraries (libsodium, OpenSSL) and follow documentation for nonce generation, key management, and error handling.
Category: Management
Is ChaCha20-Poly1305 standardized?
Yes, it’s specified in IETF RFC 8439 and deployed in major protocols and libraries.
Category: Relevancy
What are common mistakes with ChaCha20-Poly1305?
Rolling your own crypto, weak randomness, and nonce reuse are dangerous. Always rely on standard libraries and practices.
Category: Mistakes