公開鍵暗号方式と共通鍵暗号方式の違い、言えますか?

何度か耳にしたことがある「公開鍵暗号方式」と「共通鍵暗号方式」。
IPAの基本情報技術者や処理情報セキュリティマネジメントなどの試験でも、頻出問題になっています。
でも、「公開鍵暗号方式」と「共通鍵暗号方式」って、どっちが何だっけ?
「秘密鍵」って、どっちで出てくるんだっけ?何度聞いても覚えられませんよね。
私も過去、IPAの試験を何度も受け(何度も落ち)てきましたが、毎回つまづくのがこの部分です。業務で使うこともないので、どうもピンと来ないんですよね。
そこで今回は、何度聞いても覚えられないという方のために、四コマ漫画でこの2つの違いをイメージ解説していきます。
今度こそ、覚えてしまいましょう!
共通鍵暗号方式とは
「共通鍵」と名前がついているように、暗号と複合に同じ「共通の鍵」を使用する暗号方式です。秘密鍵暗号方式とも呼ばれています。ただし「秘密鍵」が出てくるのは、公開鍵暗号方式です。ややこしや。もう秘密鍵暗号方式って呼ばんといてくれ。
共通鍵暗号方式を例えるなら、鍵が1本しかない家です。
通常、家族分の鍵を複製して、各自が使っていますよね。
鍵が1本しかないとどうなるのでしょうか。
鍵が1本しかないので、通信相手が変わる度に、鍵の受け渡しが必要です。
万が一、鍵泥棒のような悪意のある第三者に共通鍵を奪われてしまった場合は、データが複合化できてしまいます。
鍵の安全な受け渡しにリスクがあるという点が、共通鍵暗号方式のデメリットと言えます。
一方で、メリットもあります。
それは、高速で処理できるという点です。
共通鍵暗号方式の方が、公開鍵暗号方式と比べて軽い処理で済むので、
高速で暗号化や複合化ができます。
そのため、電子メールやビデオ会議、オンラインバンキングなど、
スピードが重視される場面で使われています。
代表的な共通鍵暗号方式には、AESがあります。
AESは、無線LANのWPA2でも採用されています。
公開鍵暗号方式とは
公開鍵暗号方式は、「公開鍵」と「秘密鍵」の2つを使います。
データを送りたい相手が、「公開鍵」で暗号化し、「秘密鍵」で複合化します。
例えるなら、マンションの郵便ポストです。
Aさんは公開鍵を、みんなの見える場所に置いておきます。
Bさんは、郵便ポストにデータを入れます。(➡️公開鍵で暗号化)
データ取り出せるのは、そのポストの所有者である住民Aさんだけです。(➡️秘密鍵で複合化)

公開鍵暗号方式のメリットは、鍵の配布が安全であることです。
公開鍵は広く公開できますし、受け渡し不要の秘密鍵で複合化できます。
一方、公開鍵暗号方式のデメリットとしては、複合処理などに時間がかかることです。
4コマにあるような「3時間も複合化されない。。」ということはないでしょうが、
共通鍵暗号化方式と比べると、体感で感じられる程度で、明らかに遅いです。
また、公開鍵の配布方法については、Webサイトやメール添付などでも配布できますが、
最近では「デジタル証明書」として配布することが主流になっています。
代表的な公開鍵暗号方式にはRSAがあります。
ハイブリット暗号方式
両者の良いとこどりをしているのが「ハイブリット暗号方式」です。
公開鍵暗号方式で、「共通鍵」を安全に送ります。
その共通鍵を使って、高速通信することができます。
ハイブリット暗号方式は、HTTPS(SSL/TLS)通信にも使われています。
最初の鍵交換に「公開鍵暗号方式」を利用し、その後の通信は「共通鍵暗号方式」で高速に行えます。
まとめ
方式 | 鍵の数 | スピード | 特徴 |
---|---|---|---|
共通鍵暗号方式 | 1つ | 速い | 鍵の共有が必要。処理が軽く高速 |
公開鍵暗号方式 | 2つ(公開鍵と秘密鍵) | 遅い | 鍵の配布が安全。処理は重め |
実際の通信では、これらを組み合わせた「ハイブリッド暗号方式」が使われています。
もっと詳しく知りたい場合は、他の記事や書籍も参考にしてください。