推測の演算には、数十年、数百年かかる

本題の公開鍵暗号だが、素数の積と素因数分解をベースに開発された。「13×17=221」で見てみよう。13と17は素数で、この積「221」は筆算で簡単に計算できる。一方、221を素因数分解するには、「2で割って、3で割って……」と順に探しても、「13×17」にたどり着くまでに時間を要する。この素因数分解の演算の面倒さを利用したのが公開鍵暗号なのだ。

その公開鍵暗号は基本的に公開鍵(閉める鍵)と秘密鍵(開ける鍵)のペアで成り立つ。上記の例でいうと公開鍵は「17をかける操作」、秘密鍵は「221を素因数分解する操作」だ。公開鍵はその名のとおり、誰でも利用できるように公開されている。

※写真はイメージです(写真=iStock.com/peshkov)

たとえば、Cが「17をかける」という公開鍵を世界中にオープンにして、大事な情報を送ってもらうとする。Cの元には公開鍵「17をかける」で閉められた情報「221」が集まってくる。そしてCは自分だけが知っている「221を素因数分解する操作」の秘密鍵で開けるわけなのである。

公開鍵暗号をもとに秘密鍵を探り出すことは可能だが、実際の公開鍵暗号は膨大なケタの素数を利用しているため、地球上のすべてのコンピューターを駆使しても推測の演算には、数十年、数百年かかるといわれている。そして先の荷物問題は、2つの鍵を使って安全に届けるという点で公開鍵暗号に近いのだ。

横山明日希
数学のお兄さん
2012年、早稲田大学大学院修士課程単位取得(理学修士)。数学応用数理専攻。大学在学中から、数学の楽しさを世の中に広く伝えるために「数学のお兄さん」として活動を開始、精力的に講演やイベントを行う。