非対称暗号化とは何ですか?

暗号化にはさまざまな部分がたくさんあります。 ただし、一部のデータを暗号化する場合は、対称暗号化アルゴリズムと非対称暗号化アルゴリズムの 2 種類のアルゴリズムを使用できます。 概念は同じです。データを暗号化できますが、異なる原理で動作し、他の使用例もあります。

ただし、タイトルの違いは暗号化キーを表しています。 対称暗号化アルゴリズムは、単一の共有キーを使用してデータの暗号化と復号化を行います。 非対称暗号化アルゴリズムでは、2 つのリンクされたキーを使用し、1 つは復号化用、もう 1 つは復号化用に使用されます。

用語

非対称暗号化アルゴリズムは、2 つの異なるキーの使用に依存します。 1 つのキーをデータの暗号化に使用し、もう 1 つのキーを復号化に使用できます。 2 つの暗号化キーは、単なる古い 2 つの値ではありません。 これらは本質的に関連しており、キー生成アルゴリズムによって生成する必要があります。

非対称暗号化の別名は、公開キー暗号化です。 これは、2 つのキーのうち 1 つが公開されるように意図されているためです。 従来の概念では、暗号化キーは公的に共有され、復号化キーは厳密に秘密に保たれます。 このため、暗号化キーは公開キー、復号化キーは秘密キーと呼ばれます。

この構成では、誰でもメッセージを暗号化できるため、秘密キーの所有者だけがメッセージを復号化できます。 これは、単一の公開された暗号化キーを使用して誰でも目的の受信者と安全に通信できるため便利です。 安全に通信するには、受信者は元の送信者の公開キーを使用する必要があります。

理論的には、暗号化キーを非公開に保ちながら、キーを交換して復号化キーを共有できない理由はありません。 これは、意味のあるセキュリティを提供しない場合、ソースの信頼性を検証するために使用できます。 ただし、同じ結果を達成するための他のメカニズムが存在するため、これは実際には行われません。

対称暗号化アルゴリズムのプロパティ

非対称暗号化アルゴリズムでは、同じレベルのセキュリティを提供する場合、対称暗号化アルゴリズムよりもはるかに大きなキーを使用する必要があります。 一般に、128 ビットの暗号化キーを使用した対称暗号化アルゴリズムは安全であると考えられていますが、256 ビットのキーが推奨されます。 非対称暗号化アルゴリズムでは、2048 ビットのキーは安全とみなされます。

2048 ビット キーの例は、長い間非対称暗号化の標準であった RSA に適用されます。 ただし、楕円曲線暗号は新しい概念であり、これも非対称ですが、使用する鍵が大幅に小さくなります。 2048 ビット RSA キーは、224 ビット楕円曲線キーと同等のセキュリティを提供します。

ヒント: 上記の値は商用利用には安全であると考えられていますが、NSA は極秘暗号化のためにより強力なキーを必要としています。 少なくとも 3072 ビットの RSA キーが必要ですが、384 ビットの楕円曲線キーが必要です。 3072 ビットの RSA キーは 384 ビットの楕円曲線キーよりも弱いことに注意してください。

非対称暗号化アルゴリズムは、対称暗号化アルゴリズムと比較して比較的低速になる傾向があります。 双方が非対称キーのペアを生成し、公開キーを交換する場合、安全でないチャネル上で安全な通信を実行できます。 このようにして、双方は、相手だけが復号化できるメッセージを送信できます。

実際には、少なくとも一方の当事者が公開鍵の整合性を検証する必要があります。 これは、PKI または公開キー インフラストラクチャを通じて行われます。 これは、他の人の鍵に署名して、その身元が確認されたことを示す認証局の形式をとります。 このシステムでは、すべての認証局が信頼される必要があります。 それがなければシステムは崩壊してしまいます。

実際に使用する

非対称暗号化アルゴリズムは、通常、特に時間やパフォーマンスが問題となる場合には、一括暗号化には使用されません。 これらは、電子メールの内容などのワンタイム メッセージを暗号化するために使用される場合があります。 ただし、安全でないチャネルを保護できるため、より効率的な一括暗号化に使用できる対称鍵を送信する鍵交換プロトコルとしては優れた選択肢となります。

これは、HTTPS でセキュリティを提供する TLS の使用例です。 ユーザーは Web サーバーに接続します。 次に、公開鍵を交換して、小さなメッセージを相互に暗号化します。 次に、サーバーは対称キーを生成し、ユーザーの公開キーで暗号化してユーザーに送信します。 ユーザーはキーを復号化し、対称キーを使用してサーバーへの今後の通信を効率的に暗号化できます。

上記のプロセスで認証局はサーバーの公開キーを検証します。 これにより、ユーザーは、通信しようとしている相手と通信していることを確信できます。 ほとんどの場合、サーバーは通信しているユーザーを確認する必要がないため、ユーザーは使い捨てキーを生成します。

結論

非対称暗号化アルゴリズムは 2 つの異なるキーを利用します。 1 つのキーは暗号化に使用され、もう 1 つは復号化に使用されます。 キーは数学的にリンクされており、キー生成アルゴリズムによって生成する必要があります。 ランダムな値は機能しません。 通常、暗号化キーは公開で共有されるため、誰でもキー ペアの所有者宛てのメッセージを暗号化できます。

復号化キーが非公開である限り、キーの所有者だけが公開キーで暗号化されたメッセージを復号化できます。 そのため、非対称暗号化は公開キー暗号化とも呼ばれることがあります。