非対称暗号化の定義と狙い
非対称暗号化(Public-Key Cryptography)は、役割の異なる2種類の鍵(公開鍵・秘密鍵)を使います。一般に公開鍵は共有してよく、秘密鍵は保持者だけが管理します。この仕組みにより、主に次の2つを実現しやすくなります。
1つ目は機密性です。送信側は相手の公開鍵で暗号化し、秘密鍵を持つ相手だけが復号できます。 2つ目は真正性(認証)や改ざん検知に近い働きです。秘密鍵で署名し、受信側は公開鍵で検証できます。これにより、「その内容が署名者によって作成されたか」「内容が途中で変えられていないか」を確認しやすくなります。
簡単なモデル:暗号化と署名は別物
非対称暗号化は、同じ鍵ペアでも用途が変わると考え方が変わります。
- 暗号化(機密性): 公開鍵で“ロック”し、秘密鍵で“開錠”します。
- 署名(真正性・改ざん検知の補助): 秘密鍵で“印を押し”、公開鍵で“印の検査”を行います。
ここで重要なのは、署名は「暗号化された秘密を守る」ためのものではなく、主に「誰が作ったか/途中で変わっていないか」の確認に役立つ点です。逆に、暗号化は「読めてはいけない情報を読ませない」ための手段です。
仕組みを支える要素:鍵、アルゴリズム、正当性
非対称暗号化が“安全に使えるか”は、少なくとも次の3要素に左右されます。
-
鍵の管理 秘密鍵が漏れたり、第三者が秘密鍵を推測できたりすると、機密性や署名の信頼が崩れます。公開鍵は共有されますが、秘密鍵は厳重に保護される必要があります。
-
アルゴリズムとパラメータ 同じ「非対称暗号」でも、使う方式(例:RSA、楕円曲線など)や設定によって安全性は変わります。古い方式や不適切な設定は、想定される攻撃耐性が下がる可能性があります。
-
鍵の“正当性” 受信側が「その公開鍵は本当に正しい相手のものか」を信じられることが重要です。正当性の確認が欠けると、たとえ計算としては正しい検証でも、攻撃者の公開鍵を“正しいもの”として扱ってしまう危険があります。ここは実務上の最大の分岐点になりがちです。
オンライン保護でできること/できないこと
非対称暗号化は、オンライン保護において有力な要素ですが、万能ではありません。
できること(一般論)
- 機密性: 相手の公開鍵で暗号化し、秘密鍵を持つ相手に限定して読み取らせる。
- 正当性の検証の補助: 署名を公開鍵で検証し、内容の改ざんを検出しやすくする。
できないこと(一般論)
- 端末そのものの安全は保証しない: 端末がマルウェアに感染していれば、復号後の内容や署名検証結果が悪用されることがあります。
- 鍵の正当性の“前提作り”は別途必要: ただ鍵を見せられるだけではなく、「その鍵が本物である」ことを裏付ける仕組みが要ります。
- 構成や運用の誤りは穴になる: 方式の不整合、期限切れ、誤った設定などで安全性が下がり得ます。
