XChaCha20-Poly1305 AEAD construction

E268251

XChaCha20-Poly1305 AEAD construction is an authenticated encryption scheme that extends ChaCha20-Poly1305 with a longer nonce for improved security and robustness against nonce reuse.

All labels observed (4)

How this entity was disambiguated

Statements (46)

Predicate Object
instanceOf AEAD construction
authenticated encryption with associated data scheme
avoids AES-specific side-channel issues on some platforms
basedOn ChaCha20
surface form: ChaCha20 stream cipher

Poly1305 one-time MAC
category symmetric-key cryptography
designedFor software efficiency without specialized hardware instructions
designedTo allow random nonces
improve robustness against nonce reuse
encryptionMode stream cipher with one-time MAC
extends XChaCha20-Poly1305 AEAD construction self-linksurface differs
surface form: ChaCha20-Poly1305 AEAD construction
hasKeyLength 256 bits
32 bytes
hasNonceLength 192 bits
24 bytes
hasTagLength 128 bits
16 bytes
implementedIn BoringSSL
Go crypto/x/crypto packages
Rust crates such as chacha20poly1305
libsodium
nonceMisuseResistance improved but not fully misuse-resistant
origin proposed by cryptographers including Jason A. Donenfeld and others in the context of extended-nonce ChaCha
performance similar to ChaCha20-Poly1305 on modern CPUs
providesProperty authenticity
confidentiality
integrity
recommendedFor applications requiring large number of encryptions per key
applications where nonce uniqueness cannot be guaranteed
requires unique key and nonce pair for strongest security guarantees
securityDependsOn pseudorandomness of ChaCha20
unforgeability of Poly1305 MAC
securityGoal IND-CCA2 security under standard assumptions
standardizedIn IETF draft libsodium documentation (non-RFC, library specification)
suitableFor datagram encryption
file encryption
network protocols
supports associated data
tagComputation Poly1305 over ciphertext and associated data
thenUses ChaCha20-Poly1305 with derived subkey and remaining 64-bit nonce
usesBlockFunction ChaCha20 quarter-round function
usesCipher XChaCha20-Poly1305 AEAD construction self-linksurface differs
surface form: XChaCha20
usesConstruction HChaCha20 key derivation for subkey
usesKeyDerivation HChaCha20 to derive subkey from main key and first 128 bits of nonce
usesMAC Poly1305
usesNonceStructure 192-bit nonce split into 128-bit extended nonce and 64-bit ChaCha20 nonce

How these facts were elicited

Referenced by (4)

Full triples — surface form annotated when it differs from this entity's canonical label.

RFC 8439 specifies XChaCha20-Poly1305 AEAD construction
Noise_XX pattern canBeInstantiatedWith XChaCha20-Poly1305 AEAD construction
this entity surface form: Noise_XX_25519_ChaChaPoly_BLAKE2s
XChaCha20-Poly1305 AEAD construction usesCipher XChaCha20-Poly1305 AEAD construction self-linksurface differs
this entity surface form: XChaCha20
XChaCha20-Poly1305 AEAD construction extends XChaCha20-Poly1305 AEAD construction self-linksurface differs
this entity surface form: ChaCha20-Poly1305 AEAD construction