【図解】公開鍵?共通鍵?証明書?セキュア通信の基礎

IT技術
この記事でわかること
  • 共通鍵、秘密鍵、公開鍵の仕組みがわかる
  • デジタル署名、デジタル証明書の仕組みがわかる

暗号化が必要な理由

インターネットなどの誰でもアクセス可能なネットワークにおいては、データを見られてしまう可能性があります。

見られてはいけないデータってありますよね?
例えば、クレジットカードの暗証番号、SNSのログイン情報などです。

このようなデータの盗聴や改ざんがされないように暗号化が必要です。
※暗号化とは平文を解読不能な文字列にすること

暗号化方式には複数の種類があり、それぞれ特徴があります。

共通鍵暗号方式

1つ目は共通鍵暗号方式です。
名前の通り、データを送る側と受け取る側が同じ鍵を使って暗号、復号を行う方式です。

共通鍵暗号方式で使用する暗号化アルゴリズムは”RC4”、”DES”、”3DES”、”AES”などありますが、現在主流で使われているのは”AES”です。

共通鍵暗号方式の特徴は次の通りです。

共通鍵暗号方式の特徴
  • 処理速度が速い
  • 鍵の管理が難しい(通信する相手ごとに鍵を用意する必要がある)
  • 解読されやすい(鍵が流出すると復号できるため)

共通鍵は通信する相手ごとに鍵を用意します。鍵を使いまわしたら解読されてしまうからです。
そのため必然的に鍵の数が多くなってしまい、管理が難しくなります。

また、鍵が流出すると第3者に解読されてしまうため鍵の交換を確実に安全に行わないといけません。
(お互いが同じ鍵を持つため)

このように共通鍵暗号方式はデメリットが多いため、次に紹介する公開鍵暗号方式が普及しました。

公開鍵暗号方式

公開鍵暗号化方式は暗号化する鍵(公開鍵)と復号化する鍵(秘密鍵)を別にし、暗号化する鍵を公開した暗号化方式です。

秘密鍵、公開鍵を詳しく説明すると次の通りになります。

  • 公開鍵:データを送る側が持つ鍵。暗号化に使われる
  • 秘密鍵:データを受け取る側が持つ鍵。復号に使われる

これにより、共通鍵暗号化方式のデメリット(鍵の管理が難しい、解読されやすい)を解消できます。

公開鍵暗号化方式は1セットの公開鍵と秘密鍵を用意すれば全ての通信に対応できます。
また、秘密鍵はデータを受け取る側だけが持っていればよく、外部に漏れる心配がないからです。

ここまで2種類の暗号化方式を解説しました。
これらの仕組みを基礎とした技術がたくさんあるため、色々説明していきます。

※この方法だと一方通行しかデータの送受信できなくない?と自分は最初思いました
たぶん同じ疑問を持っている人も多いと思います。
双方向の通信を暗号化したい場合は、公開鍵暗号方式を使用した別の技術(プロトコル)があります。
あくまでも公開鍵暗号方式は技術の1つのため、通信プロトコルとは別の話となります。

デジタル署名、デジタル証明書とは?

次によく聞くデジタル署名やデジタル証明書について解説します。

デジタル署名

デジタル署名はデータの送信者が本当にその人かどうかを証明し、送られてきたデータが改ざんされていないか証明することができる技術です。

デジタル署名は公開鍵暗号方式の技術を基に行われており、秘密鍵は送信側(署名者)が、公開鍵は受信側が持っています(これが公開鍵暗号方式の説明と逆になるためまぎらわしい)

上図のフローでデータが改ざんされていないか確認することができ、暗号化したハッシュ値を署名と言います。

デジタル証明書

上記のデジタル署名の説明で、デジタル署名によってデータが改ざんされていないか判別できると説明しました。
方法としてはハッシュ値と暗号化したハッシュ値を比較する方法をとりますが、受け取り側は暗号化されたハッシュ値を公開鍵を使って復号しなくてはいけません。

ここで、この公開鍵って本当に正しいの?って疑問が生じます。
公開鍵なので誰でも公開でき、なりすましによって嘘の公開鍵を配布することも可能です。

ここでデジタル証明書が活躍します。
デジタル証明書はデジタル署名の公開鍵が正しいかを証明するもので、デジタル署名にデジタル証明書を付随させることで正しい公開鍵で復号することができます。

デジタル証明書についてはより詳しく解説した以下の記事をご覧ください。

【図解】初心者のためのデジタル証明書
デジタル証明書の図解解説:初心者向けにわかりやすく、安全な通信に必要なデジタル証明書の基礎を図を使って解説します。デジタル署名や公開鍵暗号方式にも絡めて解説。

まとめ

今回は暗号化方式として共通鍵暗号方式、公開鍵暗号方式について解説しました。

共通鍵暗号方式はデメリットが多く(鍵の管理が難しい、解読されやすい)、この点を改善した公開鍵暗号方式が広く普及しています。

また、データの改ざんを検知するデジタル署名、公開鍵が正しいかどうかを証明するデジタル証明書についても解説しました。

その他、SSL/TLSの仕組みなども別記事で解説したいと思います。

タイトルとURLをコピーしました