共通鍵暗号・公開鍵暗号とは
更新日 : 2019年08月09日
インターネット上でのセキュリティを考える上で、共通鍵暗号と公開鍵暗号を知っておくことは重要です。
共通の鍵を用いて、暗号化・復号ともに行うことができるのが共通鍵暗号です。
外部に公開可能な公開鍵と、誰にも公開してはいけない秘密鍵を用いるのが公開鍵暗号です。公開鍵で暗号化したデータは、秘密鍵でのみ復号できます。
共通鍵暗号の解説
上の図が共通鍵暗号の仕組みとなります。
- まずは送信したい相手と自分は共通鍵を持っている前提
- 送りたいデータを共通鍵で暗号化
これは全く同じ共通鍵でしか復号(もとに戻すこと)できません。 - 暗号化したデータを相手に送信
- 受け取った相手は、共通鍵で復号
- 暗号化する前のデータに元通り!
こんな流れになります。後述する公開鍵よりも早く処理でき、同じ鍵で暗号化と復号を行うという特徴があります。まさに共通鍵です。
公開鍵暗号の解説
上の図が公開鍵暗号の仕組みとなります。
共通鍵と違い、公開鍵と秘密鍵という2つの鍵が存在します。どちらも鍵という表現ですが、イメージとしては公開鍵は、秘密鍵専用の鍵穴という感じで捉えるとわかりやすいかもしれません。
- データを送ってもらいたい相手に公開鍵を送る
公開鍵は鍵穴のイメージです。鍵穴は誰に渡しても困りません。何にせよ開けられるのは秘密鍵を持っている自分だけです。 - データを送る側は、送りたいデータを公開鍵で暗号化
公開鍵で暗号化したデータは秘密鍵でしかもとに戻せません。 - 暗号化したデータを送信
- 受け取ったデータを秘密鍵で復号
鍵穴で施錠されたデータに秘密鍵で解錠するイメージです。
このような仕組みで公開鍵暗号は成り立ちます。
公開鍵はイメージとしては施錠する南京錠本体となり、南京錠で施錠することができ、南京錠を開けることができるのは秘密鍵のみです。
この公開鍵は文字通り公開しても問題ありません。ただの施錠できる南京錠だけなので。そしてその南京錠を開ける事ができるのは秘密鍵のみなので、これは誰にも見せてはいけません。
共通鍵よりは処理は遅くなりますが、公開できる鍵があるということで、ハッカーに途中で盗まれたりしても特に問題になりません。秘密鍵で解錠する際も、暗号化済みデータを受け取って、内部で復号するだけなので安全にデータをやり取りできます。
まとめ
共通鍵暗号、公開鍵暗号ともに特徴があり、一長一短です。
最近主流になっているSSL/TLS通信では共通鍵、公開鍵どちらの暗号方式も利用して効率的な暗号通信を行うことができます。
SSHなどでも利用される技術なので当記事ぐらいの知識は持っておきましょう。
さらに掘り下げて学ぶのは数学者などの仕事です。そこまで学ぶ必要はありません。(笑)