教室ブログ

2022.11.19

これであなたもスパイファミリー!? -「素数と暗号」

こんにちは、個別指導Wam藤の木校です。
 最近は漫画にアニメと塾生も大盛り上がりです。鬼滅の刃に呪術廻戦、ワンピース。
 教室長はワンピース世代なのでそれ以外は話についていくのがやっとです…笑

 さて今回は素数の話です。そもそも素数とは何でしょうか。素数とは、「1とその数自身の2つの他に約数がない自然数」のことです。
 例えば1から30までの自然数を並べたとしましょう。それぞれ約数がありますね。この約数が二つより多いのは素数ではありません。約数が二つだけ、言い換えると1とその数だけなのが素数です。だから1から30までの自然数は、
2,3,5,7,11,13,17,19,23,29
が素数となります。
ここで気になるのが、1は素数じゃないの?ということです。
 「1」が素数でないのは1を割ることが出来るのは1だけ、つまり一つしか約数がないためです。素数の条件は前述の「1とその数自身の2つの他に約数がない自然数」なので素数からは除外されると覚えておくといいでしょう。約数が「2つ」のものが素数なのですね。

 早い人はこの約数について考えることを小学生の時から学習しています。中学校受験の入試問題(過去問)では「約数が奇数個になる1から100までの自然数」という言葉が問題に出てきます。例えば、12は4×3、2×6、12×1という式で計算できます。そのため6つの約数(1と12を含む)が存在します。
約数が奇数個になるのは特定の条件を満たした時だけです。
16は条件を満たしています。16を求める式は1×16、2×8、4×4、約数は1と2と4と8と16(1と16を含む)となります。奇数個になりましたね。
2乗をして求めることが出来る数は奇数個の約数があるということです!!

話が脱線しました笑
 次に素数の特徴を大きく分けて3つ紹介します!
1つめ、素数は無限にあること。
自然数自体、ずっとおおきな数もあって無限にあります。同じく素数も無限にあります。ちなみに現在見つかっている最大の素数はといえば、2の8258万9933乗-1と表せる数です(2018年12月現在)。ちなみに2486万2048桁だそうです。とてつもない桁の数ですね。
2つめ、素数には規則がない。
素数がどんな規則で登場するかが読めないんです。規則がない、というか、あるかもしれないのですが、いまだに見つけられていないのが素数です。
3つめ、素数は見分けにくい。
自然数をパッと見たときに、素数なのかそうじゃないのか見分けがつきにくいということです。
 このような特徴を持つ素数ですが、実はこれが、暗号で使われているんです。

 暗号は古来より主に戦争で使われてきました。有名なのがシーザー暗号です。
 例えば「WAM」をアルファベット順に一つずつずらすと「XBN」になります。これでは何のことかわかりませんが、情報を受けた人が「復号」をすればわかります。復号するには暗号に使った「鍵」を逆に使えばよい。暗号ではアルファベット順に一つずつずらしたんですから、復号では反対に一つずつ戻せばよいんです。すると「WAM」に戻ります。
 シーザー暗号は、情報そのものは意味不明なものにできますが、暗号の方法、暗号に使う「鍵」がばれてしまうと復号の方法も簡単にわかります。そのため暗号を読ませたい人以外の手に鍵が渡ることはどうしても避けなければならず、それが大きな弱点でした。
 しかしある数学者は「秘密にできないならいっそ公開してしまおう」ととんでもないことを考えました。それが現在インターネットなどで基本になっている「RSA暗号」です。

何かしらの桁の大きな数を用意したときに、「素数×素数」に分解できるとしても、それがどんな素数なのかはパッと見つけることができません。反対に、元を作るのは電卓があればすぐにできる作業です。かけ算すればよいんです。だけど、逆に分解するのは誰もができることではない。ということは、素数と素数をかけて大きな元の数を作っても、第三者が素因数分解するのはとても難しいわけです。この性質を利用していているのが「RSA暗号」なのです。
1977年にアメリカのリベスト(Rivest)、シャミア(Shamir)、アドルマン(Adleman)の3名により発明されたので、アルファベットのそれぞれの頭文字を取って「RSA暗号」と名付けられました。
素数×素数の計算結果である大きな数を「公開するための鍵(公開鍵)」とし、分解した素数と素数を「自分だけが持てばよい鍵(秘密鍵)」とすれば、両方の鍵が揃わないと暗号は解読できないのですから、極めて安全ということになります。

Webサイトが「https://」から始まるURLの場合、下のような「公開鍵」がどこかしらに書いてあるはずですよ。

公開鍵の例(2048 ビット):
B4 77 1C D9 E8 1C D1 CD 08 DB 89 14 40 1E CE 3A
B1 F0 74 F0 9A E4 C9 77 AA 86 43 0B AC 5C 1A 10
96 AF EA 7A CC A0 5D DF 3A BD FC 42 D2 1C 03 02
C0 68 25 2B 65 3A 5A 96 DD B9 DB 4A DB 0D 31 A0
60 57 07 A3 E4 03 67 AD 82 78 C3 99 67 D0 52 EF
27 64 38 EE B9 AD CF 48 92 57 E7 3B 32 37 4F 47
BA F5 73 28 C1 2E 20 42 59 81 EC 3C 8B 50 36 0D
5E 92 1C 66 DF 8D 34 D3 0E BC 8E 3C 51 A7 6F BC
FE 11 D4 84 D3 08 1D 98 5C A6 A1 86 81 8E A9 42
EC E7 88 A6 D4 F5 8E 39 BD 87 09 9C 12 93 2F CF
CD 38 E7 6C BA 54 30 15 9A AB 8E 18 13 20 06 69
C3 9E 68 87 15 AD A6 72 B6 4B 81 6A 47 6C 96 B9
4B 31 E7 4A B2 F7 E0 DF 32 04 41 0C FB 81 49 15
A2 EA 6B 73 E3 41 6A 60 C7 D0 7A 93 02 9E 8A E1
BA 02 1C 69 58 33 BF 15 35 6F 60 4C F3 09 02 F9
18 D7 16 B7 E0 AF 6C D9 58 C8 76 0F 38 76 39 5D

このように、素数の特徴を生かして、日常の知らないところで、でもとても便利に使われていたんですね。
算数や数学は計算ばかりで難しいし面倒くさい、いったい何の役に立つのかと思う人も多いかと思います。でもこの素数のように、ふだん気づかないところで生活の基盤になっているんです。確かに難しいし面倒くさいですが、自分で気づかないところで役に立っていたりするので、めげずに取り組んでいきましょう。
 きっと世界をまたにかけるスパイにだってなれちゃうかもしれません!

【参考】
数学授業のネタ「素数」
https://ameblo.jp/mizoeozim/entry-12741626563.html
RSA暗号について
http://www.comm.tcu.ac.jp/~math/hnakai/infomath/rsa.html
笑わない数学「暗号理論」
https://www.nhk.jp/p/ts/Y5R676NK92/episode/te/Q7R674G67J/

この記事をシェア

すべて無料!
丁寧にサポートさせていただきます!

お急ぎの方はこちら! 電話でもお伺いいたします!

フリーダイヤル(受付時間10:00~22:00) フリーダイヤル® 0120-20-7733