数学に学ぶ!意外なものが現在の暗号の重要な部分を担っていた!
こんにちは
今回はガッツリ数学の話を書きます。
何に使っているのかわからないものが意外と重要な事ってありますよね。
よく、理解出来ないものは信じないって言う人がいますが、
もったいないと思っています。
数学は特にそういう目で見られますね。
例えば、素数というものは聞いた事ある方が多いのではないでしょうか?
今回はその素数が実は普段から重要な役割を果たしているという事を書こうと思います。
素数とは
素数は「1とその数自身でしか割り切れない自然数」の事で、
英語ではPrime Numberと言います。
※素数って数式ではpで書きますよね。それはこの頭文字なんですよ。< /p>
ちなみに、この素数に「1」が含まれるかどうかは実は昔から議論されてきているんです。
Lebesgue積分で有名なLebesgueは素数に1が含まれると主張していた数学者です。
僕自身は素因数分解の一意生が崩れるから1は素数に入らない方がいいかなと思っています。
歴史的にも1が含まれない方が主流なような気がしますね。
素数は何に使われているのか?
さて、こんな素数なんですが、
「何の役に立つんだ?」という声がよく聞こえてきます。
そんな声にお答えしましょう。
公開鍵暗号
有名な所で言うと「公開鍵暗号」というものに使われています。
この公開鍵暗号自体も知らない方もいると思うので、説明しますね。
皆さん、URLで「https://」と「http://」って見た事ありませんか?
この「s」の違いに「公開鍵暗号」が使われているのです。
SSLという通信の仕組み(プロトコルとも言われます)があり、その「s」がこのSSLの「s」です。
このSSLに使われているのが「公開鍵暗号」なんです。
※SSLには「公開鍵暗号」と「共通鍵暗号」が使われているのが一般的ですが、その辺りはもっと詳しいサイトを参照してくださいね。
この公開鍵暗号とは何かと言うと、暗号を復号する鍵が公開されているという意味です。
「え!??鍵公開しちゃダメじゃん!」と思われるかもしれませんが、大丈夫なんです。
公開鍵暗号は公開鍵と秘密鍵のペアで復号が出来るのです。
この秘密鍵をしっかりと管理しておけば公開鍵だけでは復号出来ないので問題ありません。
素数と公開鍵暗号の関係とは
長々と書いてきましたが、ここでやっと素数の登場です。
公開鍵暗号の考え方を数学的に書くと、
十分に大きい数字Nが、
N=pq(p, qは互いに異なる素数)を満たす。
この時、Nは公開鍵、pが秘密鍵、qが平文に該当します。
つまり、欲しいのはqだけど、pがわからないから2から順に素数を試していく必要がある。
しかし、Nが十分に大きい時、これはスパコンでも有限時間内に解けないんです。
その為、この暗号は「安全」とみなす事が出来るというものです。
僕は意味のないものはないと思っています。
皆さんの周りにも意味が分からない仕事や作業があると思いますが、
この素数の例のように、何かに繋がっていると思います。
以前の記事で「似ているものは関係がある」と書きましたが、
この「意味が分からない事が意外と重要」という事も自然界の原理原則なんじゃないかと思っています。