こんにちは、みっちゃんです。

以前の記事で、暗号化技術である「共通鍵暗号方式」「公開鍵暗号方式」について紹介しました。

今回の記事では、暗号化の際にやっていることを、中学校で習う「因数分解」を使って解説したいと思います。

目次(まとめ)
- 因数分解は、古典コンピュータが苦手にする問題の1つ
- 暗号化のアイデアは因数分解から生まれた
- 因数分解は、量子コンピュータが得意にする問題の1つ
- 参考文献

因数分解は、古典コンピュータが苦手にする問題の1つ

古典コンピュータとは、現在主流のコンピュータである、古典力学に従うノイマン型コンピュータのことです。

古典コンピュータは、とても便利な機械であることは、みなさんご存知だと思いますが、苦手にしている問題がいくつかあります。

その1つが、私たちが中学校で習う「因数分解」です。

例えば「91を因数分解しなさい」といった問題です。

この場合、答えは「7×13」になるのですが、桁数が増えるほど、難しくなることが予想できます。

「6059を因数分解しなさい」
「11928311を因数分解しなさい」

こうなると、私たちはもちろん、コンピュータでも難しい問題となります。

暗号化のアイデアは因数分解から生まれた

上に示した問題も、以下のように少しヒントが与えられるだけで、簡単な問題に早変わりします。

「6059を因数分解しなさい。因数の1つは73です。」
「11928311を因数分解しなさい。因数の1つは3331です。」

暗号化のアイデアは「11928311を因数分解できなければ、情報を読み取ることはできない」ということから生まれています。

ただし、情報の受け取り手と送り手が「73」という1つの因数を知っていれば、情報を読み取ることは簡単です。

実際の暗号化には、桁数が多い数が使用されていて、「桁数が大きい数の因数分解は事実上不可能」という前提があります。

因数分解は、量子コンピュータが得意にする問題の1つ

古典コンピュータが苦手にしている「因数分解」ですが、量子コンピュータは得意にしています。

古典コンピュータは1000桁の数字の因数分解は不可能とされていますが、量子コンピュータは数分で解いてしまうそうです。

つまり、「桁数が大きい数の因数分解は、古典コンピュータでは事実上不可能」という前提にたった現在の暗号化技術が、量子コンピュータの登場で破綻してしまうということを意味しています。

ただし、量子コンピュータがまだ実用段階にはないので、喫緊の問題というわけではありません。

量子コンピュータの登場で、いろいろな技術が発展していくのは間違いないですね。

参考文献

竹内繁樹「量子コンピュータ」講談社ブルーバックス