Blowfish

暗号学では、Blowfishは1993年にBruce Schneierによって作られた鍵付き対称ブロック暗号で、1993年以降、多くの暗号化製品に組み込まれています。Blowfishはソフトウェア上での暗号化率が高く、2008年まで暗号解析上の攻撃モデルは発見されていませんでした。しかし、現在ではAESブロック暗号アルゴリズムに注目が集まっています。

シュナイアー氏はBlowfishを、古いDESアルゴリズムの代替として使用し、他の暗号化アルゴリズムの問題点や難しさを取り除くために、汎用的なアルゴリズムとして作成した。Blowfishがリリースされた当時、他の多くのアルゴリズムはプロプライエタリであったり、秘密であったりした。シュナイアー氏は、「Blowfishは非特許であり、すべての国でそうであることに変わりはない。このアルゴリズムはここにパブリックドメインとして公開され、誰でも自由に使用することができる」と述べている。

設計の主な特徴は、鍵依存のSボックスと非常に複雑な鍵スケジュールです。Blowfishは、鍵を変更する場合を除いて、多くの人が使用しているブロック暗号の中で最も高速なものの1つです。それぞれの新しい鍵は、約4キロバイトのテキストを暗号化するのと同じ時間がかかる前処理を行う必要があり、他のブロック暗号と比較して非常に遅い。このため、特定のアプリケーション(初期のスマートカードのような最小の組み込みシステムなど)では使用できませんが、他のアプリケーションでは問題ありません。OpenBSD で使用されているパスワードハッシュ法は、遅い鍵スケジュールを利用する Blowfish に由来するアルゴリズムを使用しています。鍵の強化 を参照してください。

Blowfish は 64 ビットのブロックサイズと 0 から 448 ビットまでの可変鍵長を持ち、16 ラウンドの Feistel 暗号で、大きな鍵依存 S ボックスを使用しています。固定の S-box を使用する CAST-128 と構造が似ています。

1996 年、Serge Vaudenay は、既知の平文攻撃を破るには 28r + 1 の既知の平文が必要であることを発見した。さらに、彼は同じ攻撃でも24r + 1の既知の平文だけで検出して破ることができる弱い鍵のクラスも発見しました。この攻撃は通常のBlowfishに対しては使用できません。Vincent Rijmenは博士論文の中で、4つのラウンドを破ることができる2次微分攻撃を紹介しましたが、それ以上はできませんでした。ブルートフォースサーチを別にすれば、16ラウンドを完全に破る方法はまだ知られていません。公開されているC言語のコードの一つにある符号拡張のバグは1996年に発見されています。

2008年まで公開されているBlowfishのフルラウンド版については、良い暗号解析はありません。しかし、2007年にBruce Schneierは、Blowfishはまだ使われているが、代わりに新しいTwofishアルゴリズムを使うことを推奨していることを指摘しています。

関連ページ

質問と回答

Q:Blowfishとは何ですか?


A: Blowfishは、1993年にブルース・シュナイアーによって作られた鍵付きの対称型ブロック暗号です。それ以来、多くの暗号化製品に搭載されています。

Q: Blowfishは何のために作られたのですか?


A: Blowfishは、古いDESアルゴリズムに代わる汎用的なアルゴリズムとして、他の暗号化アルゴリズムの問題点や困難さを取り除くために作られました。

Q: Blowfishの鍵長はどのくらいですか?


A: Blowfishの鍵長は0から最大448ビットまで可能です。

Q: Blowfishの設計の特徴は何ですか。
A: 鍵に依存するS-boxや非常に複雑な鍵スケジュールなどの設計上の特徴があります。

Q:全周版Blowfishの暗号解読は知られていますか?


A: 2008年現在、ブルートフォースサーチを除いて、16ラウンドのフルラウンドを解読する方法は知られていません。

Q: Serge Vaudenayは、Blowfishに対してどのような攻撃を発見しましたか?


A: Serge Vaudenayは、28r + 1の既知の平文を必要とする既知の平文攻撃を発見しました(rはラウンドの数)。彼はまた、24r + 1の既知の平文だけでこの同じ攻撃によって検出され、破ることができる弱い鍵のクラスも発見しています。

Q: ブルース・シュナイアー氏は、現在Blowfishの代わりにTwofishを使用することを推奨していますか?


A: はい、DESなどの古いアルゴリズムやAESなどの新しいアルゴリズムと比較して、セキュリティ対策が改善されているため、Bruce Schneierは現在Blowfishの代わりにTwofishを使用することを推奨しています。

AlegsaOnline.com - 2020 / 2023 - License CC3