CyberGlossary

暗号

ChaCha20

定義

Daniel J. Bernstein が設計した現代的ストリーム暗号で、256 ビット鍵と 96 ビットナンスを用いる。Poly1305 と組み合わせた AEAD「ChaCha20-Poly1305」として広く使われる。

ChaCha20 は Daniel J. Bernstein が 2008 年に Salsa20 を改良して発表した 20 ラウンドのストリーム暗号です。256 ビット鍵、96 ビットナンス、32 ビットブロックカウンタから、32 ビット語の加算・回転・XOR のみを用いて鍵ストリームを生成するため、AES ハードウェアのないモバイル・組込み CPU でも高速かつ定数時間で動作します。Poly1305 MAC と組み合わせた AEAD ChaCha20-Poly1305 は RFC 8439 で標準化され、TLS 1.3 で AES-GCM と並び必須の暗号スイートになっています。TLS、QUIC、WireGuard、OpenSSH、Signal プロトコル、Linux カーネルの暗号機能などで広く利用され、10 年以上の暗号解析を経てもフル 20 ラウンド版への有効な攻撃は知られていません。

  • TLS 1.3 と QUIC ではモバイル端末で TLS_CHACHA20_POLY1305_SHA256 が広く使われる。
  • WireGuard はすべてのデータパケットを ChaCha20-Poly1305 で暗号化する。

関連用語