OWASP ASVS 3.0 V7.7 は次のように述べています。
アプリケーションで使用される暗号化アルゴリズムがFIPS 140-2または同等の標準に対して検証されていることを確認します。
Blowfish は含まれていません NISTsデータベースFIPS 140検証済みモジュール 。別の標準に対して検証済みですか?
Blowfishはアルゴリズムです。アルゴリズムは何に対しても検証されません。検証されるのは、アルゴリズムの実装です。
Blowfishは、私が知る限り、それ自体を標準と呼ぶテキストによって定義されていません。 オリジナル紙 は公式仕様に最も近いものです。著者はテストベクターも公開しています。
一部のアプリケーションには弱いため、Blowfishは使用しないでください。 AES、CAMELLIA、ChaCha ...より良い代替案が存在します... Blowfishの主な欠点は、64ビットのブロックサイズであるため、 Sweet32 DESの場合。
あなたは塩の粒でこの特定のアドバイスを取るべきです。公式のFIPS 140準拠スタンプが付属する実装は実際には悪いことです!その理由は、公式のスタンプを取得するのは遅くて高価であり、バグ修正にはこのプロセスを再度実行する必要があるためです。 。したがって、公式のFIPS 140準拠のスタンプがあると、コードに既知のバグがあることが実質的に保証されます。
さらに、FIPS 140にはいくつかのレベルがあり、レベル1は、適切な入力が与えられたときに実装が計算を正しく実行することのみを示しています。それだけです。レベル2以上のみに、いくつかのセキュリティ要件が含まれています。 FIPS 140-2の「2」は、仕様のバージョンであり、レベルではありません。
重要なのは:
NISTは管理組織であり、すでに承認されたアルゴリズムに基づいて構築されたものは何でも好きです。 Blowfishは、NIST、ISO、または他の誰からも、いかなる種類の祝福も受けていません。ほとんどの場合、これは「既知の」構成に基づいていないためです。
プロダクションアプリケーションで* fishを使用する場合、選択を元に戻すためにどのソースを使用するかに関係なく、他の「標準」を選択しないことで非難されることは確実です。 (とはいえ、最近までずっと* fishを使っていました)