stray-metal’s diary

忘れっぽい自分のための備忘録

公開鍵方式と共通鍵方式の違いについて

Webエンジニアなら避けて通れないセキュリティ問題。

 

その中でも代表的な公開鍵方式と共通鍵方式。

 

HTTPSでのSSL通信のやり方として有名な方式。

違いを理解のためにさらっとまとめてみる。

 

■共通鍵方式

最初に同じ鍵を送信元(Aさん:俺)と送信先(Bさん:サーバ)で持っておくやり方。

鍵、というとわかりやすいのがこのやり方。

二人で共有するマンションの部屋の鍵を共有するイメージ。

ただ、デメリットとしてこの「共通鍵」が漏れるとなんでも出来ちゃう。

 

■公開鍵方式

そこで出てきたのが公開鍵方式。

流れとしては

1.送信先であるBさんが、Bさんしか知らない「秘密鍵」でしか開けない「箱(≒公開鍵とイメージして)」を作る。

ここで、「箱」は鍵を閉じずに開けておく。(ここ大事)

2.BさんがAさんに「箱」(まだ閉じてないよ)を渡す

3.Aさんが「箱」に人に見られたくないものをしまって、フタを閉める(ここで箱に鍵がかかる)

4.AさんがBさんに「箱」を渡す

5.Bさんが、Bさんが元々持ってた「秘密鍵」を使って「箱」を開けて中身を取り出す。

という感じ。

これでAさんの情報はBさんにしかわからなくなった。

■これを用いたSSLのやり方。

要は、共通鍵を公開鍵方式を使ってやり取りすればいいのでは?というだけ。

これだけ。

 

ここまで出てきた言葉の整理とイメージ

・共通鍵

・公開鍵

秘密鍵←これはイメージしやすい。秘密の鍵。

 

共通鍵と公開鍵が言葉が少し似てて混乱する。

共通鍵は共通でもってる鍵で、公開してはいけないもの。

公開鍵は共通でもってるんだけど、公開してよいもの、

という理解がよいかな。