今回は、主要な暗号化技術である、共通鍵暗号方式と公開鍵暗号方式について分かりやすく解説します。
イメージが掴みやすいよう図を用いて説明するので、参考になれば幸いです。
共通鍵暗号方式と公開鍵暗号方式について分かりやすく解説
そもそも、「暗号化」とは一体何でしょうか?
暗号化とは何か?
「暗号化」とは、「特定のデータを用いて、解読ができない形式にデータを変換すること」です。
そして、このときに用いるデータのことを「鍵」と呼びます。
この「鍵」の種類によっていくつか暗号化の方式があり、その中の一例が、今回紹介する「共通鍵暗号方式」および「公開鍵暗号方式」です。
まずは「共通鍵暗号方式」から解説します。
共通鍵暗号方式とは何か?
共通鍵暗号化方式とは、「データを送る側(暗号化する側)とデータを受け取る側(復号する側)が同じ鍵を用いる暗号化の方式」です。「秘密鍵暗号方式」と呼ばれることもあります。
この方式には、以下のメリットがあります。
- 鍵を知っている人以外は解読できないので安全
- 暗号化・復号化の速度が速い
しかし、以下のデメリットもあります。
- 送る側もしくは受け取る側が変われば、毎回鍵を生成する必要がある
- インターネット上で秘密鍵をやり取りする際に鍵が漏洩する可能性がある
特に「秘密鍵のやり取りをいかに安全に行うか」は大きな課題と言えます。
そこで登場するのが、次に解説する「公開鍵暗号方式」です。
公開鍵暗号方式とは何か?
公開鍵暗号方式とは、「データを送る側(暗号化する側)とデータを受け取る側(復号する側)が別々の鍵を用いる暗号化の方式」です。
公開鍵暗号方式による処理の流れは以下のようになっています。
- 公開鍵と秘密鍵のペアを作成する
- 公開鍵をインターネット上に公開する
- 公開鍵を用いてデータを暗号化して受信者に送信する
- 受信者は秘密鍵を用いてデータを復号する
1. 公開鍵と秘密鍵のペアを作成する
まずは、受信者が公開鍵と秘密鍵のペアを作成します。
2. 公開鍵をインターネット上に公開する
作成した鍵について、公開鍵はインターネット上に公開します。
「鍵をネット上にバラまいて大丈夫なの?」と思うかもしれませんが、問題ありません。
なぜなら、「公開鍵で暗号化したデータは秘密鍵でしか復号できない」からです。
公開鍵が悪い人に渡ったところで、公開鍵で暗号化したデータの中身は公開鍵では解読できないので、安全性は担保できます。
3. 公開鍵を用いてデータを暗号化して受信者に送信する
受信者にデータを送信したい場合は、公開鍵を用いてデータを暗号化した上でデータを送信します。
4. 受信者は秘密鍵を用いてデータを復号する
受信者は、自身の秘密鍵を用いてデータを復号します。
公開鍵暗号方式の主なメリットは以下の二つです。
- 送信者、受信者ごとに鍵を作成する必要がない
- 秘密鍵をインターネット上でやり取りしないので安全
上記のメリットは、共通鍵暗号方式のデメリットを補填しています。
しかし、公開鍵暗号方式には以下のデメリットがあります。
共通鍵暗号方式と比べて暗号化・復号化に時間がかかる
公開鍵暗号方式は、共通鍵暗号方式のおよそ1000倍の時間がかかると言われています。
そのため、必ずしもより安全な公開鍵暗号を用いる訳ではなく、状況によって共通鍵暗号方式と公開鍵暗号方式を使い分けるのが一般的です。
共通鍵暗号方式と公開鍵暗号方式まとめ
最後に共通鍵暗号方式と公開鍵暗号方式についてまとめて終わります。
- 共通鍵暗号方式:データを送る側(暗号化する側)とデータを受け取る側(復号する側)が同じ鍵を用いる暗号化の方式
- 公開鍵暗号方式:データを送る側(暗号化する側)とデータを受け取る側(復号する側)が別々の鍵を用いる暗号化の方式
一番のポイントは、「暗号化に用いる鍵が、送信者と受信者で異なるか否か」です。
この点だけはしっかりと押さえておきましょう。