0

こんにちは、C++ で Blowfish アルゴリズムを使用してデータを暗号化する必要があります...相手側が私が使用しているアルゴリズムを知っているかどうか教えてもらえますか? この方法によるデータの安全性は?

4

3 に答える 3

4

相手側が私が使用しているアルゴリズムを知っているかどうか教えてもらえますか?彼らはキーを抽出して復号化することはできませんか?

いいえ。標準化された暗号化アルゴリズム (あいまいさに依存するものとは対照的に) の要点は、誰もがその詳細をすべて知っていても、鍵を持っていない限り解読できないことです。

このアプローチが機能するのは、暗号化を解読する唯一の方法は、考えられるすべての鍵を試すことであり、鍵の数が多すぎるためです。計算能力が向上するにつれて、以前は「安全」だったアルゴリズムが「非安全」になります。一部のアルゴリズムでは、可能なキースペースを大幅に削減し、これらのブルートフォース攻撃を高速化する他の形式の推論を可能にする欠陥もある可能性があります。しかし、(私たちが知る限り)フグはここでは安全です。

もちろん、鍵を秘密にしておくことは不可欠です。プログラムにキーも含まれている場合 (ユーザーまたは一部のデバイスにキーを要求したり、公開キー暗号を使用して暗号化されたランダムなセッション キーを使用したりするのではなく)、リバース エンジニアはおそらくそれを見つけてスキームを破ることができます。

キーを秘密にしておくことの重要な部分は、それを「推測不可能」に保ち、別の目的で再利用しないことです。ランダムに生成されたキーが最適です。

また、「向こう側」とは攻撃者のことですよね?通常、「もう一方の端」は、意図された受信者であるボブを指し、もちろん彼はメッセージを解読できる必要があります。

于 2011-01-11T04:38:38.667 に答える
1

私の理解では、特定の暗号化および復号化の方法を選択する全体的なポイントの 1 つは、通信ストリームの両端がデータがどのアルゴリズムで暗号化されているかを知ることです。

Blowfish アルゴリズムを使用してデータを暗号化する必要がある場合、要件だけで、受信者が Blowfish スキームを使用して暗号化されたメッセージを期待していることがわかります。

Thiloが言ったように、「標準化された暗号化アルゴリズムの要点は... 誰もがその詳細をすべて知っていても、鍵を持っていなければ復号化できないということです。」

中間者攻撃や、悪意のある者がメッセージを傍受するその他の攻撃を防ぐ最善の方法は、キーを安全に保つことです。キーをプログラムにハードコーディングしないでください (コンパイルされたプログラムであっても分析できます)。悪意のあるエージェントが適切なキーを取得する可能性を最小限に抑えるセキュリティ慣行を確保することにより、受信者との信頼を構築します。または、受信者がサポートしている場合は、データを暗号化するための一意のパスワード/キーである「ワンタイム パッド」を使用できます。

于 2011-01-11T04:46:45.497 に答える
1

Blowfish に対する既知の攻撃は (2011 年 1 月現在) ないため、データはキーの長さと同じくらい安全です (Blowfish では最大 448 ビット)。

于 2011-01-11T04:38:16.787 に答える