9. 法とモジュロ

それではRSA暗号の手順と、そこに潜む数のマジックを解説していきましょう。 まず、事前に必要となる簡単な数学的知識についてお話します。 数学で 「モジュロ」 とか 「」(ほう) などという言葉は聞いたことはないでしょうか。 聞いたことがなくても大丈夫です。今から解説しますし、 とても簡単なことですから。

これらの言葉は、ある数に対して 「モジュロ 10 をとる」 とか 「10を法とする世界で考える」 などと言ったりして使用します。 プログラム言語の BASIC とかを知ってる中学生だったら "mod" と言えば分かるかもしれません。また、C言語を知っている高校生だったら "%" と言えば分かるかもしれません。この意味は、全く難しいことではなくて、 例えば 「モジュロ 10 をとる」 と言ったら ある数を 10 で割り算して、その余りの方が答えとなるというだけのことです。 普通の割り算は、余りではなく 商 が答えになりますよね。 また 「10を法とする世界」 と言えば、 数が 0 から 9 までの整数しかない数学上の世界を指します。 9 の次は、また 0 に戻ってしまう世界なのです。 つまり例えば 36 を 「10を法とする世界」 で考えるなら、 10 まで行ったら 0 なので、 結局 10 で割った余りをとることとなり 6 となります。 すなわち 「10を法とする世界で考える」 とは 「モジュロ 10 をとる」 ことと同じようなことで、単に 10 で割った余りの方をとればよい、ということなのです。

このような数学の "法" の世界は、普通の実世界では捉えにくいかもしれません。 例えば、もし我々が生きているのが 10 を法とする 世界だったら 7 個のみかんと 8 個のみかんを合わせたら合計 5 個になってしまいます( 7 + 8 ( = 15 ) = 5 だから )。 年齢も10 歳になったら、また 0 歳に戻ってしまいます。 こんなことがあったら大変ですよね。 この様な世界では数の大小性が失われています。 8 歳の人と 15 ( = 5 ) 歳の人はどちらが年上なのか年下なのか、 もはや比べることはできません。 10 まで行ったら 0 になるため、数の連続性もなくなっています。

つまり、このような世界で、数の性質として残されているのは数学的に 一意な演算が行えることぐらいなのです。 この事実は、実世界では一見何の役にも立ちそうにありませんが、 暗号のようにただ数を数学的に変換したいだけの場合には実はもってこいなのです。 RSA暗号は、 この 「ある数を法とする世界」 で平文の数値を暗号文の数値へと変換します。

  • 戻る
  •  
  • 進む