Salsa20
Salsa20 は Daniel Bernstein が設計したストリーム暗号であり、ARX 演算に基づく 20 ラウンド構成で、eSTREAM 推奨アルゴリズムに選定され、ChaCha20 の前身となった方式である。
目的
高速かつ定数時間で安全なストリーム暗号化を提供し、ブロック暗号のパディングや運用モードの複雑さを回避する。
メカニズム
状態は 4×4 行列(定数 σ、鍵、ナンス、カウンタ)で構成される。各ラウンドでは quarter-round(加算・回転・XOR)をすべての列と行に適用する。20 ラウンド後に状態を初期状態へ加算し、キーストリームを生成する。
ユースケース
- eSTREAM 推奨アルゴリズム
- NaCl 暗号ライブラリ
- 暗号学における研究
- 教育用のサンプル
例
- 入力
key=256bit, nonce=64bitOutputkeystreamChaCha20 is its improved successor
よくあるエラー
- Using Salsa20 instead of the safer ChaCha20
- Prefer ChaCha20-Poly1305
関連用語
ChaCha20
ChaCha20 は Daniel Bernstein が設計したストリーム暗号であり、ARX(加算・回転・XOR)演算で構成され、Poly1305 と組み合わせて AEAD として使われることが多い、AES-GCM の高性能な代替である。 用語集
AES
AES(Advanced Encryption Standard)は NIST が 2001 年に確立した対称ブロック暗号であり、128/192/256 ビット鍵をサポートし、現代暗号化の事実上の標準である。 用語集
Stream Cipher
ストリーム暗号はバイト単位やビット単位で暗号化し、鍵ストリームを平文と XOR する。パディングが不要で、リアルタイムやストリーミングデータに適する。 用語集
関連ツール
AES 暗号化ツール
Encrypt text or binary data with AES (CBC/GCM/ECB) using Web Crypto API。無料、プライベート、100%クライアントサイド。 ツール
Salsa20 暗号化ツール
Salsa20 ストリーム暗号(D. J. Bernstein のオリジナル設計、eSTREAM ポートフォリオ)でテキストを暗号化 — eSTREAM 公式テストベクトルと Salsa20 core 仕様ベクトルで検証済みの本物のアルゴリズム(PyCryptodome と相互確認)。128/256 ビット鍵(16 または 32 バイト)、64 ビット nonce(8 バイト)、64 ビットブロックカウンター。無料・プライベート・100% クライアントサイド。同一鍵で nonce を再使用しないでください。 ツール
Salsa20 復号ツール
Salsa20 暗号文(Bernstein オリジナル設計、eSTREAM ポートフォリオ)を復号 — eSTREAM 公式テストベクトルで検証済みの本物のアルゴリズム(PyCryptodome と相互確認)。鍵は 16 または 32 バイト、nonce はちょうど 8 バイト、ブロックカウンターは暗号化時と同じ値である必要があります。暗号文の入力形式は出力形式オプション(hex/base64)に従います。無料・プライベート・100% クライアントサイド。 ツール