2007年1月17日水曜日

公開鍵暗号(RSA)をわかる1

授業でいかに理解してもらうか,いろいろと模索.
理解というより,感じてもらうのが目標.

専門家になるわけじゃなし,理解したところで何の役に立つわけではない.でも
「世の中のちょっと複雑なもののしくみがわかったらうれしいよね.」

ということで,まずは modulo の説明.(modulo(法)なんて言葉は使わない)
理屈は説明しない.感じてもらうのが目標,理解は目指さない.

 0= 7=14=21=28=35=42=49=56=63=70=77=…
 1= 8=15=22=29=36=43=50=57=64=71=78=…
 2= 9=16=23=30=37=44=51=58=65=72=79=…
 3=10=17=24=31=38=45=52=59=66=73=80=…
 4=11=18=25=32=39=46=53=60=67=74=81=…
 5=12=19=26=33=40=47=54=61=68=75=82=…
 6=13=20=27=34=41=48=55=62=69=76=83=…

本当は負の数まで広がるのだが,文字コードの暗号化なので正の数だけで知らんぷりしていい.

さて,
横に = でつながっている数の加減乗は一番左の 0,1,2,3,4,5,6 の加減乗と同じ.

例,
55+24=79=2
だが,55=6,24=3 より
55+24=6+3=9=2 としていい.

55-24=31=3
だが,55-24=6-3=3 としていい.

「引き算が逆だったら?」
24-55=3-6 ここで3=10だから
=10-6=4
とにかく 0,1,2,3,4,5,6 に矛盾無く収めれることができる.

55×24 はでかいので,暗算をやる気は無いけど,この流れで,
=6×3=18=3
と実際に一致してくれるのでうれしい.

たとえば,
70020=6
14000053=1400049+4=4
を使えば,70020×14000053 など頭がクラクラする計算をすることなく,
70020×14000053 = 6×4 = 24 = 3

割り算は説明しなかった.使わないし面倒なので無視!
が,説明するとこうなる.

割り算は整数の割り算が反映するものにはならない.
普通の整数なら 17÷5=3余り2,あるいは3.4だが,これを反映することはできない.

割り算は掛け算の逆算である.
12÷3をやるとき,掛け算の九九「さんしじゅうに」と発声することからも明らか.
12÷3=4 の根拠は 12=3×4 である.

17=3 なので
 17÷5=3÷5
でもある.
 3÷5=A
とおくと,その根拠となる掛け算は
 3=5×A
となる.
これを満たす 0~6の数を調べると.
 5×1=5
 5×2=10=3
 5×3=15=1
 5×4=20=6
 5×5=25=4
 5×6=30=2
より A=2 である.つまり 3÷5=2 と「定義」する.
他の 0~6同士の割り算も,すべて乗法の逆算の形で作り出して「定義」できる.
(ここでも0で割る計算は「定義できない」)

これで加減乗除の定義された有限集合
 {0,1,2,3,4,5,6}
ができたわけだが,RSA暗号にはとりあえず不要なので,全く触れず,
「割り算は常識通りにうまくいかない」
とごまかした.
ここまで書くと,いろいろ代数系の言葉や理論が頭をめぐるが,触れるわけにはいかない.
あくまでも理解を目指すものではなく「雰囲気を感じてもらう」

つづく

0 件のコメント:

コメントを投稿

「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.