非対称暗号化とは何か
非対称暗号化(公開鍵暗号)は、1組の鍵を「公開鍵」と「秘密鍵」に分け、役割を分担します。一般に、データを公開鍵で暗号化しても、元に戻す(復号する)には対応する秘密鍵が必要です。逆に、秘密鍵で作った署名は、対応する公開鍵で検証できます。
これにより、オンライン通信では次のような目的を分けて扱えるようになります。
- 盗聴対策:相手が受け取るためには秘密鍵が必要になるため、第三者が内容を読みにくくなります。
- 改ざん検出:署名や整合性チェックにより、送信内容が変えられていないかを確認できます。
- なりすまし抑止:署名の検証や、正しい公開鍵につながっているかの確認が重要になります。
簡単な仕組み(暗号化・復号・署名)
非対称暗号化の要点は「誰が何をできるか」です。
暗号化(送信側):送信者は相手の公開鍵を使って、通信内容を暗号化します。 復号(受信側):受信者は自分の秘密鍵で復号し、元の内容を取り出します。
署名(送信側):送信者は自分の秘密鍵で署名を作り、受信者は公開鍵でその署名を検証します。
重要なのは、暗号化=安全、ではない点です。暗号化は「内容を読みにくくする」役割が中心ですが、相手が本当に正しい相手か、途中で内容が別物に置き換えられていないかは、署名や整合性確認の考え方が絡みます。特に「正しい相手の公開鍵かどうか」を取り違えると、狙い通りの防御が働かない可能性があります。
どこまで防げて、どこが弱点になり得るか
非対称暗号化は強力な仕組みですが、万能ではありません。安全性を左右する要素として、次の制限や例外が実務上よく問題になります。
1つ目は**鍵の真正性(信頼の置きどころ)**です。たとえば、相手の公開鍵が「本物」と確実に結び付いていない場合、攻撃者が別の公開鍵を提示できてしまう可能性があります。その結果、暗号化しても期待した相手以外が復号できたり、改ざんに気づきにくくなったりします。ここで重要になるのが、鍵(公開鍵)を正しい相手と結び付けるための仕組みです。
2つ目は運用・実装の影響です。同じ理論でも、鍵管理(秘密鍵の保護)、暗号方式の選択、設定、通信経路でのハンドシェイク手順などが適切でないと、リスクが残ります。
3つ目は性能面の制約です。一般に非対称暗号は計算コストが高くなりやすいため、実際の通信では完全に置き換えるより、状況に応じて役割を分ける設計が採られることが多いです(例:非対称は鍵の確立寄り、実データは別の方式で扱う等)。この点は環境により異なるため、どの方式が使われているかを確認する姿勢が大切です。
実践的な確認方法(安全性を見分けるポイント)
「非対称暗号化が使われているか」を意識するだけでなく、安全性の観点で確認すべき項目を絞ると判断がしやすくなります。ここでは、特定の製品に依存しない確認の考え方を示します。
