CyberGlossary

暗号

Twofish

定義

Schneier らが設計した 128 ビットブロック・128/192/256 ビット鍵の対称暗号で、AES コンテストの最終候補。安全だが標準採用された AES に押され、利用は限定的。

Twofish は Bruce Schneier、Niels Ferguson、John Kelsey、Doug Whiting、David Wagner、Chris Hall が設計した Feistel 型の 16 ラウンドブロック暗号で、128 ビットブロックと 128/192/256 ビットの鍵長を持ちます。AES コンテスト(1997–2000)の 5 つの最終候補に残り、鍵依存の S-Box、擬似アダマール変換、複雑な鍵スケジュールを用います。特許とライセンス料の制約がなく、現在も暗号解析的に破られていませんが、性能と簡潔性の観点から最終的に Rijndael に敗れました。今日は TrueCrypt/VeraCrypt、GnuPG などで選択肢として実装されています。新規システムでは通常 AES が選ばれ、アルゴリズムの多様化が必要な場合は ChaCha20 などのストリーム暗号と併用するのが一般的です。

  • VeraCrypt は Twofish を AES、Serpent と重ねたカスケード暗号化を提供する。
  • GnuPG は Twofish を対称暗号の選択肢の一つとして提供する。

関連用語