公開鍵暗号と量子コンピュータ

離れた場所にいる人間に暗号で通信を送ってもらう場合、暗号に直す方法を教えなくてはいけない。しかし第二次大戦中などはこの暗号に直す手順が敵に知られると解読もされてしまうので、まずは相手に苦労してこの暗号化ルールを届けないといけなかった。「機動部隊>1234」「空母>5678」などの置き換えが基本だからこのルールが知られば解読は簡単にできる。
こういった欠点を克服したのが、現在WEBなどで広く使われている公開鍵暗号。たとえば amazon.com にクレジットカード番号を送信する時、普通に送ったのでは途中で傍受するのは簡単なので他人にカードを使われる危険がある。そこでこういった入力をするページでは、カード番号をある規則で変換してから送るようになっている。そしてその規則はページの中に記述されている。この規則がたとえば番号を2倍するとかだったら、傍受した番号を2で割れば簡単にバレてしまうけど、例えば番号を1234567倍して5678987で割った余りを送る、とかだと簡単には元にもどせない。342345という数を傍受しても、1234567倍して5678987で割った余りが342345になる数、というのはすぐには分からない。(ちなみにこの例の数は適当)で、元に戻す方法は amazon.com だけが知っている、という仕組みになっている。暗号化の方法から、元にもどす方法を計算することは出来なくはない。公開されている5678987などの大きな数を二つの数の積に分解すれば、これが計算できるらしい。15とかの小さい数ならば15=3×5とすぐ分解できるが、20ケタの数のような場合は宇宙の終りになっても計算できない。したがって今のところこういう暗号は安全とみなされている。
しかし、量子コンピュータという一種のアナログコンピュータを使えば劇的に速くこの計算ができることがショアという人によって示された。よく量子力学的重ね合わせの奇妙さを表すのにシュレディンガーの猫というのが引合に出される。死んでいる状態と生きている状態が重ね合わさった状態、というわけのわからない状態が思考実験のなかで出来てしまう。このアナロジーで言えば、何万種類もの違う状態のネコが重ね合わさって違う計算を一斉に手分けして計算している、ということになるかも知れない。最後にフタをあけると一匹しか出てこないけども、正しい計算をした猫ほど大きな確率で出てくる、という画期的な仕掛けになっている。幸い(不幸にして)量子コンピュータはまだまだ実用化のメドは立っていない。