テクノロジ系

暗号化のしくみ — 秘密鍵・公開鍵・SSL/TLS

導入

ネットショッピングで住所やカード番号を入力するとき、ブラウザのアドレスバーに「鍵マーク」が表示されているのを見たことがあるでしょう。これは通信が暗号化されていることを示すサインです。暗号化の仕組みを知ると、インターネットがなぜ安全に使えるかが見えてきます。

なぜ重要か

暗号化はITパスポートのセキュリティ分野で最も出題頻度の高いテーマのひとつです。共通鍵暗号・公開鍵暗号・TLS・デジタル署名といった概念は、「仕組みの説明として正しいものはどれか」という形式で繰り返し出題されています。

実生活でも、オンラインバンキング・キャッシュレス決済・マイナンバーカードの電子証明書など、暗号化技術を使わない場面はほとんどありません。「なぜhttpsのサイトは安全なのか」「デジタル署名はどうやって本人確認をするのか」を説明できる水準まで理解しておくと、試験の得点源になるだけでなく、業務でのセキュリティ判断にも役立てることができます。

くわしく知ろう

暗号化とは、データを第三者が読めない形式に変換し、正しい鍵を持つ人だけが元のデータに戻せるようにする技術です。大きく「共通鍵暗号方式」と「公開鍵暗号方式」の2種類に分けられます。

共通鍵暗号方式は、暗号化と復号(元に戻すこと)に同じ鍵を使う方式です。処理が高速という利点がある一方、送信者と受信者が事前に同じ鍵を安全に共有する必要があり、「鍵の配送問題」と呼ばれる課題があります。インターネット経由で鍵を送ると、途中で盗まれる危険があるからです。

公開鍵暗号方式は、この問題を解決するために生まれました。受信者は「公開鍵」と「秘密鍵」のペアを作成し、公開鍵だけを誰にでも配布します。送信者は公開鍵で暗号化し、受信者だけが持つ秘密鍵でのみ復号できます。鍵を秘密裏に事前共有する必要がないため鍵の配送問題を解決できますが、処理速度は共通鍵方式より遅くなります。

HTTPSで使われるTLS(Transport Layer Security)は両方の長所を組み合わせたハイブリッド方式になっています。まず公開鍵暗号方式で共通鍵を安全に共有し、その後の通信は高速な共通鍵で暗号化するという流れです。

デジタル署名は公開鍵暗号の応用技術です。送信者が秘密鍵でデータに署名を付け、受信者が公開鍵で検証することで、送信者の本人確認と改ざんの検出を同時に行えます。なりすましや否認を防ぐための仕組みとして知られています。

具体例で理解する

たとえばオンラインバンキングでは、ブラウザとサーバーがTLS通信でハイブリッド暗号化を行っています。最初に公開鍵で「会話の鍵」を安全に交換し、以後の通信は共通鍵で高速に暗号化します。アドレスが「https://」から始まり鍵マークが表示されていれば、この保護が有効になっているサインです。電子契約サービスでは、送信者の秘密鍵によるデジタル署名が付与されており、受信者が公開鍵で検証することで「本人が署名した・改ざんされていない」ことを確認できます。

試験での出題パターン

【パターン1:共通鍵と公開鍵の特徴を問う問題】

「暗号化と復号に同じ鍵を使う方式はどれか」「鍵の配送問題を解決した暗号方式はどれか」という形式で、両者の特徴の違いを問います。「速い・同じ鍵・配送問題あり=共通鍵」「遅い・ペアの鍵・配送問題なし=公開鍵」というキーワードの対応を整理しておくと迷いなく答えられます。

【パターン2:TLSやデジタル署名の仕組みを問う問題】

「TLSが採用している暗号方式の特徴として正しいものはどれか」「デジタル署名で使用する鍵の組み合わせとして正しいものはどれか」という出題形式が見られます。TLSについては「公開鍵で鍵交換→共通鍵で通信暗号化」というハイブリッドの流れ、デジタル署名については「秘密鍵で署名→公開鍵で検証」という方向性を押さえておきましょう。暗号化とは逆向きになる点が紛らわしいポイントです。

よくある間違い・紛らわしいポイント

【公開鍵暗号の鍵の使い方の方向を逆に覚えてしまう】

「暗号化に使う鍵」と「復号に使う鍵」の向きを混同しやすい点に注意が必要です。通常の暗号化では「公開鍵で暗号化・秘密鍵で復号」という流れです。一方、デジタル署名では「秘密鍵で署名・公開鍵で検証」と逆向きになります。「送信者が秘密鍵を使う場面はデジタル署名」と覚えておくと区別しやすくなります。

【TLSとSSLの違いについての混乱】

SSL(Secure Sockets Layer)はTLSの前身となるプロトコルで、現在はTLSに置き換えられています。しかし慣習的に「SSL」「SSL/TLS」と表記されることも多く、試験でも両方の表記で出題されることがあります。「SSLの後継がTLS、現在主流はTLS」という関係を押さえておけば十分です。

【ハッシュ関数と暗号化の混同】

ハッシュ関数はデータを固定長の値(ハッシュ値)に変換するもので、元のデータには戻せません。暗号化は正しい鍵があれば元に戻せる可逆的な変換です。「一方向変換=ハッシュ、双方向変換=暗号化」という違いを理解しておくと、パスワード保存の仕組みを問う問題でも対応できます。

まとめ・試験ポイント

  • 共通鍵暗号=暗号化・復号に同じ鍵を使用。高速だが鍵の配送問題がある
  • 公開鍵暗号=公開鍵で暗号化・秘密鍵で復号。鍵配送問題を解決するが処理は低速
  • TLS=公開鍵で鍵交換→共通鍵で通信暗号化というハイブリッド方式
  • HTTPS=HTTPにTLSを組み合わせた安全な通信プロトコル(鍵マーク=TLS有効)
  • デジタル署名=秘密鍵で署名・公開鍵で検証。本人確認と改ざん検出を同時に実現
  • 試験では「共通鍵と公開鍵の違い」「TLSのハイブリッド方式の特徴」を問う問題が頻出

学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。

入門試験100問に挑戦する