ChaCha20 is a symmetric stream cipher that generates a pseudorandom keystream from a 256 bit key, a nonce and a block counter through twenty rounds of addition, rotation and XOR operations arranged in a 4x4 matrix of 32 bit words, which is then combined with the plaintext to produce ciphertext. It was designed by Daniel J. Bernstein in 2008 as a variant of his earlier Salsa20 cipher offering improved diffusion per round. It is widely deployed today, notably paired with the Poly1305 authenticator in the ChaCha20-Poly1305 construction used by TLS and several major software products for its speed on hardware without dedicated AES instructions.
Facts
Time Complexity
Time Complexity (category) Connections
In Field
Source Wikipedia: ChaCha20-Poly1305
Sources
1. ChaCha20 Algorithm (Wikipedia)
Wikipedia infobox: time complexity linearQuote, Wikipedia infobox: time complexity linear
linear
View the Source 2. Wikipedia: ChaCha20-Poly1305
Lead section, design paragraph
The two building blocks of the construction, the algorithms Poly1305 and ChaCha20, were both independently designed, in 2005 and 2008, by Daniel J. Bernstein.
In Field: Cryptography, Lead sentence
ChaCha20-Poly1305 is an authenticated encryption with associated data (AEAD) algorithm, that combines the ChaCha20 stream cipher with the Poly1305 message authentication code.
View the SourceIETF RFC Editor: RFC 8439: ChaCha20 and Poly1305 for IETF Protocols
IETF RFC EditorIn Group: Stream Cipher, AbstractQuote, In Group: Stream Cipher, Abstract
This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a "combined mode", or Authenticated Encryption with Associated Data (AEAD) algorithm.
View the Source Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.
Sign in to dispute this or suggest a correction.