Graph
ChaCha20-Poly1305

🔐ChaCha20-Poly1305

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.

Source

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.

Source

Authenticated Encryption RFC 8439 TLS libsodium NaCl Nonce Key Derivation Function rfc7539

COMPETING TERMS

AES-GCM

RELATIONS

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