「共通鍵暗号方式」と「公開鍵暗号方式」の違いをわかりやすく解説!

インターネットでの電子決済やメールのやりとりなど、私たちの生活のさまざまな場面で「暗号技術」が使われており、安全に情報をやり取りするために、暗号は欠かせない仕組みです。その中でも特によく使われているのが、「共通鍵暗号方式」と「公開鍵暗号方式」です。

この記事では「共通鍵暗号方式」と「公開鍵暗号方式」について、以下の内容を図を用いてわかりやすく解説します。

  • 共通鍵暗号方式(AES)とは?
    • 共通鍵暗号方式の「メリット」と「デメリット」
  • 公開鍵暗号方式(RSA)とは?
    • 公開鍵暗号方式の「メリット」と「デメリット」
  • 共通鍵暗号方式と公開鍵暗号方式の違いと比較
  • ハイブリッド暗号方式とは?

共通鍵暗号方式(AES)とは?

共通鍵暗号方式(AES)とは?

共通鍵暗号方式は、送信者(暗号化する側)と受信者(復号する側)が同じ鍵(共通鍵)を使う方式です。

送信者は「共通鍵」を用いて暗号化を行います。受信者も同じ「共通鍵」を用いて復号を行います。この「暗号化と復号に同じ鍵を使う」点が共通鍵暗号方式の主な特徴です。

共通鍵暗号方式のイメージ

  • 送信者と受信者は「同じ鍵(共通鍵)で開けられる南京錠」を持っています。
  • 送信者は箱に手紙を入れて「同じ鍵(共通鍵)」でロックします。
  • 受信者は「同じ鍵(共通鍵)」で箱を開けて手紙を読みます。

共通鍵暗号方式で最もよく使われているのが「AES(Advanced Encryption Standard)」です。かつて使われていた「DES」という方式の後継として、アメリカ政府が公募して選んだ方式です。現在では、企業・政府機関など世界中で利用されています。AESには以下の種類があり、鍵が長いほど安全性は上がりますが、その分処理コストも増えます。用途に応じて使い分けられています。

  • AES-128(128ビットの鍵)
  • AES-192(192ビットの鍵)
  • AES-256(256ビットの鍵)

共通鍵暗号方式の「メリット」と「デメリット」

共通鍵暗号方式の「メリット」と「デメリット」を以下に示します。

メリット

  • 暗号化・復号の処理が高速
    • 暗号化・復号の処理がシンプルなので、処理時間が早いです。

デメリット

  • 安全に鍵を渡す必要がある
    • 鍵の受け渡し自体がリスクになるため、安全な方法で鍵を共有する手段が必要です。
  • 相手ごとに鍵が必要
    • Aさん用、Bさん用、Cさん用…と相手の数に応じて鍵を作る必要があるため、鍵の数が多数必要です。
  • 鍵が漏れると全通信が危険
    • 共通鍵が第三者に知られてしまうと、すべての通信が筒抜けになります。

共通鍵暗号方式は、暗号化と復号に同じ鍵(共通鍵)を使う方式です。そのため、共通鍵を「秘密」にしておかないと、第三者に盗み見られるリスクがあります。この「秘密にする必要がある」という特性から、共通鍵暗号方式は「秘密鍵暗号方式」とも呼ばれています。

公開鍵暗号方式(RSA)とは?

公開鍵暗号方式(RSA)とは?

公開鍵暗号方式(RSA)は共通鍵暗号方式(AES)とは違い、送信者(暗号化する側)と受信者(復号する側)で別々の鍵を使う方式です。

鍵は以下の2つで構成されます。

  • 受信者の公開鍵(Public Key):誰でも使える鍵であり、公開してOK。
  • 受信者の秘密鍵(Private Key):自分だけが持っている鍵。

まず、受信者は暗号化に使う鍵(公開鍵)を公開します。送信者は「受信者の公開鍵」を用いて暗号化を行います。受信者は「受信者の秘密鍵(自分だけが持っている鍵)」を用いて復号を行います。暗号化には公開鍵を使うので、鍵の受け渡しが不要になります。これが公開鍵暗号方式の大きな特徴です。

公開鍵暗号方式のイメージ

  • 受信者は「私専用の南京錠(公開鍵)」を公開しています。
  • 送信者は箱に手紙を入れて公開鍵でロックします(公開鍵は公開されているので、誰でもその南京錠で箱をロックできます)。
  • ロックされた箱は秘密鍵を持っている受信者だけが開けられます。

公開鍵暗号方式の代表的なアルゴリズムの一つが「RSA(Rivest-Shamir-Adleman)」です。1977年に提案され、現在も多くの電子証明書やSSL/TLS(HTTPS)などで使われています。

公開鍵暗号方式の「メリット」と「デメリット」

公開鍵暗号方式の「メリット」と「デメリット」を以下に示します。

メリット

  • 鍵の受け渡しが不要
    • 公開鍵は誰にでも配ってよいので、鍵の受け渡しが不要です。
  • 相手ごとに鍵を作らなくていい
    • どれだけ多くの相手と通信しても、1組の鍵(「受信者の公開鍵」と「受信者の秘密鍵」)でやり取りできるため、管理が楽です。
  • 安全性が高い
    • 素因数分解などの高度な数学に基づくアルゴリズムのため、解読が非常に難しいです。

デメリット

  • 処理が重い
    • 共通鍵暗号方式と比較すると、複雑な数学的処理を行うため、暗号化・復号に時間がかかります。
  • 送信者のなりすましリスクがある
    • 公開鍵を使って誰でも暗号化できるため、「誰が暗号化したのか」の認証が難しいです。

共通鍵暗号方式と公開鍵暗号方式の違いと比較

共通鍵暗号方式公開鍵暗号方式の違いを以下にまとめます。

特徴共通鍵暗号方式(AES)公開鍵暗号方式(RSA)
鍵の種類同じ鍵を使用「公開鍵」と「秘密鍵」のペアを使用
鍵の配布相手ごとに共通鍵を安全に渡す必要がある公開鍵を公開するのみ
処理速度速い遅い
安全性共通鍵が漏れると全通信が危険秘密鍵さえ守れば安全
向いている用途通信データの暗号化鍵のやり取りや電子署名など

ハイブリッド暗号方式とは?

それぞれの暗号方式には「長所と短所」があり、両者の長所を活かした方法がハイブリッド暗号方式です。

ハイブリッド暗号方式の仕組み

  1. 公開鍵暗号方式(RSA)で、共通鍵を安全に相手へ送信する
  2. 共通鍵を受け取った後は、共通鍵暗号方式(AES)で高速に通信する

つまり、「鍵の受け渡し」は安全に、「通信そのもの」は高速に行える両者の長所を活かした方式です。実際のインターネット通信(HTTPSなど)でも、このハイブリッド暗号方式が採用されています。

本記事のまとめ

この記事では「共通鍵暗号方式」と「公開鍵暗号方式」について、以下の内容を説明しました。

  • 共通鍵暗号方式(AES):処理が速く、通信に向いているが、鍵の管理が大変
  • 公開鍵暗号方式(RSA):鍵の受け渡しが不要で安全だが、処理が重い
  • ハイブリッド暗号方式:両者の長所を活かした方式。実際の通信でよく使われる

お読み頂きありがとうございました。