ChaCha20
ChaCha20 は Daniel Bernstein が設計したストリーム暗号であり、ARX(加算・回転・XOR)演算で構成され、Poly1305 と組み合わせて AEAD として使われることが多い、AES-GCM の高性能な代替である。
目的
AES のハードウェアアクセラレーションがないプラットフォームで高速かつ定時間安全な暗号化を提供し、AES のタイミングサイドチャネルを回避する。
メカニズム
Salsa20 の改良版であり、quarter-round 演算を 20 ラウンド実行する。状態は 4×4 の行列(定数、鍵、カウンタ、nonce)である。各ラウンドで列と対角線に加算・回転・XOR を適用し、生成されたキーストリームを平文と XOR する。
ユースケース
- TLS 1.3 のデフォルト暗号スイートの一つ
- WireGuard の VPN
- Google サーバーの暗号化
- モバイル暗号化
例
- 入力
key=256bit, nonce=96bit, counterOutputkeystreamCombined with Poly1305 as AEAD
よくあるエラー
- Nonce reuse replays the keystream
- Use a unique nonce per message (e.g., a counter)
関連用語
Salsa20
Salsa20 は Daniel Bernstein が設計したストリーム暗号であり、ARX 演算に基づく 20 ラウンド構成で、eSTREAM 推奨アルゴリズムに選定され、ChaCha20 の前身となった方式である。 用語集
AES
AES(Advanced Encryption Standard)は NIST が 2001 年に確立した対称ブロック暗号であり、128/192/256 ビット鍵をサポートし、現代暗号化の事実上の標準である。 用語集
GCM (Galois/Counter Mode)
GCM(Galois/Counter Mode)は CTR 暗号と GHASH 認証を組み合わせた AEAD モードであり、機密性と完全性を同時に提供し、TLS 1.2/1.3 の推奨モードである。 用語集
Stream Cipher
ストリーム暗号はバイト単位やビット単位で暗号化し、鍵ストリームを平文と XOR する。パディングが不要で、リアルタイムやストリーミングデータに適する。 用語集
関連ツール
AES 暗号化ツール
Encrypt text or binary data with AES (CBC/GCM/ECB) using Web Crypto API。無料、プライベート、100%クライアントサイド。 ツール
ChaCha20 暗号化ツール
ChaCha20 ストリーム暗号(RFC 8439)でテキストを暗号化 — RFC 公式テストベクトルとバイト単位で検証済みの本物のアルゴリズム(OpenSSL と相互確認)。256 ビット鍵(32 バイト)、96 ビット nonce(12 バイト)、32 ビットブロックカウンター。無料・プライベート・100% クライアントサイド。同一鍵で nonce を再使用しないでください。 ツール
ChaCha20 復号ツール
ChaCha20 暗号文(RFC 8439)を復号 — RFC 公式テストベクトルとバイト単位で検証済みの本物のアルゴリズム(OpenSSL と相互確認)。鍵はちょうど 32 バイト、nonce はちょうど 12 バイト、ブロックカウンターは暗号化時と同じ値である必要があります。暗号文の入力形式は出力形式オプション(hex/base64)に従います。無料・プライベート・100% クライアントサイド。 ツール