暗号化と認証|共通鍵暗号・公開鍵暗号・デジタル署名の仕組み

公開 2026年11月8日

インターネットでは、通信の途中でデータを盗み見られたり、書き換えられたり、他人になりすまされたりするおそれがあります。これを防ぐ技術が暗号化と認証です。共通テストでは、どの鍵で暗号化し、どの鍵で復号するか、鍵がいくつ必要か、デジタル署名で何が分かるか、がよく問われます。

暗号の基本

用語 意味
平文 暗号化する前の、誰でも読めるデータ
暗号文 暗号化して、第三者には読めなくしたデータ
暗号化 平文を暗号文に変換すること
復号 暗号文を平文に戻すこと
鍵 暗号化や復号に使う情報

シーザー暗号

アルファベットを決まった数だけずらす、昔からある暗号です。「3文字後ろにずらす」なら、A→D、B→E、C→F、…となります。

例: 平文 CAT → 暗号文 FDW

この場合、「3文字ずらす」が鍵です。ずらし方は25通りしかないので、すべて試せばすぐに解読されてしまいます。現代の暗号は、試すべき鍵の組合せが天文学的な数になるように作られています。

共通鍵暗号方式

**共通鍵暗号方式**は、暗号化と復号に同じ鍵を使う方式です。

必要な鍵の数

n 人が、2人ずつの組ごとに別々の共通鍵を使うとき、必要な鍵の数は

n × (n − 1) ÷ 2 個

例えば10人なら 10 × 9 ÷ 2 = 45個、100人なら4,950個と、人数が増えると急激に増えます。

公開鍵暗号方式

**公開鍵暗号方式**は、対になる2つの鍵を使う方式です。

一方の鍵で暗号化したものは、対になるもう一方の鍵でしか復号できません。

AさんがBさんに秘密のデータを送るとき

  1. Bさんは、自分の公開鍵を公開しておく
  2. Aさんは、Bさんの公開鍵で暗号化して送る
  3. Bさんは、自分(Bさん)の秘密鍵で復号する

Bさんの秘密鍵はBさんしか持っていないので、途中で盗まれてもBさん以外は読めません。受信者の公開鍵で暗号化し、受信者の秘密鍵で復号する、と覚えましょう。

必要な鍵の数

1人が公開鍵と秘密鍵を1組(2個)持てばよいので、n 人なら 2n 個です。10人なら20個です。

共通鍵暗号方式 公開鍵暗号方式
鍵 暗号化と復号に同じ鍵 公開鍵と秘密鍵の組
処理の速さ 速い 遅い
鍵の受け渡し 安全に渡す必要がある 公開鍵は公開してよい
n 人で必要な鍵の数 n(n − 1)/2 個 2n 個

ハイブリッド方式(HTTPSのしくみ)

公開鍵暗号は鍵の受け渡しが楽ですが処理が遅く、共通鍵暗号は速いですが鍵の受け渡しが難しい。そこで両方の長所を組み合わせたのがハイブリッド方式です。

  1. 送信者が、通信に使う共通鍵を作る
  2. その共通鍵を、受信者の公開鍵で暗号化して送る
  3. 受信者は、自分の秘密鍵で復号して共通鍵を受け取る
  4. 以降のデータは、共通鍵で高速に暗号化してやり取りする

Webの HTTPS(SSL/TLS)は、この方式で通信を暗号化しています。

ハッシュ関数

ハッシュ関数は、どんな長さのデータからも、決まった長さの値(ハッシュ値)を計算する関数です。

この性質を使うと、データが改ざんされていないかを確かめられます。パスワードをそのまま保存せず、ハッシュ値にして保存する用途にも使われます。

デジタル署名

デジタル署名は、公開鍵暗号を応用して、送信者が本人であることとデータが改ざんされていないことを確かめる仕組みです。

  1. 送信者は、データのハッシュ値を自分の秘密鍵で暗号化して、署名を作る
  2. データと署名を一緒に送る
  3. 受信者は、送信者の公開鍵で署名を復号し、受け取ったデータから計算したハッシュ値と比べる
  4. 一致すれば、本人が作り(なりすましでない)、途中で改ざんされていないと分かる

暗号化のときとは逆に、送信者の秘密鍵で作り、送信者の公開鍵で確かめる点に注意しましょう。

電子証明書と認証局

公開鍵が本当にその人(その会社)のものかを保証するのが電子証明書で、信頼できる第三者機関の認証局(CA)が発行します。ブラウザは、Webサイトの電子証明書を確認して、本物のサイトかどうかを判断しています。

共通テストでの出題

よくある間違い

まとめ

確認問題

問題を準備しています…

この分野が出た過去問

関連する用語