公開鍵と秘密鍵 |
||||
● 鍵(かぎ) ● 私は仕事をしている部屋にたどりつくまでに、 ちょっとおおげさですね〜。 もちろん、開けるときの鍵と閉めるときの鍵は同じです。 でも、よ〜く考えると、開けるときと閉めるときでは そりゃ〜、そうですよね。 90度まわして鍵を閉めたのなら この逆にするってことは、さんすう・数学では
● 逆元(ぎゃくげん) ● <たし算の場合> たとえば、たし算で考えてみましょう。 3 に 7 をたすと 10 になります。 3+7+(−7) = 3 7 のたし算における 逆の数は −7 です。 7+(−7)=0 となるのがポイントです。0 は たし算において、 3+0 = 3 のように、たしてもかわらない(もとどおり)という、とくべつな数です。
<かけ算の場合> 今度は、かけ算で考えてみましょう。 3 に 7 をかけると 21 になります。 3×7×(1/7) = 3 7 のかけ算における 逆の数は 1/7 です。 7×(1/7)=1 となるのがポイントです。1 は かけ算において、 3×1 = 3 のように、かけてもかわらない(もとどおり)という、とくべつな数です。 あらっ、でもちょっとまって! 3 に 0 をかけると 0 になるけど・・・。 けっきょく、かけ算でもとにもどしたいようなときは、
● 剰余(じょうよ) ● 剰余(じょうよ)って、あまりのことでした。 <お勉強>の「剰余」で、こんな表を作りましたね。
Y
0 5 2 7 4 1 6 3
表の見方ですが、もう一度くりかえすと 37 , 37+40 , 37+40×2 , 37+40×3 , ・・・ つまり、 37 , 77 , 117 , 157 , ・・・ などでした。 まとめると、5でわると2あまり、8でわると5あまる数は
さて、これからは、このせまい表の中で考えてみることにしましょう。 さらに、たし算とかけ算のうち、今回はかけ算を考えてみます。 3 に 7 をかけると 21 になります。 だれですか。 3×7×□ を40でわったあまりが もとの 3 になるような□は何かな? っていうのです。そうすると、 7×□ を40でわったあまりが 1 になるような□は何かな? ということになってきますね。 40でわった商を○にすると 7×□ = 40×○ + 1 ですから、移項して 7×□ − 40×○ = 1 ・・・ (1) となり、またどこかで見た式だな〜って気がしますね。 そうです。ユークリッドの互除法です。 ユークリッドの互除法は、最大公約数の見つけ方でしたが、 さらには、40と互いに素でなければ、(1)のように右辺が 1 にならないので、 ですから、40=2×2×2×5 なので、2や5でわりきれる数は つまり、表でいうと、
Y
0 5 2 7 4 1 6 3
のこった数をあらためて表にしましょう。
Y 5 7 1 3
じつは、これらの数が公開鍵(になりうるもの)です。 これらの公開鍵で90度まわして(じっさいは累乗して)閉めたら、 では、引き続き、公開鍵7 のかけ算における逆の数、 7×□ − 40×○ = 1 ・・・ (1) さあ、ユークリッドの互除法でしたね。 7 と 40 の最大公約数(7,40)をもとめることが 7 , 40 , (7,40) おたがいにわり算をすると、次のように 7÷5=1 あまり 2 <== 40÷7=5 あまり 5 , (2,5)
|2| |6 −1| | 7|
さらに、おたがいにわり算をすると、次のように 2÷1=2 あまり 0 <== 5÷2=2 あまり 1 , (0,1)
|0| |5 −2| |2|
(2)(3)より
|0| |5 −2| |6 −1| | 7| 行列のかけ算をすると
|0| | 40 −7| | 7|
これから、 1 = (−17)×7 + 3×40 ・・・ (5) さて、(1)と(5)をみくらべて、さらに (−17+40)×7 + (3−7)×40=1 これで、□は23、○は4とわかりました。 つまり公開鍵7 の逆の数、つまり 秘密鍵□は 23 です。 しつこくいうと、7 と 23 は かけ算して40でわったあまりが 1 です。 ですから、3×7×23 を40でわると あまりは もとの 3 にもどります。
● 公開鍵と秘密鍵 ● さて、表で 公開鍵7 の秘密鍵は23 でしたね。 7×23 を 40 でわると あまりは 1 です。 このことを、記号で次のようにあらわします。 7×23≡1 (mod 40) 40でわったあまりの世界では、7×23 は 1 になるのです。 ちなみに、1 は かけてももとどおりになる、とくべつな数です。 もちろん、反対に公開鍵を23 にすると 秘密鍵は7 です。 23×7 を 40 でわると あまりは やっぱり 1 ですから・・・。 23×7≡1 (mod 40)
Y 5 7 1 3
<かけ算> せっかくですから、のこりも全部もとめてみましょう。 え〜っ!ユークリッドの互除法をいちいちやってみるの? ごしんぱいなく!そのために、さんすう・数学があるのですから・・・(?)
Y 5 7 1 3
まず、この表の2つの数をかけ算したら、 さて、この表は X と Y のまじわったところに 8X+5Y を計算して、40でわったあまりを書きこんで作ったものでした。 そこで、8X1+5Y1 と 8X2+5Y2 をかけてみます。 (8X1+5Y1)(8X2+5Y2)=64X1X2+40X1Y2+40Y1X2+25Y1Y2 40でわりきれる項は、40でわったあまりに関係しないってことで (8X1+5Y1)(8X2+5Y2)≡64X1X2+25Y1Y2 (mod 40) つまり、8X1+5Y1 と 8X2+5Y2 とをかけると 8×(8X1X2)+5×(5Y1Y2) ですが、ここでこの表をつくったときのように 8X1X2 を5でわったあまり、 5Y1Y2 を8でわったあまり を考えます。 8 は5でわったあまりが 3 ですから、8 を 3 でおきかえて 3X1X2 を5でわったあまり、 5Y1Y2 を8でわったあまり となります。 たとえば、 7≡4×8+3×5 , 23≡1×8+3×5 をかけると、 3×4×1 を5でわったあまり 2 , 5×3×3 を8でわったあまり 5 ということで、表で Xが2、Yが5 のところを見ると、1 です。 つまり 7×23≡1 (mod 40) です。 <逆元> では、公開鍵 8X+5Y の秘密鍵 □×8+○×5 はどうなるでしょう。 40でわったあまりの世界で、かけて 1 になるのですから 3×X×□ を5でわったあまり 2 , 5×Y×○ を8でわったあまり 5 となる、□と○をもとめます。 記号であらわすと 3×X×□≡2 (mod 5) , 5×Y×○≡5 (mod 8) となる、□と○をもとめます。このことから、 X×□≡4 (mod 5) , Y×○≡1 (mod 8) さて、それぞれの X や Y で □ や ○ をもとめましょう。 X=2,4,1,3 では、 2×2≡4 (mod 5) Y=1,3,5,7 では 1×1≡1 (mod 8)
<公開鍵と秘密鍵> これで、表の公開鍵の秘密鍵が全部わかりましたね。
表の見方は、公開鍵が17なら、その秘密鍵は33です。 でも、よく考えてみるまでもなく、 ですから、 1 11 21 31 9 19 29 39 は、けっきょく公開鍵としては使い物になりませんね。
今回は鍵のお話でした。 掲載内容の無断転載、転用、編集を禁じます。(c)
小林吹代 |