クイズ大陸



履歴 検索 最新 出題

No. 3≫ No.4 ≫No. 5
?Yss 2015/11/17 15:16
少し解説を(つづきです)。

RSA暗号の計算方法は、以下の通りです。

まず、公開しないふたつの素数PとQを適当に決めます。
そこから【公開鍵】【秘密鍵】【法】のみっつの数値を作ります。

法としては、N=P×Qを使います。
これは、暗号化、復号化のときにNで割った余りを求める、
という計算を行う、という意味です。
公開鍵の一部のような感じで、Nは通信路を使って送ります。

そして、秘密鍵Dと公開鍵Eを求めます。
実は公開鍵Eは結構適当に決めてもいいんですが・・・

たとえば、本問ですと、公開鍵Eは3ですね。
実際の暗号通信でも3や65537がよく使われるようです。

D=(n(P−1)×(Q−1)+1)/E
この式で、秘密鍵を求めます。

本当は厳密に言うと、普通の割り算ではなくて、
(P−1)(Q−1)を法とした世界での計算なので、

DE=1(mod (P−1)(Q−1))
という定義式になるのですが、ぱっと見て計算しづらいですね。

先ほどの式で、小文字nに、適当に正の整数を当てはめていき、
Dが整数になるものを見つけるわけです。

暗号破りをするときは、このnについては初めから一発で求める
ことはできず、少しばかり試行錯誤する必要があります。


そして、暗号化と復号化の計算方法ですが、

平文(ひらぶん:暗号化する前の情報)のデータをA
暗号文のデータをBとすると、

B=A^E (mod N)
で暗号化します。
AをE乗して、Nで割った余りを求める。

A=B^D (mod N)
で復号化します。
BをD乗して、Nで割った余りを求める。


本問では、【公開鍵】と【法】が晒してあるわけですから、ここからPとQを推測できてしまいます。すると、秘密鍵も分かり・・・暗号解読が成功!

と、なるでしょうか(いや、なります。既に正解者出ました)。
編集