コンテンツへスキップ
uencoder

Twofish

Twofish は Bruce Schneier らが AES 競技のために設計した対称ブロック暗号である。128 ビットブロックと 128/192/256 ビット鍵を持ち、AES 決勝進出アルゴリズムの 1 つだった。

目的

AES 競技でセキュアな選択肢を提供した。Feistel + 鍵依存 S ボックスという異なる構造を採用し、解析の多様化を図る。

メカニズム

128 ビットブロック上の 16 ラウンド Feistel ネットワークである。鍵によって決まる 4 つの鍵依存 S ボックスを、MDS 行列と疑似アダマール変換と組み合わせて使う。鍵スケジュールは比較的複雑であるが、ホワイトニング(入出力での鍵 XOR)を提供する。

ユースケース

  • AES コンペティションの歴史
  • 一部の暗号ライブラリでの選択肢
  • 暗号学のレクチャー
  • 高セキュリティな代替手段

例

  • 入力
    key=256bit, data=16bytes
    Output
    16-byte ciphertext

    AES finalist

よくあるエラー

Mistaking Twofish for the AES standard
AES ultimately selected Rijndael

関連用語

関連ツール

References