それぞれ

逆順で書いていく。以下特にあんまり調べてない。 Wikipedia に全部載ってるから正しく/詳しく知るならそっちをどうぞ。

ダイジェストってのは、通信する時にハッシュ値みたいなのを送っておいてデータが壊れてないか確認する。たぶん改竄とかデータおかしくなった時(TCPで止まる気もするけど)対策。 SHA1MD5 の二択みたい。

本文の暗号化は共有鍵暗号でやる。共有鍵暗号っていうのは一番簡単なのは、「データは XOR 27 かけて読んで下さいねー」と取り決めしておくような暗号。 XOR かけるだけとかだと出現頻度とかで一瞬で破られるので色々工夫があるらしい。 OpenSSL だと、 AES, 3DES, DES, DES, RC4, RC2 あたりが名前として見える。 RC2 と RC4 は秘密だったけど匿名でバラした子がいて公開情報になったらしい。 DES は古いらしくて、それを改訂しようと NIST とかいうのが標準化したのが AES 。 DES を 3 回するから安全らしいのが 3DES 。よくわからんけど AES でいいんじゃね、という感想を持ちました。

このへんの AES 策定の時の話は何回見ても面白い。

http://h2np.net/bit/aes-rep.html

http://h2np.net/bit/aes2/index.html

鍵共有と認証は公開鍵暗号が必要な部分。鍵共有は共有鍵暗号の鍵を交換するのに公開鍵暗号を使う。全部公開鍵でやっても良さそうに思うけどたぶん公開鍵暗号は遅いからとかじゃないかな。認証は公開鍵暗号でデジタル署名ができるからべりさいんとかの認証局に適当に認めてもらったら身元を証明できるとかなんとか(説明になってない)。

鍵共有は RSA と DH ってのが主にあるみたいで、 RSA素因数分解とたぶん同じ感じの問題だろうと考えられてる RSA 問題っていうのの不可逆性を利用してうんたら(たぶん)。 DH ってのは Diffie-Hellman の略らしく、離散対数問題の不可逆性を利用してうんたら。違いは DH の方がわかりやすくて RSAフェルマーの小定理とかが登場して少し難しいこと。だから個人的には離散対数の方が好きです。なんか見た目が綺麗で感心した記憶があるし。だからどうした。

あと離散対数問題を実際にどう暗号に使うかってのは herumi さんが書いておられてわかりやすかった気がします。

http://homepage1.nifty.com/herumi/crypt/crypt01.html#QUIZ

認証は RSA と DSS の二択で DSS の方が離散対数の方…かと思ったんだけど DSS は当初は DSA のことだったんだけど、今は DSS = DSA + RSA + ECDSA のことらしい

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h