Webであなたの夢が叶う!のHirokoです。
Webで数学、
RSA暗号を使ってみよう!です。
昨日に引きついて
RSA暗号(アール・エス・エー暗号)についてです。
今日は実際に暗号化・復号化を行ってみましょう!
昨日は、
素数から任意の2数を選んでかけあわせ、
その数を上限とするn進数を利用して
「べき乗」にした数表を作りました。
親愛なるNさんの誕生日3月11日から
素数:3と11を選び、
3 × 11 = 33
で33進数の利用を決めました。
33進数で使う数字は0から32までですね。
0から32までを利用した「べき乗」数表を使います。
この表を使って暗号化・復号化してみましょう。
いま、
平文の数値列を「7 13 17 24」とします。
実際に文字を暗号化する場合も文字は数値に変換して
使います。
① 受信者は
公開している鍵である
「べき乗」数表の任意の数「3」で暗号化して
メッセージを送るように送信者に伝えます。
② 送信者は
受信者が指定した公開鍵「3」で
メッセージ「7 13 17 24」を暗号化、
ここで「べき乗」数表を使います。
7は3乗すると13
13は3乗すると19
17は3乗すると29
24は3乗すると30
「13 19 29 30」と暗号化して送ります。
③ 受信者は
公開鍵「3」に対応する秘密鍵を求め、
この鍵で暗号文を復号化します。
秘密鍵を求める計算式はちょっと複雑なのですが、
S = n × 2 × 10 + 1
公開鍵「3」
nを1とおいて求めると秘密鍵は「7」になります。
では、
秘密鍵「7」で復号化してみましょう。
ここでも「べき乗」数表を使います。
13は7乗すると 7
19は7乗すると13
29は7乗すると17
30は7乗すると24
「7 13 17 24」となり、
平文に戻りました。
いかがでしたか?
暗号化ってこんな仕組みなのか・・・
とわかっていただけたかと思います。
自分でも独自の暗号手法を編み出してみると
世界中が驚くような暗号を考案することが
できるかもしれませんよ。
今日も最後まで読んでいただいてありがとうございました。

