まずは、単純な共通鍵:
同じ鍵で暗号化と復号化を行う。
単純です、そして問題があります、どうやって共通鍵を渡すの? もし、鍵を傍受されたら第3者にデータを見られてしまいます。
(安全性に問題があり、使われていなさそうですが、良く使われるSSH接続等は、後ほど述べる、公開鍵暗号方式を使って共通鍵を送付してから、暗号通信をしたりしています。 何故なら、単純ゆえに過負荷が軽いからです。)
公開鍵暗号方式です:
① 「受信」する人が鍵を2つ作ります
-一個は公開鍵、「公開」なので配布します、万が一傍受されてもさほど問題ありません。
-もう一個は秘密鍵、「秘密」と言うぐらいなので、受信側だけが厳重に保管しておくものです。 パスフレーズなどの設定は、この鍵を安易に使えなくするための安全値処置です。
※ペアで生成された鍵の片割れで暗号化されたものは、ペアで生成された鍵の片割れのみで復号化できる
② これから暗号化データを「送信」する人に「公開鍵」を渡します。
③ 送信者は「公開鍵」でデータを暗号化して送信します
④ 受信者は「秘密鍵」でデータを復号化します
※ポイント:公開鍵=暗号化、 秘密鍵=復号化
↑だが、署名方式の場合役割が逆転します: 公開鍵=復号化 秘密鍵=暗号化
① 「送信者」が鍵を生成、公開鍵は配布
② 次に「送信者」は、自分の書類データの「ハッシュ関数」という値を出します。 「ハッシュ関数」というのは、データそのもののバイナリ構成を表現したものです、つまり、データが編集されるとハッシュ値も代わります。
③ ④このデータ構成を表現するハッシュ値を「秘密鍵」で暗号化して送信します。
※文書データが傍受されて、改竄されても添付のハッシュ値と合致しない
※悪意のある改竄者が、ハッシュ値も変更して添付すれば? 予め送られてる公開鍵で復号化が出来ないから、今度は署名がおかしくなる
※ペアで生成された鍵の片割れで暗号化されたものは、ペアで生成された鍵の片割れのみで復号化できる
⑤ ⑥受信者は、署名のハッシュ値が実文と同一であるのを確認して、文書が正当であることを確認する
データそのものを読まれたくない目的の暗号化と、データは読まれても良いが改竄されては困る、という状況で、公開鍵暗号方式のキーペアの暗号・複合の役割が逆転することに要注意
オマケ:
銀行のふりして自分で鍵作って、口座番号送ってもらったり、
アメリカ大統領のふりして鍵作って、偽署名でメール送れない?
いわゆる成りすましです、これの対策として登場したのが証明書サーバです。
暗号通信や署名で配布されている鍵が本物である、と証明するためのものになります。
公開鍵暗号方式で公開基盤などの証明書話が絡んでくるのは、鍵の成りすまし対策です。
以下のようなエラーは、成りすまし系の可能性があるのでご注意: