深層学習を使用して暗号化を解読できますか?


10

数百万の行と属性プレーンテキスト、キー、出力暗号文のデータセットがあるとします。理論的には、深層学習を使用して、暗号文の解読に役立つ出力のパターンを見つけることができますか?他の潜在的なアプローチはありますか?

回答:


10

おそらく違います。最新の暗号化システムは暗号化乱数ジェネレーターを中心に設計されており、その出力は統計的に真の乱数と区別がつかないように設計されています。機械学習は通常、データの統計パターンの発見に基づいており、真にランダムなデータではありません。小さなパターンが見つかる欠陥のある暗号の場合でも、入力の大量のランダム性は、暗号文を復号化する直接の試みをすべて圧倒します。

さらに、正しい解読に近づいているかどうかを判断するために使用できるヒューリスティックはありません-たとえば、キーを推測して1ビット出力すると、出力が完全にスクランブルされます(ハリウッドが画面に解読を表示したときに責任を負います)正しい文字が配置されるいくつかのクロスワードパズル)。そのオールオアナッシングは、暗号化キーがある場合でも、機械学習プロセスを介してアルゴリズムを検出することを除外します。最善の方法は、既知のアルゴリズムをすべて総当たりにすることです。キーがない場合は、可能なすべてのキーを総当たりにする必要があります。

乱数ジェネレータに使用されるシード値を推測することで、問題がいかに難しいかを探ることができます。Mersenne Twister RNG(Pythonなどで使用される標準的なもの)を使用すると、入力は624個の32ビット符号なし整数のビットパターンになり、出力はその系列の生成に使用されるシードの32ビットになる可能性があります。私がこれらの具体的な数値を提案する理由、実際にメルセンヌツイスターをその多くのデータで解読することが可能だからです。しかし、MLのアプローチは、そうするための完全に間違ったツールになると私はまだ思います。

もう1つの簡単な変形は、暗号化ハッシュを生成するか逆転するようにネットワークを教えることができるかどうかを確認することです。MD5などの既知の壊れたものから始めることができます。入力と出力は80ビットにすることができます。これにより、アーキテクチャとパイプラインが単純化され、このテストを数時間でまとめることができます。MD5は危険にさらされていることが知られていますが、ニューラルネットワークにパターンを見つけるように教えることができる可能性はゼロだと思います。


重要な詳細の1つ:暗号化を「解読」する場合、既知の値としてキーを使用することはできません。ただし、MLプロセスのキーを提供しても、復号化の方法を学習できない可能性があります。


2

以前の回答で示唆されているように、ML技術で暗号化を直接解除することは難しい場合があります。

しかし、MLやニューラルネットワークの手法を使用して暗号化を解く方法はいくつかあります(特に、AESは暗号化に取り組んだため、他にも使用できます)。

私は組み込みデバイスのAES暗号化に集中しています。デバイスが暗号化(または復号化)しているときは、通常、電力または電磁放射の形で情報が漏えいします。これらは「サイドチャネルリーク」と呼ばれます。調査によると、これらの漏洩は、暗号化(または復号化)中に使用されている秘密鍵に関連していることがわかっています。相関関係がある場合は、ML /ニューラルネットワーク技術を使用して、使用されている秘密鍵を取得できます。AES暗号化中に使用された秘密鍵(の一部)を取得するためにML /ニューラルネットワークを使用した以下の文書を確認してください:Ref2 Ref3

この分野の研究はまだ進行中であり、達成すべきことはまだたくさんあります。しかし、すべてが失われるわけではなく、ディープラーニングを使用して暗号化またはその一部を破る希望はまだあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.