「公開鍵暗号」を用いて通進路を暗号化するための鍵を送る。
古典的な暗号
(例えばアルファベットを定数 文字分ずらすというシーザー暗号)
では、一つの鍵で暗号化と復号化がなされるが2、
公開鍵暗号では、公開鍵 (暗号化用、公開しても構わない) と
秘密鍵 (復号化用、秘密にしないといけない) とからなる1組の鍵を用いて
暗号通信を行う。
数学的に言うと、
暗号化する写像 は、
復号化する写像
と逆写像の関係にある:
.
を計算するための情報 (鍵) を知っていても、
を計算するための情報 (鍵) が容易には分からない場合がある、
という事実の発見が公開鍵暗号の発端となった。
アクセスする側が1つの秘密鍵を持ち、 アクセスされる側が対応する公開鍵を持つことが必要である。 この公開鍵と秘密鍵の組は、 1台のコンピューターで計算して得られる。 実際の運用としては次のようなやり方がある。
例1. ホスト C で鍵を作る。 何らかの方法で秘密鍵をホスト A に送り、 公開鍵をホスト B に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。
しばしばホストCがホストAかホストBに一致することがある。
例2. ホスト A で鍵を作る。 何らかの方法で公開鍵をホスト B に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。
例3. ホスト B で鍵を作る。 何らかの方法で秘密鍵をホスト A に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。
秘密鍵は安全のために運ばないという考え方はありうる。 その場合は、例2 のやり方を採用するのであろう。 実は私はこうするものだと信じきっていたが、 現実には例1や例3のやり方をする場合も結構あるようだ。