素数とインターネットの暗号(RSA暗号)

素数コラム

素数が私たちの通信を守っている

ネットショッピングでカード番号を入力したり、ウェブサイトに安全につながったりするとき、裏側では暗号が使われています。その代表的な仕組みの一つ「RSA暗号」は、素数の性質を利用しています。

かけ算は簡単、元に戻すのは難しい

61 × 53 を計算するのは、筆算ですぐにできます(答えは 3233)。では逆に、「3233 はどんな2つの素数の掛け算でできている?」と聞かれたらどうでしょう。小さい素数から順に割っていけば見つかりますが、少し時間がかかります。

この差は、数が大きくなるほど極端になります。数百桁の素数を2つ掛けるのはコンピュータなら一瞬ですが、その結果から元の2つの素数を見つける(素因数分解する)のは、今のコンピュータでは現実的な時間ではできないと考えられています。

RSA暗号のしくみ(ざっくり)

  1. 受け取る側が、とても大きな素数 p と q をこっそり用意し、掛け算した n=p×q を「公開鍵」の一部として誰にでも公開します。
  2. 送る側は、公開されている鍵を使ってメッセージを暗号にします。これは誰でもできます。
  3. 暗号を元に戻すには、p と q を知っている必要があります。n から p と q を見つけるのはとても難しいので、受け取る本人しか読めません。

「誰でも鍵をかけられるのに、開けられるのは本人だけ」という、郵便ポストのような仕組みが、素数のおかげで実現しているのです。

「ふたつ星」タイプは暗号の主役

2つの素数の掛け算でできた数を、数学では「半素数」といいます。RSA暗号の n は、まさにこの半素数です。素数占いで、誕生数が2つの素数の掛け算になる人を「ふたつ星」タイプと呼んでいますが、実はインターネットの安全を支えている数と同じ形なのです。

これからの暗号

将来、十分に大きな量子コンピュータが実用化されると、大きな数の素因数分解が速くできるようになるかもしれないと考えられています。そのため、素因数分解の難しさに頼らない新しい暗号(耐量子暗号)の研究と導入も進められています。

ほかのコラム

素数占いのしくみ/素数の日一覧

あなたの運命の素数を占う