追加の質問をよく見てなかったので補足です。
ちょっとごちゃごちゃしますが、証明書についてと受け渡しについてです。
第三者認証機関(仮にベリなんちゃら)の公開鍵は証明書とともに
既にブラウザに入っている事はご存じの通りです。
A社のサーバーがSSLの要求を受けると、ベリなんちゃらの証明書を送ってきます。
その証明書にはA社の公開鍵が入っており、ベリなんちゃらの秘密鍵で暗号化されています。
それをブラウザに既に入っている、ベリなんちゃらの公開鍵で復号化します。
取り出したA社の公開鍵はベリなんちゃらが保証していますので、この公開鍵で
複合化出来るデータはA社からの物に間違いない。となります。
ポイントは、A社がベリなんちゃらに認証の申請をする際にも、
公開鍵とA社の情報を伝えるだけなので、
「まったく本当にA社以外には秘密鍵に触れていない」
という事です。
で、その公開鍵を使って、共通鍵を作るための乱数データを暗号化して
A社のサーバーに送り、A社は秘密鍵を使ってそれを複合化して、自分が
作った乱数を加えて・・・・と、共通鍵の生成に入るのですが、
実はSSLの要求の時点と、それに対して証明書を送り返す時点で、
一回限りの乱数を互いが互いに送り合っていて、
(その乱数+上の乱数データ)×アルゴリズム
でそれぞれの共通鍵をつくるようです。
(詳しく説明する自信がないのでこれくらいでご勘弁)
〆として、信頼性の問題としては一般的に
・共通鍵の信頼性は鍵の長さに比例する。
・公開鍵・秘密鍵の信頼性は数学的根拠による。
と言われています。
これでどうでしょうか。
お礼
yammaさん、御礼が遅れてしまいすみません。 こんなに熱心に教えていただいたって言うのに… 本当にお詫びいたします。 ここまで丁寧に説明がある本ってあるようでないんですよね。 繰り返し読み返して、理解を深められるよう頑張ります。 どうもありがとうございました。