非対称暗号化とは何か
非対称暗号化(アシンメトリック暗号化)は、用途の異なる2つの鍵を組み合わせて扱う方式です。一般に「公開鍵」と「秘密鍵」があり、公開鍵は他人に共有してよい一方で、秘密鍵は持ち主だけが保持します。公開鍵でできること(暗号化や署名の検証)と、秘密鍵でできること(復号や署名の作成)が分かれるため、鍵の受け渡しや本人性の確認を設計しやすくなります。
仕組みを最小モデルで理解する
非対称暗号化の理解は、次の2系統に分けると整理しやすいです。
まず暗号化の流れです。送信者は相手の公開鍵を使って暗号文を作り、受信者は自分の秘密鍵で復号します。ここで重要なのは、「公開鍵を知っていても、秘密鍵なしでは元に戻せない」点です。これにより、通信経路そのものを覗かれても内容が読まれにくくなります。
次に署名(サイン)の流れです。送信者は自分の秘密鍵でデータに対する署名を作り、受信者は送信者の公開鍵を使って署名が正しいか検証します。署名の検証ができると、少なくとも「その秘密鍵で作られた署名に一致する」ことを確認できます。つまり、暗号化が「内容を読ませない」なら、署名は「そのデータが誰によって作られたか(少なくともその公開鍵に紐づく秘密鍵で作られたか)」を確かめる役割を持ちます。
重要な構成要素:鍵の正当性と前提条件
非対称暗号化は強力ですが、万能ではありません。現実の安全性は「鍵そのものが正しく、その相手に属していると信じられること」に強く依存します。
たとえば、相手の公開鍵だと思って入手したものが、実は攻撃者の公開鍵だった場合(鍵の取り違え)を考えると、暗号化は成立しても意図した相手とやり取りできません。署名についても同様で、公開鍵が本物であると確認できなければ、検証できたとしても「誰の秘密鍵か」を確信しにくくなります。
このため、非対称暗号化では多くの場合、公開鍵を信頼する仕組み(たとえば、証明書や信頼できる情報源に基づく検証など)が組み合わさります。ここが実務上の境界で、非対称暗号化“単体”ではなく、鍵の検証プロセス込みで設計されることが一般的です。なお、実際の実装方式は環境ごとに異なるため、細部は利用している仕組みの仕様に依存します。
暗号化と署名の使い分け
非対称暗号化は、同じ「公開鍵・秘密鍵」でも目的が異なります。
- 暗号化:機密性(第三者に内容を読ませない)に寄与します。
- 署名:完全性と本人性(改ざんされていないか、作成者を確認できるか)に寄与します。
実際の通信では、双方が組み合わされることが多いです。たとえば、暗号化で内容を守りつつ、署名(またはそれに相当する検証)で「その相手が本当に意図した主体か」を補強します。
実践的な確認方法:何を見ればよいか
「非対称暗号化が使われているか」を見分けること自体は、環境によって難易度が変わります。ただし、判断の軸はだいたい共通します。
