[秘密鍵・公開鍵] 公開鍵・秘密鍵とは

共通鍵方式

情報漏えいなど不測の事態に備えるために,大切なファイルにパスワードを設定することがあります.本人しか必要のないファイルならば,とても難しいパスワードと複雑なアルゴリズムを使って暗号化することで,ファイルが他人の見られてしまう心配はほとんどなくなります.

しかし,このような暗号化したファイルでも,他人とやり取りする場合,ファイルを交換する人が同じパスワードを知っておく必要があります.

次の図を見てください.

 

太郎さんから花子さんに暗号化したファイルを渡すとします.このとき,太郎さんは,ファイルを暗号化するために「hogehoge」というパスワードを設定し,花子さんにファイルとともに「hogehoge」というパスワードを教えなくてはなりません.

このような暗号化の方法を共通鍵方式といいます.これは,郵便ポストにつけているようなダイヤル錠のようなものです。暗証番号さえ分かれば,誰でも鍵を開けることができます.

とても信頼できる二人ならばさほど問題にならないと思われますが,花子さんが次郎さんにそのパスワードをしゃべってしまったら,次郎さんも暗号化したファイルを読むことができます.次郎さんが三郎さんにパスワードを教えてしまったら・・・.

このようにパスワードが漏れると大変なことになります.それゆえ,パスワードが漏洩しないように十分注意しなければなりません.

あるいは,太郎さんと花子さんが会社員で太郎さんや花子さんが退社した状況を考えてみましょう.会社を辞めるからといって,退社する太郎さんや花子さんがパスワードを忘れるということはできません.パスワードを知っている人が一人でもパスワードを漏らしたら,もうファイルの暗号化は意味がありません.

公開鍵方式

複数人でパスワードを管理するためにはどうしたらよいでしょうか?そこで考えられたのが公開鍵を使った暗号です.

先ほどと同様に,太郎さんから花子さんへ暗号化したファイルを送ることを考えます.花子さんはあらかじめ「hemhem」というパスワードを使って秘密鍵を作成します.「hemhem」というパスフレーズは,花子さんのみが知りうる情報で,ほかの人は推測することができません.花子さんは,秘密鍵から公開鍵と呼ばれるファイルを作成し,太郎さんに渡します.太郎さんはその公開鍵を使ってファイルを暗号化し,花子さんにファイルを送ります.花子さんは「hemhem」というパスワードと秘密鍵を使ってファイルを開きます.太郎さんは,「hemhem」というパスフレーズを知ることなくファイルを暗号化することができます.

花子さんは秘密鍵とパスワードさえ大事に管理しておけば,ほかの人からパスワードが漏れるということはありません.これが公開鍵暗号の特徴です.

公開鍵が南京錠で,秘密鍵が南京錠を開ける鍵に例えることができます.南京錠で施錠してもらうのは誰でもできますが,南京錠を開錠できるのは鍵を持っている人だけです.ダイヤル錠よりも南京錠の方がよいですよね.

代表的な公開鍵方式を使ったソフトとして,PGPGnuPG があります.

ファイルの暗号や復号だけならば,GnuPG をベースとした JanusDG というソフトがあります.とても手軽に公開鍵方式の暗号を扱うことができます.