Twofishアルゴリズム | |
| 一般的な | |
|---|---|
| デザイナー | ブルース・シュナイアー |
| 初版 | 1998 |
| 由来 | フグ、SAFER、スクエア |
| 関連 | スリーフィッシュ |
| 認証 | AESファイナリスト |
| 暗号の詳細 | |
| キーサイズ | 128、192、または256ビット |
| ブロックサイズ | 128ビット |
| 構造 | フェイステルネットワーク |
| ラウンド | 16 |
| 最高の公開暗号解読 | |
| 約2 51 個の選択された平文を必要とする切り捨て差分暗号解読。 [1] 2 256 個のステップを使用して、256 ビットのキーバージョンの 16 ラウンドのうち 6 ラウンドを解読する不可能差分攻撃。[2] | |
暗号学において、Twofish はブロック サイズが 128ビット、鍵サイズが最大 256 ビットの対称鍵 ブロック暗号です。Advanced Encryption Standard コンテストのファイナリスト 5 名のうちの 1 名でしたが、標準化には選ばれませんでした。Twofish は、以前のブロック暗号Blowfishと関連があります。
Twofish の特徴は、事前に計算されたキー依存のS ボックスと、比較的複雑なキー スケジュールの使用です。n ビット キーの半分は実際の暗号化キーとして使用され、n ビット キーのもう半分は暗号化アルゴリズム (キー依存の S ボックス) を変更するために使用されます。Twofish は、他の設計からいくつかの要素を借用しています。たとえば、SAFER暗号ファミリの擬似アダマール変換[3] (PHT)です。Twofish はDESのようなFeistel 構造を持っています。Twofish は最大距離分離可能行列も採用しています。
1998年に導入されたとき、Twofishは128ビット鍵ではRijndael ( Advanced Encryption Standardに選ばれたアルゴリズム)よりわずかに遅かったが、256ビット鍵ではいくらか速かった。2008年以降、ほぼすべてのAMDおよびIntelプロセッサには、AES命令セットを介してRijndaelアルゴリズムのハードウェアアクセラレーションが組み込まれており、この命令セットを使用するRijndael実装は、(ソフトウェアによる)Twofish実装よりも桁違いに高速になっている。[4]
Twofish は、 Bruce Schneier、John Kelsey、Doug Whiting、David Wagner、Chris Hall、 Niels Fergusonによって設計されました。「拡張 Twofish チーム」は、Twofish のさらなる暗号解析を実行するために集まりました。その他の AES コンテスト参加者には、Stefan Lucks、Tadayoshi Kohno、Mike Stay などがいました。
Twofish 暗号は特許を取得されておらず、リファレンス実装はパブリック ドメインに置かれています。そのため、Twofish アルゴリズムは、いかなる制限もなく誰でも自由に使用できます。これは、OpenPGP標準 (RFC 9580) に含まれる数少ない暗号の 1 つです。ただし、Twofish は、より長く利用可能であったBlowfishほど広く使用されていません。
パフォーマンス
Twofish の設計において、パフォーマンスは常に重要な要素でした。暗号化速度、メモリ使用量、ハードウェア ゲート数、キー設定、その他のパラメータの重要性に応じて、複数のレイヤーでパフォーマンスのトレードオフを可能にするように設計されています。これにより、さまざまなアプリケーションに実装できる非常に柔軟なアルゴリズムが可能になります。
Twofish では、ソフトウェアでもハードウェアでも、複数の空間と時間のトレードオフが可能です。このようなトレードオフの例として、ラウンド サブキーまたは S ボックスの事前計算が挙げられます。これにより、速度が 2 倍以上向上します。ただし、これには、保存に必要な RAMの増加という代償が伴います。
以下の表の推定値はすべて、既存の 0.35 μm CMOSテクノロジに基づいています。
暗号解読
1999年、ニールス・ファーガソンは、 256ビット鍵バージョンの16ラウンドのうち6ラウンドを2256ステップで破る不可能差分攻撃を発表しました。[2]
2000年現在[アップデート]、Twofishブロック暗号の最も優れた解読法は、16ラウンドの完全版の切り捨て差分暗号解読法である。この論文では、切り捨て差分の確率はブロックあたり2 −57.3であり、切り捨て差分の良好なペアを見つけるにはおよそ2 51の選択平文(32 ペタバイト相当のデータ)が必要であると主張している。 [6]
ブルース・シュナイアーは2005年のブログ記事で、この論文は完全な暗号解読攻撃を提示したものではなく、仮説上の差分特性を示しただけだと答えた。「しかし、理論的な観点から見ても、Twofish はまったく破られていない。2000年に発表されて以来、この結果に拡張は行われていない。」[7]
参照
参考文献
- ^ Ship Moriai; Yiqun Lisa Yin (2000). 「Twofish の暗号解析 (II)」(PDF) 。2013 年 1 月 14 日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ ab Niels Ferguson (1999-10-05). 「Twofish の不可能な微分」( PDF ) 。2013 年 1 月 14 日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ 「Team Men In Black Presents: TwoFish」(PDF) 。 2017年9月26日時点のオリジナル(PDF)よりアーカイブ。 2017年9月26日閲覧。
- ^ Bruce Schneier、Doug Whiting (2000-04-07)。「A Performance Comparison of the Five AES Finalists」( PDF / PostScript ) 。2013-01-14閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Schneier, Bruce (1998 年 6 月 15 日). 「Twofish: 128 ビット ブロック暗号」(PDF) . Counterpane : 68.
- ^ Shiho Moriai; Yiqun Lisa Yin (2000). 「Twofish の暗号解析 (II)」(PDF) 。2013 年 1 月 14 日閲覧。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ Schneier, Bruce (2005-11-23). 「Twofish Cryptanalysis Rumors」. Schneier on Security ブログ. 2013-01-14閲覧。
記事
- Bruce Schneier、John Kelsey、Doug Whiting、David Wagner、Chris Hall、Niels Ferguson ( 1998-06-15 )。「Twofish 暗号化アルゴリズム」( PDF / PostScript ) 。2013-01-14に取得。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ブルース・シュナイアー、ジョン・ケルシー、ダグ・ホワイティング、デイビッド・ワグナー、クリス・ホール、ニールス・ファーガソン (1999-03-22)。 『Twofish 暗号化アルゴリズム: 128 ビット ブロック暗号』。ニューヨーク市: John Wiley & Sons。ISBN 0-471-35381-7。
外部リンク
- Twofish のウェブページ。完全な仕様、無料のソースコード、Bruce Schneierによるその他の Twofish リソースが掲載されています。
- 256 ビット暗号 – TWOFISH リファレンス実装と派生コード
- Twofish を使用する製品 (Bruce Schneier 著)
- より良いアルゴリズム: Rijndael か TwoFish か? ( sci.cryptより)
- 標準暗号アルゴリズムの命名: Twofish

