next up previous
Next: 2.2 鍵を作る Up: 2 ssh Previous: 2 ssh

2.1 原理

「公開鍵暗号」を用いて通進路を暗号化するための鍵を送る。

古典的な暗号 (例えばアルファベットを定数 $ n$ 文字分ずらすというシーザー暗号) では、一つの鍵で暗号化と復号化がなされるが2、 公開鍵暗号では、公開鍵 (暗号化用、公開しても構わない) と 秘密鍵 (復号化用、秘密にしないといけない) とからなる1組の鍵を用いて 暗号通信を行う。

数学的に言うと、 暗号化する写像 $ f$ は、 復号化する写像 $ g$ と逆写像の関係にある: $ g=f^{-1}$. $ f$ を計算するための情報 (鍵) を知っていても、 $ g$ を計算するための情報 (鍵) が容易には分からない場合がある、 という事実の発見が公開鍵暗号の発端となった。

アクセスする側が1つの秘密鍵を持ち、 アクセスされる側が対応する公開鍵を持つことが必要である。 この公開鍵と秘密鍵の組は、 1台のコンピューターで計算して得られる。 実際の運用としては次のようなやり方がある。

例1. ホスト C で鍵を作る。 何らかの方法で秘密鍵をホスト A に送り、 公開鍵をホスト B に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。

しばしばホストCがホストAかホストBに一致することがある。

例2. ホスト A で鍵を作る。 何らかの方法で公開鍵をホスト B に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。

例3. ホスト B で鍵を作る。 何らかの方法で秘密鍵をホスト A に送り、適当に設定を済ませると、 ホスト A からホスト B にアクセスできる。

秘密鍵は安全のために運ばないという考え方はありうる。 その場合は、例2 のやり方を採用するのであろう。 実は私はこうするものだと信じきっていたが、 現実には例1や例3のやり方をする場合も結構あるようだ。


next up previous
Next: 2.2 鍵を作る Up: 2 ssh Previous: 2 ssh
Masashi Katsurada
平成19年9月30日