PKIってなに?
PKIとはPublic Key Infrastructureの略で、公開鍵暗号方式という暗号技術を使用した公開鍵を交換するための基板です。
公開鍵暗号方式は、暗号化と複号化で異なる2つの鍵を使用します。
片方の鍵で暗号化したものは、対となるもう一方の鍵でなければ復号化できません。この対となる鍵を「公開鍵」と「秘密鍵」といいます。
秘密鍵は、自分(例えばWebサーバ)だけが知る鍵で、公開鍵は誰でも知ることができる(公開している)鍵です。
例えば、まずBさんはAさんの公開鍵を入手します。
Bさんは、その鍵を使って文章を暗号化してAさんに送付します。
Aさんは、対となる秘密鍵を持っているのでBさんの送付した暗号文を復号化します。
秘密鍵を持っていないほかの人は、暗号文を複合化できません。(公開鍵方式ではRSAが有名です。)
電子署名ってなに?
公開鍵方式では、秘密鍵で暗号化したものを公開鍵で復号化することもできます。
電子署名では、Aさんが秘密鍵で文章を暗号化したものをBさんへ送付するとき、暗号化した文章と暗号化前の平文を一緒にBさんへ送ります。
Bさんは、暗号化された文章を対となる公開鍵で複合化します。
Bさんは、複合化した文章と平文の文章を比較してAさんから送付されたことを確認します。
これで、BさんはAさんが暗号化した文章に間違いないことを確認できます。
実際には、この比較はハッシュ値を使って行われます。
Aさんは平文のハッシュ値を秘密鍵で暗号化し(電子署名)平文と電子署名をBさんに送付します。
Bさんは、電子署名をAさんの公開鍵で復号化します。
Bさんは、Aさんと同じアルゴリズムで平文からハッシュ値を作成します。
それぞれのハッシュ値を比較してAさんの文章であることを確認します。
(SSLでは、公開鍵暗号方式で共通鍵の受け渡しをして実際のデータのやり取りは共通鍵方式で行うような工夫をしています。)
証明書ってなに?
公開鍵は、誰が入手してもよく、どんな方法で相手に渡してもかまいません。公開鍵を受け取った人は、公開鍵をもらっただけでは公開鍵の持ち主を確認できません。(対になる秘密鍵の持ち主が確認できない)
そこで、「電子証明書」という形で本人の情報や公開鍵この証明書を認証した認証局をセットにします。
証明書を入手した人は、信頼できる認証局が発行したことが確認できれば、この証明書は信頼できるということになります。
この証明書が、信頼できれば公開鍵も信頼できるということになります。