【超簡単解説】公開鍵暗号方式と共通鍵暗号方式

2022年6月27日

想定読者

「公開鍵暗号方式」や「共通鍵暗号方式」という言葉を聞いたことはあるけどイマイチイメージが湧かない方。
技術的なことはあまり興味なく最低限の理解を必要としている方。
分かりやすさを優先しますので厳密な理解を必要としている方には向かないかも知れません。

書くこと/書かないこと

情報の秘匿やインターネット上の本人証明になくてはならない技術となっている「鍵」について説明します。

解説

どっちがいいの?

暗号方式のイメージを持っていない方がまず思う疑問の一つかも知れません。
答えは、公開鍵暗号方式と共通鍵暗号方式は有効な場面が違うのでどっちが良いと比較する関係ではありません。

ある場面では公開鍵暗号方式が必要で、別の場面では共通鍵暗号方式が必要です。

また、実際の利用シーンでは両方が併用されているケースもあります。

共通鍵の超基本理解

まずはイメージしやすい共通鍵暗号方式から説明します。

共通鍵暗号方式では、共通鍵という1種類の鍵だけが登場します。

ここでは鍵Xとしていますが、施錠も開錠も同じ鍵で行いますので、暗号に使う場合は安全な方法で鍵を当事者間で共有する必要があり、複製した鍵の一つが漏洩したらその鍵を使っているすべての情報が危険に晒されることになります。
また、鍵を持っている人は当事者の誰かという以上の特徴がないため、本人証明に利用することはできません。

公開鍵の超基本理解

公開鍵暗号方式では、秘密鍵と公開鍵という2種類の1対の鍵が登場します。

この鍵は不思議な鍵で、一方で施錠した場合は他方の鍵でしか開錠できないという特徴があります。詳細な説明は他に任せることにし、ここでは説明を省略します。

上記が公開鍵暗号のイメージです。意図的に鍵A、鍵Bとしていますが、公開鍵暗号では鍵の一つを秘密鍵として秘匿し、もう一方の鍵は公開鍵として文字通り誰でも利用できるように公開します。

共通鍵暗号とは異なり、鍵は非対称であり、公開鍵の方は不特定多数が入手可能であることが公開鍵暗号の重要なポイントです。

公開鍵暗号の主な用途は2つあります。

情報の秘匿化(暗号化)

1つ目は暗号化で、この場合は公開鍵で施錠したものを秘密鍵で開錠する関係で使います。
暗号化された情報を復号して読み取ることができるのは秘密鍵を持つ人(システム)だけという特徴を利用し、ブラウザで入力した情報を安全にサーバに届けるSSL(TLS)通信などに利用されています。
念のため補足すると、公開鍵で暗号化したものを同じ公開鍵で復号化することはできません。

共通鍵暗号でも暗号化はできますが、Webサイトに設置されたフォームのように不特定多数からの情報をサーバに安全に届ける必要があるようなケースでは、全利用者と鍵を安全に共有することは不可能であり、信頼性も検証できない相手に共通鍵を渡すこと自体もリスクですので、公開鍵暗号が利用されています。

本人証明

2つ目は本人証明で、この場合は暗号化とは逆に秘密鍵で施錠したものを公開鍵で開錠する関係で使います。
暗号化されたある情報をその人(システム)の公開鍵で開錠できたという事実は、その情報が対となる秘密鍵を持つ人(システム)によって暗号化されたことを証明することになるため、これを応用して本人証明に利用されています。

ちなみに、厳密には1対の秘密鍵だけではその秘密鍵を持つ人が誰かまでは特定することができませんが、ここに踏み込むと長くなるので別の機会にします。

まとめ

共通鍵暗号と公開鍵暗号の超基本について書きました。
アクセス数が増えてきたらまた深掘りしたいと思います。