Twofishとは
Twofishとは、ブルース・シュナイアー(Bruce Schneier)氏が開発した128、192、256ビットの鍵長、ブロック長は128ビットの共通鍵暗号化方式です。
AESの最終候補の一つでしたが、最終的には採用されませんでした。ただし、暗号化・復号の処理速度においてはRijndaelよりもTwofishの方が優れているとの見方もあります。
Twofishは、他のアルゴリズムにはないプレホワイトニング(Prewhitening)とポストホワイトニング(Postwhitening)2つの技術を使用しています。プレホワイトニングは、最初の暗号化ラウンドの前に、平文と別のサブキーのXORを行うことです。ポストホワイトニングは、暗号化16ラウンド目の暗号化後に平文と別のサブキーのXORを行うことです。