暗号化アルゴリズムのセキュリティは、大きな数の素因数分解にどのように依存していますか?
欠落しているフレーズは「公開鍵」です。「公開鍵暗号化アルゴリズムのセキュリティはどうなっていますか...」
現代の暗号化には、対称 (秘密鍵) と公開鍵 (公開鍵と秘密鍵のペアを使用する) という 2 つの主要な暗号のカテゴリがあります。
各カテゴリ内で、鍵のサイズが比較的近いことがわかります。OpenPGP 電子メール暗号化で使用される RSA や DH/DSA などの公開鍵システムの場合、最近 (2010 年初頭) の一般的な鍵サイズは 1024 ビット以上です。これは、メッセージの暗号化と復号化に使用される適切なキーの数学的要件に関係しています。RSA の場合、要するに、2 つのランダムな大きな素数の因数を生成して乗算する方が、小さい因数を持たない非常に大きな数の因数分解に比べてはるかに簡単です。あなたが発見したように、非常に大きな数の因数分解は、ブルートフォースによってRSAを破るために必要な「問題」またはアプローチです。
Diffie-Hellman / Digital Signature Algorithm (DH/DSA) は、離散対数を計算する別の数学的問題に基づいています。
公開鍵と秘密鍵のペアの特性により、検索空間は大きな素数の因数に制限され、信じられないほどまばらになります。そのため、単純に非常に大きな数をすべて素因数分解しようとするよりも、はるかにインテリジェントにしようとするのが理にかなっています。
一方、AES、RC6、RC4、Twofish、DES、Triple-DES などの対称暗号では、これらのアルゴリズムは特定のビット長のランダム キーを使用します。任意の重要な (つまり、0x000...000 は不適切なキーの選択である可能性があります) ランダム キーが適しています。したがって、これらのシステムでは、アルゴリズム自体に対する攻撃がない場合、キー スペースをブルート フォースで検索するだけで (つまり、可能な 2^256 個のキーをすべて試す)、秘密キーなしでメッセージを復号化できます。どんなキーでもよいので、キーの密度は 2^256 です。
私は量子コンピューティング (理論的および実用的) を無視しています。主な理由は、a) 確固たる答えを出すことができない、および b) 計算の複雑さの多くの応用数学とコンピューター サイエンスをひっくり返す可能性のある大きなパラダイム シフトを表しているためです。その基本的な理解はまだ動く目標です。ああ、私の敵のほとんどはまだ量子コンピューターを持っていません。:)
これで、RSA と AES などの 2 種類の暗号システムの一般的な違いが説明されることを願っています。
Sidebar: Cryptography is a rich and complex topic, where the basics may be simple enough to understand, and even write a naive ("textbook") implementation, the complex subtleties of a secure implementation makes it best for programmers who are not cryptography experts to use high level crypto-systems including using well-known standard protocols to improve your chances that the cryptography of a system is not the exploitable flaw in a system.