共通鍵暗号方式と公開鍵暗号方式
はじめに
今回はセキュリティの話です。データを通信でやりとりする際、漏洩を避けるため、データを暗号化して受け渡しされることがあります。その暗号化技術に共通鍵暗号方式と公開鍵暗号方式があります。これら両方の暗号方式ついて書いていきます。
共通鍵暗号方式
共通鍵暗号方式は、名前の通り共通の鍵を使って暗号化する方法です。下のようなイメージです。
BさんがAさんにデータを渡す例
- Aさんは鍵aを作り、Bさんに渡す(鍵aを共有する)
- Bさんはデータを暗号化して鍵aでロックする
- BさんはデータをAさんに渡す
- Aさんは鍵aを使ってデータのロックを解除して復号する
公開鍵暗号方式
公開鍵暗号方式は、公開鍵と秘密鍵というペアの鍵を用意して、公開鍵を使って暗号化し秘密鍵を使って復号する方法です。共通鍵暗号方式よりもなんだかややこしいです。南京錠のようなもので公開鍵が「鍵穴」で秘密鍵が「その鍵」だと考えるとわかりやすいと思います。共通鍵暗号方式と同じく、下に例を書きました。
BさんがAさんにデータを渡す例
どちらが安全か?
共通鍵暗号方式の場合、鍵が盗まれてデータが漏洩するリスクがあります。鍵を共有するためには、まず初めに一方が他方に鍵を渡す必要があり(上の例だとAさんがBさんに渡していました)、この時に盗まれる可能性があります。鍵が盗まれると暗号化されたデータが復号されてしまいます。
公開鍵暗号方式でも、公開鍵を渡す時に盗まれるリスクがあります。しかし公開鍵は盗まれても問題はないです。公開鍵は暗号化することはできますが、復号することができないからです。復号するためには秘密鍵が必要であり、秘密鍵は受け渡ししないので盗まれる心配はありません。
ですので公開鍵暗号方式のほうが安全性が高いと言われています。
まとめ
共通鍵暗号方式は、共通の鍵を使って暗号化する方法。
公開鍵暗号方式は、公開鍵を使って暗号化し、秘密鍵を使って復号する方法。こちらのほうが安全性が高い。