コンテンツへスキップ
uencoder

Salsa20

Salsa20 は Daniel Bernstein が設計したストリーム暗号であり、ARX 演算に基づく 20 ラウンド構成で、eSTREAM 推奨アルゴリズムに選定され、ChaCha20 の前身となった方式である。

目的

高速かつ定数時間で安全なストリーム暗号化を提供し、ブロック暗号のパディングや運用モードの複雑さを回避する。

メカニズム

状態は 4×4 行列(定数 σ、鍵、ナンス、カウンタ)で構成される。各ラウンドでは quarter-round(加算・回転・XOR)をすべての列と行に適用する。20 ラウンド後に状態を初期状態へ加算し、キーストリームを生成する。

ユースケース

  • eSTREAM 推奨アルゴリズム
  • NaCl 暗号ライブラリ
  • 暗号学における研究
  • 教育用のサンプル

例

  • 入力
    key=256bit, nonce=64bit
    Output
    keystream

    ChaCha20 is its improved successor

よくあるエラー

Using Salsa20 instead of the safer ChaCha20
Prefer ChaCha20-Poly1305

関連用語

関連ツール

References