コンテンツにスキップ

秘密鍵と公開鍵と共通鍵(共有鍵、対称鍵)

公開鍵・秘密鍵とは?暗号化の仕組みをわかりやすく解説| IT トレンド

〇〇鍵というのがたくさんあるが、表記揺れをまとめると大まかに 3 種類らしい。

uml diagram

鍵を使った暗号化方式別に書き直したのが以下である。表記揺れをまとめると 大まかに 2 種類らしい。

uml diagram

Note

セキュリティの分野なので間違えると大変なところだが、そこへ来て自分の理解が正しいのか不安になるくらい表記揺れがある。紛らわしいことこの上ない。

秘密鍵と公開鍵

秘密鍵と公開鍵はセットで使う。どちらか単品で使うというのはあまり聞いたことがない。

公開鍵

公開鍵は通信を暗号化するときに使う鍵。誰でも利用できる。

公開鍵を使って暗号化したものは、公開鍵を使って復号することはできない。

秘密鍵

秘密鍵は公開鍵と対になる鍵で、公開鍵で暗号化したものを復号化するときに使う鍵。

性質上、特定人物しか持たない。(サーバーとか)

公開鍵から秘密鍵を特定するのは数学的に困難らしい。

公開鍵暗号方式(非対称鍵暗号方式)

公開鍵と秘密鍵を使って通信を暗号化する方式を公開鍵暗号方式という。(非対称鍵暗号方式ともいう)

この方式による暗号化は以下の流れである。

  1. サーバーが公開鍵を公開する。
  2. クライアントがサーバーの公開鍵で通信内容を暗号化する。
  3. サーバーが暗号化された通信内容をサーバーの秘密鍵で復号化する。

公開鍵暗号方式を用いたアルゴリズムの例

  • RSA (Rivest Shamir Adleman)

共通鍵(共有鍵、対称鍵)

共通鍵を使うということは暗号化と復号化を同一の鍵で行うということである。つまりクライアントは共通鍵で通信内容を暗号化し、サーバーは同じ共通鍵で通信内容を復号化する。

処理が早いため大量のデータを暗号化する際に有利らしいが、サーバーとクライアントとで鍵を共有するため、鍵の管理には注意が必要である。

共通鍵暗号方式(秘密鍵暗号方式、対称鍵暗号方式)

共通鍵を使った暗号方式のことを共通鍵暗号方式という。(秘密鍵暗号方式とも、対称鍵暗号方式ともいう)

この方式による暗号化は以下の流れである。

  1. 事前にサーバーとクライアントとで共通鍵を共有しておく。
  2. クライアントが共通鍵で通信内容を暗号化する。
  3. サーバーが暗号化された通信内容を共通鍵で復号化する。

共通鍵暗号方式を用いたアルゴリズムの例

  • AES (Advanced Encryption Standard)