web-dev-qa-db-ja.com

暗号化キーを1文字ずつ解読することは可能ですか?

映画やテレビ番組では、文字ごとに(または数字ごとに)暗号化キーまたはパスコードを判別できるデバイスやアプリケーションを使用して文字が描かれることがよくあります。私はプログラマーであり、暗号化が一般的にどのように機能するかについてはまともな考えを持っていると思いますが、これを進行状況を表示する簡単な方法としてとるか、実際に何かがあるかどうかはわかりません。

これは可能ですか?もしそうなら、アルゴリズムのどの特性がこの種のクラッキングの影響を受けやすくしますか?

4
thesquaregroot

暗号化システムが文字ごとのクラッキングを可能にする場合、それは非常に弱く、使用すべきではありません。

数学的には、ブロック暗号は 疑似ランダム順列 として定義されます。ブロック暗号は、長さnビットのブロックのスペースで機能します。そのようなスペースのサイズは2ですn。 2つありますn!その空間での順列(これは階乗です。つまり、可能な順列の数はhugeです)。安全なブロック暗号は、可能な順列の空間でランダムに均一に選択された順列と区別がつかないようなものです。各キーは、そのようなランダムな順列の選択に対応し、重要なことに、すべての可能なキーのすべての選択に対応することになっています。値は互いに独立しています。

これが意味することは、平凡な言葉で言えば、安全なブロック暗号の場合、最後のビットまで正確にキー全体を持っているか、何も持っていないということです。ハリウッドの描写とは異なり、「ほぼ良い」キーは「ぼやけた平文」にはなりません。キービットが1つでも間違っている場合は、ランダムなジャンク(つまり、ランダムなジャンクと十分に区別がつかない出力)を取得する必要があります。あなたが正しいキーに近いかどうかを知っています)。


もちろん、暗号化システムが弱い場合は、何でも起こります。 @Markは、(WPSでの)「分割」の事例を引用しています。これは、実際、より高速な攻撃に悪用される可能性のある凶悪な弱点です。 Oracle攻撃のパディング バイトごとのリークも処理します。これにより、プレーンテキスト(キーではありませんが、それでも)のバイトごとの再構築が可能になります。

もう1つのより技術的な例は、 古いPKZipストリーム暗号 です。ギリシャ悲劇での死の不可避性をすべて備えた「自家製」ストリーム暗号は弱いことが判明しました。ストリーム暗号は、1つずつ解明できるいくつかの内部「キー」に依存しています。暗号解読に興味のある人には、その例を研究することをお勧めします。これは、暗号解読者の考え方をよく示しており、単に操作を蓄積してもセキュリティが保証されない理由です。攻撃は実際に実行できるほど軽いです(総コストは約2です)38、適切なプログラミングを備えたPCでの計算から数時間の範囲内であり、必ずしも最適化されたアセンブリではありません)。

コンピュータ時代以前の多くの暗号システムは、オペレーターの人間の脳によって実行される必要があり、そのようなツールは大きな値を使用したり、多くの操作を実行したりするのが苦手であるため、文字ごとに解読可能でした。古典的な転置および換字式暗号(非常に大規模なファミリ)は、文字頻度分析に分類される傾向があります。これは、実際、文字ごとの区切りです。

10
Tom Leek

はい。

現在の最もよく知られている例は、厳密には文字ごとではありませんが、 Wi-Fi Protected Setup キーを2つに分割し、それらを個別に検証します。これにより、攻撃者は最初のキーをブルートフォース攻撃できます。半分そして後半(そしてそれをとても簡単にします)。

あまり知られていませんが、おそらくより損害を与える可能性があります タイミング攻撃 キー、パスワード、またはその他の秘密の検証がバイトごとに行われ、最初の不一致で失敗を返します。これにより、攻撃者はシークレットを推測するときに最初の誤ったバイトを知ることができるため、一度に1バイトずつ把握できます。

これは既知のタイプの攻撃であるため、優れた暗号システムはそれを防ぐように設計されていますが、WPSの例が示すように、適切に設計されていない暗号システムがたくさんあります。

6
Mark

差分電力解析などの特定のサイドチャネル攻撃は、主要なマテリアルを一度に1ビットずつ回復することで機能します。プロセッサを介して統計的に有意な数の暗号化要求を送信し、特定の操作が発生したことを示す可能性のある電力消費を監視します。たとえば、各ラウンドの後にキーをDESで左に回転させると、CPUがそれを実行する必要がある場合、CPUはより多くの電力を消費する可能性があります。

攻撃が進行するにつれて、回復されたビットを表示することは確かに可能です。

2
John Deters

私はこれが可能である実際のケースを知りません。弱点によって特定のビット(つまり、RC4キーストリームバイアス)について学習できる暗号システムがいくつかありますが、これらも主に理論上の弱点です。

映画やテレビ番組は、技術的に正確ではなく、平均的な視聴者を魅了することを目的とした方法でセキュリティ(および他の多くのトピック)を描写しています。たくさんのGPUが数時間から数日の間離れていくと、突然答えが返ってきます。面白くありません。同様に、げっぷプロキシを見つめていますが、面白くありません。 Visual Basicを使用してキラーのIPアドレスを追跡するGUIインターフェイス 、興味深い。

1
David