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

前回、セキュリティの基礎(暗号化・認証・アクセス制御)を整理しました。今回は、暗号化の中でも特に出題されやすい「共通鍵暗号方式」と「公開鍵暗号方式」の違いを整理します。

目次

共通鍵暗号方式とは

共通鍵暗号方式は、データを暗号化するときと、元に戻す(復号する)ときに、同じ鍵を使う方式です。

送る側と受け取る側の両方が、同じ鍵をあらかじめ共有しておく必要があります。仕組みがシンプルで、処理も比較的速いという利点がありますが、「その鍵を、どうやって安全に相手に渡すか」という課題があります。鍵そのものが途中で盗まれてしまえば、暗号化の意味がなくなってしまうためです。

公開鍵暗号方式とは

公開鍵暗号方式は、暗号化に使う鍵と、復号に使う鍵が、別々に用意されている方式です。

「公開鍵」と「秘密鍵」という、対になった2つの鍵を使います。公開鍵は誰に渡しても構わない鍵で、秘密鍵は本人だけが持っておく鍵です。公開鍵で暗号化したデータは、対になる秘密鍵でしか復号できない、という仕組みになっています。

このため、データを送る側は、相手の公開鍵を使って暗号化するだけでよく、共通鍵暗号方式のように「鍵をどう安全に渡すか」という課題を避けることができます。

2つの方式を比較する

自分は、次のように整理して覚えるようにしています。

  • 共通鍵暗号方式:鍵は1つだけ。処理は速いが、鍵の受け渡しが課題
  • 公開鍵暗号方式:鍵は公開鍵と秘密鍵の2つ。鍵の受け渡しの課題は解決するが、処理は共通鍵暗号方式より遅い

「鍵が1つか2つか」という違いが、そのまま利点と課題の違いにつながっている、と捉えると整理しやすくなりました。

実際にはどちらも組み合わせて使われる

実際の通信では、公開鍵暗号方式で共通鍵を安全に受け渡し、その後のやり取りは処理が速い共通鍵暗号方式で行う、というように、両方の方式を組み合わせて使うことが一般的です。

以前整理したHTTPS(暗号化されたHTTP)も、こうした仕組みを使って、安全性と処理速度の両方を実現しています。

学習してみた感想

共通鍵暗号方式と公開鍵暗号方式は、名前が似ているため、最初は違いがあいまいなまま覚えてしまっていました。「鍵が1つか2つか」という一点に絞って比較したことで、それぞれの利点と課題がセットで理解できるようになりました。

次回は、科目Bに戻り、配列の多次元操作(行列計算など)を整理します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次