Link

リンク

サルにも分かるRSA暗号

法とモジュロ

それでは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暗号は、この「ある数を法とする世界」で平文の数値を暗号文の数値に変換するのです。

戻る
進む
ページ上部へ