バイナリファイルを暗号化したい。私の目標は、パスワードを持たないファイルをだれにも読まれるのを防ぐことです。
同じ鍵長のAESとBlowfishのどちらがより良いソリューションですか?攻撃者はファイルをクラックするための優れたリソース(ソフトウェア、知識、お金)を持っていると想定できます。
バイナリファイルを暗号化したい。私の目標は、パスワードを持たないファイルをだれにも読まれるのを防ぐことです。
同じ鍵長のAESとBlowfishのどちらがより良いソリューションですか?攻撃者はファイルをクラックするための優れたリソース(ソフトウェア、知識、お金)を持っていると想定できます。
回答:
おそらく AES。ふぐはTwofishの直接の前身でした。Twofishは、AESを生み出したコンテストへのBruce Schneierのエントリーでした。AESとなったRijndaelというエントリよりも劣ると判断されました。
興味深いことに、コンテストのある時点で、すべての応募者は暗号のランク付けについて意見を求められました。各チームが独自のエントリーをベストとして選んだことはおそらく驚きではありませんが、他のすべてのチームがラインダールを2番目に選んだのです。
とはいえ、BlowfishとAESの基本的な目標には、絶対的なセキュリティの観点から(間違いなく)Blowfishを支持できるいくつかの基本的な違いがあります。特に、Blowfishは、初期のキーセットアップをかなり低速な操作にすることにより、ブルートフォース(キー枯渇)攻撃を困難にしようとします。通常のユーザーの場合、これはほとんど影響がありません(まだミリ秒未満です)が、1秒あたり数百万のキーを試行してそれを壊そうとしている場合、その違いはかなり大きくなります。
しかし、結局のところ、それは大きな利点とは言えません。通常、AESをお勧めします。私の次の選択肢は、おそらく蛇、MARS、Twofishの順でしょう。Blowfishはそれらの後のどこかに来るでしょう(Blowfishより先に私がおそらくお勧めする他のカップルがいくつかあります)。
Blowfish
最速
ブロック暗号のブロックサイズもセキュリティの重要な考慮事項であることがよく認められている事実ではありません(ただし、キーサイズほど重要ではありません)。
Blowfish(および3DESやIDEAなどの同じ時代の他のほとんどのブロック暗号)は64ビットのブロックサイズを持っています。これは、今日一般的な大きなファイルサイズ(ファイルが大きく、ブロックサイズが小さい)には不十分であると考えられています、暗号文でブロックが繰り返される可能性が高くなります。そのようなブロックは暗号解読に非常に役立ちます)。
一方、AESのブロックサイズは128ビットです。この考慮だけで、Blowfishの代わりにAESを使用することが正当化されます。
アルゴリズム自体の観点から言えば、私はAESを使用しますが、単純な理由は、NISTによって受け入れられており、何年もの間ピアレビューと暗号化分析が行われることです。ただし、実際のアプリケーションでは、政府が秘密にしたいファイルを保存しているのでない限り(NSAはおそらくAESとBlowfishの両方よりも優れたアルゴリズムを提供します)、これらのアルゴリズムのいずれかを使用すると、違いはあまりありません。すべてのセキュリティが鍵となり、これらのアルゴリズムはいずれもブルートフォース攻撃に対して耐性があります。Blowfishは、16ラウンド全体を使用しない実装では弱いことだけを示しています。そして、AESは新しいものですが、その事実により、BlowFishに傾くようになります(年齢のみを考慮している場合)。このように考えてください
これが私があなたに提案することです...これらの2つのアルゴリズムを見て、アルゴリズムから選択しようとするのではなく、キー生成スキームを見てみませんか。ファイルを復号化しようとする潜在的な攻撃者は、そこに座って使用できる理論的なキーのセットを考え出して、数か月かかるブルートフォース攻撃を行うことはありません。代わりに、サーバーハードウェアへの攻撃、キーを確認するためのアセンブリのリバースエンジニアリング、キーが含まれている構成ファイルの検索、コンピューターからファイルをコピーするように友人に脅迫するなど、他の方法を利用します。 。これらは、アルゴリズムではなく、最も脆弱な場所になります。
AES。
(私はまた、あなたが二匹の魚をはるかに古くて弱いふぐではないことを意味すると仮定しています)
両方(AESとtwofish)は良いアルゴリズムです。しかし、それらが同等であるか、またはtwofishが技術的なメリットでわずかに進んでいたとしても、私はまだAESを選びました。
どうして?宣伝。AESは政府の暗号化の標準であるため、他の何百万ものエンティティもそれを使用しています。才能のある暗号解読者は、AESの欠陥を見つけるために、より多くの「金銭的価値」を手に入れ、それから、あまり知られていない、使用されたtwofishのために行います。
あいまいな場合、暗号化は保護されません。アルゴリズムを探したり、調べたり、調べたり、攻撃したりする体の数が多いほど、常に優れています。あなたは可能な限り最も「吟味された」アルゴリズムを望んでおり、今それがAESです。アルゴリズムが厳格かつ継続的な精査を受けない場合は、アルゴリズムの強度に対する信頼度を低くする必要があります。もちろん、twofishは危険にさらされていません。それがあるため、暗号の強さであるか、十分ではない人は.....近い外観を撮影しているというだけの理由YET
この答えはあなたの質問の条件に違反していることはわかっていますが、あなたの意図に対する正しい答えは単にこれだと思います:最も長いキーの長さを可能にするアルゴリズムを使用して、本当に良いキーを選択することを確認してください。最もよく評価されているアルゴリズム(暗号的および年代順)のパフォーマンスの小さな違いは、キーのいくつかの余分なビットによって圧倒されます。