table of contents
本連載について
みなさんこんにちは。Deep Tech Mediaは現在解決が困難な社会課題を、技術によって解決し、より豊な社会を作りたいという熱い思いを持つすべての人のための社会課題×技術特化型メディアです。
中でもこちらの連載では、特定の技術が特定の社会課題を解決できるのか、徹底的に調査して一つの記事にまとめることで、より豊かな社会を作るという考えを軸に、技術と社会課題への理解を深める機会を提供しています。
今回はDeep Techとして「量子暗号通信」、社会課題として「量子コンピュータによる通信のハッキング」を取り上げます。既存のコンピュータの性能を圧倒的に上回るとされる新たなコンピュータ「量子コンピュータ」に昨今注目が集まっていますが、量子コンピュータがもしも悪用された場合にどのような危険が潜んでいるのか、その危険を量子暗号通信で回避できるのか、考えていきます。
前回までは、「ドメインのなりすまし」という攻撃を例に挙げ、その攻撃を防ぐためには信頼できる第三者である認証局の証明が重要であり、それを実現する方法として「電子署名」という技術が用いられていることをご説明しました。ここからは、その電子署名の弱点について考えていきます。
なぜ電子署名では量子コンピュータに対抗できないのか
電子署名の弱点
電子署名を用いて署名した主が、認証局であることを証明する大前提として、「秘密鍵はそれを作った認証局自身だけが持っている」ということを仮定しています。しかし、この秘密鍵は、家の鍵などと同様に、「誰かに盗まれる」、「合鍵を作られてしまう」といった危険が考えられます。ここで、認証局は「誰かに盗まれる」ことがないように厳重に秘密鍵を管理しているので、この記事では盗まれる心配はないと考えます。一方で、量子コンピュータの登場によって「合鍵を作られてしまう」、つまり秘密鍵のコピーが作られてしまうという危険があると言われています。
合鍵を作られないようにする工夫
電子署名において「合鍵を作られてしまう」ことを防ぐために、さまざまな防御策が考案されましたが、中でも現代使われている手法として「RSA暗号」と呼ばれる手法があります。このRSA暗号のキーとなるポイントは、「合鍵を作るにはどうしても難解な数学問題を解く必要があり、その問題が現在この世で最も優れたコンピュータでも到底解くことができない」ということです。どんなコンピュータでも解けない難解な数学問題とは、具体的には「素因数分解」というシンプルな問題です。素因数分解とは、ある数を素数の掛け算に分解することです。例えば、12は2×2×3のように簡単に素因数分解ができます。しかし、1653を素因数分解しろ、と言われると、もう暗算では難しいと思います。このように素因数分解は分解する数が12, 1653, … と大きくなるに従って、コンピュータですら解くことのできない超難解な問題になることが知られており、RSA暗号はその性質を用いることで、秘密鍵がコピーされるのを防いでいます。
高速で素因数分解できてしまう量子コンピュータ
しかし、近い将来実現が期待される量子コンピュータはこの素因数分解をいとも簡単に解いてしまうと言われています。それはつまり、いとも簡単に秘密鍵のコピーを作成することができることを意味し、その秘密鍵を使って、偽の電子署名を行うことができます。第一章、第二章で解説してきたように、偽の電子署名が可能となってしまえば、ドメインのなりすましが可能となってしまい、その結果として個人情報が盗み取られる危険が生まれてしまいます。
量子コンピュータ対抗策
① 素因数分解する数の桁数を増やす
ここからは、量子コンピュータでRSA暗号が解読されるリスクに対する有効な対策について考えていきます。まず、最も自然な発想として、「素因数分解する数の桁数を増やす」ことが挙げられます。
2019年時点で、コンピュータを用いた素因数分解の解読世界記録は232桁でした。つまり233桁以上であればコンピュータで解けない問題ということができます。ただし、コンピュータの処理能力が向上することや、素因数分解をより効率的に解く新たなアルゴリズムの登場などを考えると余裕を持って大きな桁数に設定しておくべきだと予想できますが、実際2019年時点でRSA暗号では、617桁以上の整数が使われていました。(スーパーコンピュータで解読に30年かかると言われています。)
量子コンピュータはどこまでの桁数まで素因数分解できてしまうのか
量子コンピュータに対しても安全な暗号にするには桁数をいくつまで増やせば十分なのか考えてみます。既存のコンピュータを用いた素因数分解の記録が232桁であったことから、量子コンピュータを使えばさぞ大きな数を素因数分解できるだろうと思われますが、実際には2001年にやっと”15”の素因数分解(3×5)、2012年に”21”の素因数分解(3×7)に成功しました。とてつもなく小さい数です。少し拍子抜けかもしれませんが、情報セキュリティの観点で見れば暗号解読の危険がひとまずは回避され一安心できるポイントです。それでは今考えるべきは、大きな数でも素因数分解できるようになった「将来の量子コンピュータ」でも解読するのに膨大に時間がかかるような暗号を実現するために十分な数の桁数はいくつなのか、という点でしょう。
結論から言うと、大きな数でも素因数分解できる量子コンピュータが実現できた場合、桁数をどれだけ増やしても量子コンピュータは現実的な時間内で素因数分解できてしまいます。その結果、桁数をいくら増やしても、量子コンピュータに対しては安全な暗号になり得ないということになります。量子コンピュータ対策には、別の方法が必要です。
② より強靭な暗号を作る
別の量子コンピュータ対策として、現在広く使われているRSA暗号に代わる、より強靭な暗号を作り普及整備することが挙げられます。量子コンピュータでも解読できない暗号は「耐量子暗号」と呼ばれ、実際にアメリカでは新しい暗号の開発・選定作業が既に行われています。もし耐量子暗号の作成に成功すれば、その暗号をプログラムに書き込み、システムに導入することで、インターネット網を量子コンピュータの存在下でも安全なものへと進化させることができます。現在アメリカの米国国立標準技術研究所(NIST)では、新暗号の開発が行われており、82の応募のうち、4つの有力な新暗号候補の選定まで完了しました。具体的には、それぞれ「BIKE」,「Classic McEliece」,「HQC」,「SIKE」と名付けられた暗号プロトコルについて、世界中から本当に解読不可能なのかの精査が行われています。ただし、新暗号の開発というアプローチでは、今解読不可能だと思われていても、新たなアルゴリズムの登場によって解読に成功してしまう可能性が必ず存在するため、根本的な対策にはなり得ないと言えます。
量子コンピュータはどのように現代セキュリティを突破するのか?まとめ
第三章では、電子署名の安全性の肝である素因数分解を量子コンピュータが解いてしまうこと、そして量子コンピュータに対する対策例を二つ挙げ、その対策が根本的な解決には至らないことを説明しました。
第四章では、量子コンピュータへの対策として最も注目を集めている「量子暗号通信」という技術について、丁寧にわかりやすく解説するので、ぜひ一緒に考えながら読んでいただければと思います!