SSL/TLSの暗号化について学ぶと、共通鍵暗号方式と公開鍵暗号方式の両方が登場するため、どちらの方式を使っているのか混乱しやすい部分があります。特に高校の情報の授業では、セッション鍵方式や公開鍵方式との関係が整理しにくい分野です。この記事では、SSL/TLSがどのように暗号化を行っているのか、共通鍵と公開鍵をどのように使い分けているのかを分かりやすく解説します。
暗号化方式には大きく2種類ある
暗号化の基本的な方式には、大きく分けて「共通鍵暗号方式」と「公開鍵暗号方式」の2種類があります。
共通鍵暗号方式とは、暗号化するときと復号するときに同じ鍵を使う方式です。送信側と受信側が同じ鍵を持っている必要があります。
例えば、AさんがBさんへ秘密の文章を送る場合、Aさんが共通鍵で文章を暗号化し、Bさんが同じ共通鍵で復号します。この方式は処理速度が速いため、大量のデータ通信に向いています。
一方、公開鍵暗号方式では、「公開鍵」と「秘密鍵」という異なる2つの鍵を使用します。公開鍵は誰でも利用できますが、秘密鍵は本人だけが管理します。
SSL/TLSは共通鍵暗号方式だけではない
SSL/TLSは、共通鍵暗号方式と公開鍵暗号方式を組み合わせた仕組みです。そのため、SSL/TLSを単純に「共通鍵方式」または「公開鍵方式」と分類することはできません。
SSL/TLS通信では、最初の接続時に公開鍵暗号方式を利用して、安全に共通鍵(セッション鍵)を共有します。
その後の実際のデータ通信では、処理速度の速い共通鍵暗号方式を利用します。このように、公開鍵暗号方式は鍵交換のため、共通鍵暗号方式はデータ本体の暗号化のために使われています。
セッション鍵方式とは何か
セッション鍵方式とは、通信中だけ使用する一時的な共通鍵を使って暗号化する仕組みです。この一時的な鍵を「セッション鍵」と呼びます。
例えば、インターネット通販サイトにログインするとき、その通信専用のセッション鍵が作られ、その鍵を使ってIDやパスワード、購入情報などが暗号化されます。
セッション鍵は通信終了後に破棄されるため、長期間同じ鍵を使い続けるよりも安全性が高くなります。
SSL/TLSで公開鍵暗号方式が使われる場面
SSL/TLS通信では、最初にサーバーの公開鍵を利用して安全な鍵交換を行います。
例えば、ブラウザからWebサイトへ接続する場合、Webサイト側は公開鍵を提示します。ブラウザはその情報を利用して、通信に使うセッション鍵を安全に共有します。
ここで重要なのは、公開鍵暗号方式で大量のデータを暗号化しているわけではないという点です。公開鍵暗号方式は計算量が多く処理速度が遅いため、データ通信全体に使うと効率が悪くなります。
なぜSSL/TLSでは共通鍵を使うのか
SSL/TLSで共通鍵暗号方式が使われる最大の理由は、通信速度です。
Webページの閲覧では、画像や動画、文章など大量のデータを送受信します。これらすべてを公開鍵暗号方式で処理すると、コンピューターへの負荷が大きくなります。
そのため、SSL/TLSでは「公開鍵暗号方式で安全に鍵を渡す」「共通鍵暗号方式で高速にデータを暗号化する」という役割分担をしています。
SSL/TLSの流れを簡単に整理する
SSL/TLS通信の流れを高校情報レベルで簡単に整理すると、以下のようになります。
| 段階 | 利用する方式 | 目的 |
|---|---|---|
| 1 | 公開鍵暗号方式 | 安全にセッション鍵を共有する |
| 2 | 共通鍵暗号方式 | 実際のデータを高速に暗号化する |
つまり、SSL/TLSでは公開鍵方式と共通鍵方式の両方を利用しています。どちらか一方だけで動作しているわけではありません。
まとめ|SSL/TLSは公開鍵方式と共通鍵方式を組み合わせた暗号化技術
SSL/TLSは、セッション鍵方式の一種と考えることができますが、正確には公開鍵暗号方式と共通鍵暗号方式を組み合わせたハイブリッド暗号方式です。
通信開始時には公開鍵暗号方式を利用してセッション鍵を安全に共有し、その後のデータ通信では共通鍵暗号方式によって高速な暗号化を行います。
高校情報の試験対策では、「公開鍵暗号方式は鍵交換に使う」「共通鍵暗号方式は実際の通信データの暗号化に使う」と整理して覚えると、SSL/TLSの仕組みを理解しやすくなります。


コメント