3

私は最近ファイルの暗号化について読んでいますが、多くの場所で、暗号化されたファイルは、暗号化アルゴリズムの強度に関係なく、非常に傾倒している人々による復号化の影響を受けやすいという警告を目にしました。

しかし、誰かが暗号化されたファイルを復号化しようとする方法について頭を悩ませることはできません。

たとえば、暗号化されたファイルがあり、その内容を知りたいとします。ファイルの暗号化に使用されるキーが何であるか、また使用される暗号化アルゴリズムもわかりません。職業はなんですか?(この例では、暗号化アルゴリズムがAES-256などの対称鍵アルゴリズムであると想定します。IEは鍵で暗号化されたファイルであり、その鍵を復号化する必要があります)。

さらに、使用されている暗号化アルゴリズムを知っている場合、アプローチはどのように変わりますか?(この場合、使用される暗号化アルゴリズムはランダムキー+ソルトを使用するAES-256であると想定します)。

4

4 に答える 4

3

この質問に答えるには 2 つの方法があります。完全な暗号システムがどのように攻撃されるかという文字通りの意味で、そして現実世界のシステムがどのように攻撃されるかです。暗号化についてさらに学び始めるとわかる最大の問題の 1 つは、アルゴリズムの選択が簡単な部分であるということです。信じられないほど困難になるのは、これらのキーをどのように管理するかです。

基本プリミティブを攻撃する方法は、アルゴリズムのタイプによって異なります。AESのような対称暗号で暗号化されたデータの場合、ブルート フォース攻撃を使用します。つまり、適切なキーが見つかるまで、可能なすべてのキーを効果的に試します。残念ながら、可能なすべての 256 ビット キーを試す物理法則の変更を禁止することはできません。ウィキペディアから:"A device that could check a billion billion (10^18) AES keys per second would in theory require about 3×10^51 years to exhaust the 256-bit key space"

暗号化されたように見えるファイルに出くわすことについてのあなたの質問の問題は、使用されている方法を知らずに、識別攻撃として知られている少し難しい問題です。最新のすべてのアルゴリズムの要件の 1 つは、それらの出力がランダム データと区別できないことです。AES と Twofish の両方で何かを暗号化し、ヘッダーなどの他の情報がないランダムなデータを提供した場合、それらを区別する方法はありません。とは言え……。

あなたは、アルゴリズムの知識がアプローチをどのように変えるかを尋ねました。暗号学者が通常行う仮定の 1 つは、アルゴリズムの知識はセキュリティにまったく影響を与えるべきではなく、すべて秘密鍵に依存するべきだというものです。通常、使用しているプロトコルが何であれ、アルゴリズムの仕様がわかります。これが公開されていない場合、相互確率は悪夢になるでしょう。たとえば、暗号スイートは、SSL などのプロトコルがサポートする一連のアルゴリズムです。NIST FIPSNSA Suite Bは、連邦政府によって標準化されたアルゴリズムであり、ほとんどの人が従っています。

しかし実際には、ほとんどの暗号システムにはもっと大きな問題があります。

  • 不適切な乱数生成: 暗号化には、非常に優れた予測不可能な乱数生成器が必要です。Netscape の SSL 実装の場合のように、不適切な乱数ジェネレーターを使用すると、セキュリティが完全に崩壊する可能性があります。また、 Debian RNGバグのような例もあります。このバグでは、開発者がコードを変更してメモリ リークの警告に対応し、最終的に Debian がすべてのシステムに対して同じ証明書キーを生成することになりました。

  • タイミング攻撃: 特定の操作は、他の操作よりもコンピューターでの実行に時間がかかります。場合によっては、攻撃者がこの待ち時間を観察して、秘密の値を推測できます。これは、ローカル ネットワークを介してサーバーの秘密鍵をリモートで回復することによって実証されています。

  • ホストに対する攻撃: 暗号システムを攻撃する 1 つの方法は、ホストを攻撃することです。メモリを冷却することで、制御するマシンでその内容を保存および検査できます。

  • ゴムホース暗号解読: おそらく最も簡単な攻撃の 1 つです。鍵を明らかにしない限り、物理的な危害または投獄でパーティを脅します。裁判所が暗号鍵の開示を強制できるかどうかについて、興味深い判例が数多くあります。

于 2013-01-13T23:51:08.927 に答える
1

AES256 は事実上解読不能です。

http://www.wilderssecurity.com/showthread.php?t=212324から:

どの機関も適切に実装された AES を破ることができるという信頼できる憶測はないと思います。既知の暗号解読攻撃はなく、実際に AES-256 の総当たり攻撃は、おそらく私たちの生涯における人間の能力を超えています。56 ビット DES を 1 秒でブルートフォースできると仮定しましょう。これはそもそもばかげた仮定です。次に、AES-256 は 2^200 秒かかります。これは 5 x 10^52 年です。したがって、AES に既知の弱点がなければ、たとえ量子コンピューティングがあったとしても、私たちの一生のうちではまったく不可能であることがわかります。私たちの太陽は、既知の弱点なしで AES-256 をブルートフォースするのに十分な計算能力を得る前に、今から約 50 億年後に爆発するでしょう。AES の弱点が見つからない場合、AES 以外の暗号を探す理由はまったくありません。

于 2013-01-13T23:14:42.823 に答える
1

私はアンドリューに部分的に同意し、ジェレミーに部分的に同意します。

この場合、暗号化キーが正しく生成された場合 (ランダムに生成された、または複雑なパスワード、適切なキー派生関数、およびランダムなソルトに基づいている) 場合、AES256 は事実上解読できません (アンドリューが言ったように)

一方、キーが正しく生成されていない場合。例として、4 桁の PIN パスワードの単純なハッシュだけで、ブルート フォースは非常に効率的である可能性があります。

「ファイルの暗号化に使用されたキーも、使用された暗号化アルゴリズムもわかりません。」

ほとんどの場合、暗号化されたファイルには、何か (ファイルの暗号化に使用されるアプリケーション、暗号化アルゴリズムなど) を指定するヘッダーまたはフッターがあります。

パディングによってアルゴリズムを見つけようとすることができます (たとえば、3DES にはパディングがあり、AES には異なるパディングがあります)。

于 2013-01-14T00:03:34.157 に答える
1

たとえば、基本的なブルートフォース攻撃があります。az AZ 0-9 を使用して 1 文字から 15 文字までのすべての組み合わせを試すようにソフトウェアに依頼し、待機します。ソフトウェアは 0 から 10 で始まり、パスワードが見つかるまで 0a、0b、0c と続きます。ウィキペディアで詳しく説明します。

于 2013-01-13T23:11:41.653 に答える