物語によると、カエサルは野戦の将軍と秘密のメッセージを交換するために、メッセンジャーの禿頭を剃り、頭皮にメッセージを書いていました.その後、彼は彼らの髪が元に戻るまで数か月待ってから、彼らを目的地に送りました.彼の信頼できる将軍だけがこのメッセージ交換方法を知っているため、彼の命令を安全に (数か月遅れではありますが) 届けることができます。
この非現実的でばかげた例は、暗号学とは何かを説明しています。暗号学は通信を保護する科学です。この用語は、ギリシャ語のクリプトス(「隠された、秘密」) とロゴス(「言葉」) から取られています。要するに「隠し言葉」です。これはサイバーセキュリティ科学の柱の 1 つにすぎませんが、重要なものです。この柱の根底には、暗号学の下位区分である暗号学と暗号解析があります。この 2 つはほぼ補完的なものと見なすことができます。暗号化が通信を盗聴者が判読できない形式に変換する手法であるのに対し、暗号解析は意図しない受信者が変換されたメッセージを解読しようとする手法です。
そして、この柱の根底にあるのは、問題の 1 つの証拠がサイバーセキュリティの崩壊を引き起こす可能性がある場所です。
では、サイバーセキュリティの神殿であるパンテオンに入り、コリント式の円柱の亀裂が見え始める場所へご案内しましょう。
メッセージを安全に保つために設計されたさまざまなアルゴリズムがあります。これらのアルゴリズムの基礎が明確になるように、これらのシステムのいくつかについて少し説明します。
暗号について何か読んだことがあれば、「シーザー暗号」と呼ばれる概念に出くわした可能性があります。これは、メッセージを保護するために使用される方法の別の例です。これは、メッセージを安全に保つためのメッセンジャーのロック (しゃれを意図したもの) を含んでいませんが、Caesar に起因するものでもあります。代わりに、この暗号は、暗号化アルゴリズムの重要な部分が基づいている重要な概念であるモジュラー演算を導入します。
分かってる。怖いですね。とてもシンプルで毎日使っていると言ったらどうしますか?ほら、あなたの時計もモジュラー演算に基づいています。 06:00 に起床しなければならない場合にどのくらいの睡眠をとれるかを計算しようとしているとき、23:00 にその締め切りを終えているので、24:00 を超えて数えてはいけません。 .結果は常に 24:00 未満になります。基本的にモジュロ 24 を計算しています。これは剰余演算であり、暗号化で広く使用されています。ただし、モジュラ演算には、単純であっても、すぐには明らかにならない多くの秘密があります。多くの暗号化アルゴリズムは、これらの秘密に依存しています。
Caesar の暗号は対称暗号です。これは、両当事者が同じ鍵を使用することを意味します。キーが 3 だとしましょう。送信者はメッセージのすべての文字を 3 ずつシフトします。これを暗号化と呼びます。受信者はキーを知っている必要があり、すべての文字を 3 ずつ戻して、元のメッセージを取得します。これを復号化と呼びます。これをハゲメッセンジャー法と比較してください。暗号化はメッセンジャーの髪をメッセージの上に伸ばすことであり、復号化はメッセンジャーの禿げを剃ることです。
では、シーザー暗号は非常に安全ですか?まあ、そうではありません。誰でも簡単に全部で 26 のさまざまなキーをすべて試して、正しいキーを見つけてメッセージを解き明かすことができます。これは、ブルート フォース アタックと呼ばれます。暗号はあまり安全ではありませんが、Caesar の禿げた使者が守らない重要な原則を守っています。ケルコフの原理は次のように述べています。
「暗号は機密性を必要とすべきではなく、敵の手に渡っても問題にならないはずです。」
つまり、鍵だけを秘密にしておくべきだという原則です。メソッドは公開することができますが、キーがなければ、メッセージは安全なままでなければなりません。
シーザーの以前は禿げていたメッセンジャーが敵に傍受され、傍受者がシーザーが使用した方法に気付いた場合、貧しいメッセンジャーはすぐに再び剃毛され、頭皮にメッセージが表示されます.しかし、Caesar の暗号では、傍受者が暗号化の方法を知っていたとしても、メッセージを明らかにするために 26 の異なる鍵を試す必要があります。
Caesar の暗号は現存する最も単純な暗号の 1 つですが、その単純さは剰余算術の側面をよく示しています。他の一般的な対称暗号システムは、DES、3DES、および AES です。それらは本質的にシーザーの暗号と同じことを行いますが、はるかに複雑で総当りが困難です.これらのシステムについて詳しく知りたい場合は、 AES Comicを読むことを強くお勧めします。
別の重要な概念を紹介しましょう。非対称暗号化 (または公開鍵暗号化)。違いは、2 つの当事者が同じ鍵を持っているのではなく、独自の公開鍵と秘密鍵を持っていることです。
RSA について詳しく説明する前に、RSA に関するちょっとしたヒントを紹介します。 RSA が Ron Rivest、Adi Shamir、および Leonard Adleman によって発明されたとき、米国の軍需品管理の一環として、アルゴリズムまたはその説明を輸出することは違法でした。 RSA は非常に強力であると考えられていたため、軍の秘密にされていました。言論の自由への抗議として、彼らはアルゴリズムが印刷された T シャツを着て大会や講演に参加しました。
RSA は、最も一般的な公開鍵暗号システムです。これは、多くの最新の暗号化が何に基づいているかを完全に示す、非常にクールなシステムです。ここでは少し技術的な話になりますが、ご了承ください。
算術の基本定理では、任意の正の数は 1 つ以上の素数の積として正確に 1 つの方法で表すことができると述べています。たとえば、数値 77 は、7 (素数) と 11 (素数) の乗算によって表すことができます。素数の順序を変更する以外に、素数で 77 を表す方法はありません。 RSA について説明するときは、このことを念頭に置いてください。
メッセージを送信する前に、セットアップを行う必要があります。たとえば、ボブがアリスにメッセージを送りたいと思っていて、イブという盗聴者がいるとします。アリスは受信者として、2 つの大きな素数を選択します。彼女はこれら 2 つの数値を乗算して、結果 m (モジュラス) を取得します。この例では、単純で小さくします。アリスは素数として 7 と 11 を選択し、モジュラス 77 が得られます。アリスはモジュラス 77 と選択した暗号化指数 e を公開します。モジュラス 77 と暗号化指数 e の組み合わせは、彼女の公開鍵と呼ばれます。
Alice の公開鍵を使用して、Bob は送信したいメッセージを暗号化できます。この場合、メッセージは数値 x です。 RSA での暗号化は、x^e mod m を取ることによって行われます。これにより、暗号文 y が生成され、これが Alice に送信されます。
ここで、Alice は素因数 7 と 11 を使っていくつかの魔法を実行できます。その結果、d と呼ばれる情報 (復号化用) が得られます。これがアリスの秘密鍵です。 Alice がしなければならないことは、y^d を取得することだけです。これにより、Bob の元のメッセージ x が得られます。
ふぅ、それはたくさんありましたが、難しい部分は終わりました!ここで、アリスだけが素因数 7 と 11 を知っていることに注意してください。これは、情報 d を取得するためにその魔法のトリックを実行できるのはアリスだけであることを意味します。しかし、あなたが鋭いなら、ここで私に反対するでしょう。 「77 が発行され、誰もがアクセスできるので、イブは 77 = 7*11 を簡単に見つけ出し、手品を使って d を取得することができます。これにより、元のメッセージ x を取得できます」.私はここであなたに同意します。次に、「30142741 の素数は何ですか」と答えます。答えを教えてくれない可能性が高いです。 2 つの素数を掛けて 30142741 を取得しただけなので、答えは簡単にわかります。これら 2 つの数を伝えれば、積が 30142741 であることを簡単に確認できます。つまり、RSAイブ (またはあなた) がこれらの 2 つの素数を見つけることができないことに依存しています。この場合、素数は 6037 と 4993 です。素因数分解がいかに難しいかがわかりますが、正しい素数を検証するのはどれほど簡単でしょうか?
それでおしまい!いよいよ柱の根元です。ひびが見えますか?おそらくそうではありません。明確にさせてください。
したがって、メッセージに適用する変換 (暗号化) は、受信者がメッセージを復号化できるようにするために、元に戻すことができる必要があります。受信者は、いくつかの追加情報を持っているため、メッセージを反転できます。一方、その情報を所有していない傍受者は、メッセージを復号化できません。たとえば、RSA では、インターセプターはモジュラスの 2 つの素因数を見つける必要があります。もちろん、77 のような小さな数の 2 つの素因数を見つけるのは簡単ですが、大きな数を選択すると、素因数分解はさらに難しくなります。乗算を行うだけなので、2 つの素数がモジュラスの因数であることを確認するのは常に比較的簡単です。
素因数分解が簡単だったり、問題を比較的早く解決できるアルゴリズムがあれば、RSA は時代遅れになります。素因数分解は解くのが難しいが、検証は簡単であることに依存しています。 2 つの問題セットを区別することができます。掛け算や二乗など、すぐに答えを見つける方法がわかっている問題があります。このセットは「クラス P」と呼ばれます。もう 1 つのクラスである「NP」は、答えをすばやく見つける方法が知られていない一連の問題ですが、何らかの情報があれば、答えを簡単に検証できます。素因数分解はこのクラスに属します。
しかし、素因数分解の問題を簡単に解く方法があるとしたらどうでしょうか?これは、素因数分解が P クラスに属することを意味します。実際、すべての NP 問題が実際には P 問題であることを証明できるかもしれません。結論は、P = NP です。
この結論は、暗号化に悲惨な結果をもたらすでしょう。これまで見てきたように、RSA は解くのが難しい素因数分解に依存しています。しかし、RSA は NP 問題に依存する多くのアルゴリズムの 1 つにすぎず、素因数分解は NP 問題の 1 つの例にすぎません。金融取引、電子メール通信などに使用される他の対称および非対称暗号は、時代遅れになります。
ビットコインは暗号化ハッシュ、具体的には SHA-256 ハッシュ アルゴリズムに依存しているため、ビットコインやその他の暗号通貨も同様に深刻な結果を被る可能性があります。新しいブロックがブロックチェーンで受け入れられるには、この新しいブロックにプルーフ オブ ワークが含まれている必要があります。つまり、ネットワーク内のどのノードでも証明を検証するのは簡単ですが、正しい数値を生成するのは非常に困難です。
一方、P = NP の証明は、他の分野にプラスの結果をもたらす可能性があります。多くの数学的問題は解決が困難なままです。それが数学に与える影響を想像してみてください!
P ≠ NP の証明は、私たちの暗号化アルゴリズムが安全であり、この記事のタイトルが単なるクリックベイトであることを意味します.しかし、少なくとも私はあなたに 100 万ドルを獲得するチャンスを提供しました!これは、クレイ数学研究所が「P 対 NP」の問題を最初に解いた人に与える報酬です。
だから、それを試してみてください!ひょっとしたら、あなたが現代の暗号を破り、私たちの毎日のコミュニケーションにハゲのメッセンジャーを使うように仕向けるかもしれません。
こちらにも掲載