P2P型の完全匿名掲示板はまだ出来ないの?その2

このエントリーをはてなブックマークに追加
257 ◆QZaw55cn4c
>>239
RSA の実装は、http://www.amazon.co.jp/dp/4627847610/ を参照している。
この本では、Java のBigInteger のみを使い、剰余演算も組み込み関数を使わずに記述している。
余談だがこの本は章によってあたりはずれが激しすぎる。

>1.Bは秘密鍵・共通鍵を生成する(この時点で、このどちらの鍵もAは知らない)
鍵の元 p, q; p, q とも素数を生成。秘密鍵eと公開鍵dを生成。このとき、ed≡1(mod L), L = lcm(p - 1, q - 1)となるように e, d を設定する。

>2.BはAに公開鍵を送る(この時点でAはBが生成した公開鍵のみを知る)
公開鍵=(pq, e)

>3.Aは共通鍵を生成する(この時点で、この鍵をBは知らない)
???????なんですか?共通鍵って?

>4.Aは生成した共通鍵を使ってファイルを暗号化する
オリジナルのメッセージを M, 暗号化されたメッセージを C としたとき、
C = M^e mod pq
A は e も pq も知っている。が、d はしらない。

>5.AはBから受け取った公開鍵を使って3で生成した共通鍵を暗号化する
>6.Aは暗号化されたファイルデータと暗号化された共通鍵をBに送る
???????なんですか?共通鍵って?M だけ送ればいいんでない?

>7.Bは受け取った暗号化された共通鍵を秘密鍵を使って復号する(この時点で、Bは共通鍵をGET)
M = C^d mod pq

・表に表れる数は、pq, e, C
C から M を求めるには、d を知らなければならない。
d を知るためには、L = lcm(p - 1, q - 1) をしらなければならない。
L を知るためには、p, q を知らなければならない。しかし、pq から p, q を知るのは困難。

共通鍵がよくわからないのですけれども、p, q, e, d, L, を使って表現するとどんな数になる?あと、共通鍵の暗号化とは何?