ポスト量子セキュリティ:格子暗号がデータを安全に保つ仕組み

量子コンピューター
この記事は約11分で読めます。

量子コンピュータの進化により、現在広く使用されているRSA暗号などの古典的な暗号技術が脆弱化する未来が迫っている。従来の暗号は素因数分解のような数学的難問に依存しているが、十分に強力な量子コンピュータであれば数時間で解読可能となる。この量子脅威に対抗するために開発されたのが格子暗号である。格子暗号は多次元空間における格子構造とノイズを利用した数学的難問に基づいており、量子コンピュータでさえも実用的な時間内では解読できない強固さを持つ。米国国立標準技術研究所は約10年前から耐量子暗号アルゴリズムの標準化を進めており、現在これらは既に利用可能である。組織は「今取得、後で解読」攻撃に備え、暗号資産目録の作成、脆弱性評価、優先順位付け、修復というプロセスを通じて、早急にポスト量子暗号への移行を開始する必要がある。

Post‑Quantum Security: How Lattice Cryptography Keeps Data Safe
Ready to become a certified watsonx AI Assistant Engineer? Register now and use code IBMTechYT20 for 20% off of your exa...

難しい数学問題が私たちを守る理由

難しい数学問題が好きではない方もいるかもしれません。まあ、難しいですからね。あるいは苦しむのが好きな方もいるかもしれませんが、私は批判するつもりはありません。しかし、難しい数学問題が存在するという事実から、皆さんは恩恵を受けているのです。気づいているかどうかに関わらず。実際、私たち全員がそうなのです。

これらは現代の暗号技術の基盤となっており、暗号技術こそが私たちの秘密を秘密に保つ方法なのです。個人を特定できる情報、個人の健康情報、知的財産、ビジネス記録などです。このような情報は秘密にしておく必要があるものです。この能力がなければ、私たちが知っているインターネットは存在しなくなるでしょう。あなたが本当にあなた自身であることを確認する方法も、個人情報が公開されるのを防ぐ方法もなくなってしまいます。

では、難しい数学問題とは何を意味するのでしょうか。いくつかの例から始めましょう。簡単なものから始めます。まず、これら2つの数字を足すように頼んだら、できると思います。これは簡単な数学問題です。もしこんなものに基づいて暗号を作ったら、あまり秘密は守れませんよね。

素数の掛け算から600桁の素因数分解へ

もう少し難しいものを試してみましょう。掛け合わせると21になる2つの素数を選んでくださいと言ったとします。素数とは何でしょうか。その数と1でしか割り切れない数のことです。つまり、掛け合わせると21になる2つの数を考えてください。これもそれほど難しくありません。

7と3を掛けると21になりますし、両方とも素数です。だから、それほど難しくはありません。しかし、同じ問題で、600桁の数の2つの素因数を見つけるように頼んだらどうでしょうか。さあ、頭が混乱しますよね。実際、今日の最高のスーパーコンピュータでも同じことが言えます。

それを解くには何千年もかかる可能性があります。しかし、十分に強力な量子コンピュータなら、わずか数時間で解くことができるのです。そして、これが難しい数学問題であり、RSAアルゴリズムのような最高の古典的暗号技術の基盤となっているのです。気づいているかどうかに関わらず、私たちは毎日これを使っています。

もし量子システムがそれを簡単に破ることができるなら、暗号も簡単に破られることになります。そして突然、私たちが必要とするすべての秘密性が蒸発してしまうのです。

格子暗号という解決策

では、解決策は何でしょうか。それは格子暗号と呼ばれるもので、大きな数の素因数を見つけるよりも大幅に難しい数学問題に基づいています。この種の量子安全な暗号の背後にある高レベルの概念を見て、より良い理解を得ましょう。

でも心配しないでください、数学はここまでです。深く掘り下げることはあまりしません。できるだけ少なくするように努めます。ただ、正確な詳細をすべて網羅できなくても厳しく言わないでくださいね。それをやると本当に長くて本当に退屈な動画になってしまいますから。

準備はいいですか。始めましょう。

チェスの騎士の動きで理解する格子暗号

さて、チェスのゲームはいかがですか。完全なチェスゲームではありませんが、格子暗号がどのように機能するかを理解するための類推として使いましょう。非常にシンプルな例から始めます。ナイトの駒があります。チェスではナイトは基本的に横に1マス、縦に2マス動くか、または横に2マス、縦に1マス動くことができます。そうやって、いくつかの動きの組み合わせでちょうどここに到達できます。

では想像してみてください。特定のスポットに到達するように言われたら、それは簡単なことです。しかし、このような、マスの中心に正確には位置しない特定のスポットに到達するように言われたらどうでしょうか。正確には到達できません。できる限り最善の近似をしなければなりません。

横に2マス、縦に1マス進んで、さらに横に2マス、縦に1マス進めば、少しだけ外れます。または、横に2マス、縦に1マス進んでから、縦に1マス、横に2マス進んでも、やはり少し外れます。さまざまな組み合わせを試すことができます。ボード全体を回って戻ってくることで、少し近づくこともできるかもしれません。

しかし、それに到達するための多くの異なる組み合わせがあることがわかります。私が行ったのは、問題に複雑さを追加したことです。実際のチェスゲームにあるような複雑さではありませんが、これは説明です。つまり、ボード上で動きがどのように起こるかを説明する方法だった2プラス1または1プラス2を取り上げました。

次元とノイズが生み出す複雑性

さらに複雑にしたい場合は、それをxプラスyに変えます。つまり、起こりうる動きの数が可変になるのです。それが複雑さを増す1つの方法です。もはやチェスではありませんが、どのように複雑になるかがわかります。これは2次元でしたが、2次元は比較的簡単に見ることができるのでわかりやすいですよね。

これを1000次元に変えたらどうでしょうか。今度は本当に難しい問題になります。そして、方程式にノイズを追加したらどうでしょうか。ノイズとは基本的にこういうことです。実際には着地できないスペースに配置することです。できるだけ近づかなければなりませんが、正確には到達できません。

このノイズと、複数の次元と、他の変数が、非常にシンプルに見える問題を非常に難しい数学問題に変えるのです。誤差を伴う学習を行う場所です。そして、それが格子暗号の基盤なのです。

格子構造の仕組み

さあ、格子に移りましょう。1つのシンプルな分析を見てきましたが、もっと複雑なことをしましょう。これらの複雑性のルールを取り上げてここに置いておきますが、後でこれらを参照します。

格子とは何でしょうか。格子は多次元空間で作成するもので、原点から始まります。その原点から、いくつかのベクトル、基底ベクトルがあります。約45度の角度で進む緑のベクトルが1つあります。完全に水平で、緑の約2倍の長さの青いベクトルがあります。これらが2つの異なるベクトルです。

基本的に、これらのベクトルの任意の組み合わせが空間内の点を作り出します。そして、その空間内の点が格子の別の部分になります。格子を構築すると、基本的にこれら2つのベクトルのすべての可能な組み合わせになります。

何を意味するかお見せしましょう。作成したのは、緑のベクトルを1つ使えば、空間内のその点が作られます。青いベクトルを1つ使えば、この空間内の点が作られます。では、いくつかの組み合わせをしたらどうでしょうか。緑のベクトルを2つ使ったら、ここに到達します。

緑を1つと青を1つ使えば、ここに到達します。このように何度も何度も構築し続けることができることがわかります。そして最終的に、この格子空間を作り出すのです。

なぜ格子暗号は量子コンピュータでも破れないのか

ここに難しい問題があります。シンプルな2プラス1だったものを、xプラスyを追加することでより複雑な問題にしました。これらを足し合わせる任意の組み合わせが可能になります。もう1つ行うのは、ノイズを導入することです。

ノイズは、到達してほしいスポットはここですと言います。どうやってそこに到達しますか。それを近似する方法はたくさんあります。緑を追加し続けて近づくことができ、それぞれが空間内のスポットを作り出します。

緑を2つ、青を1つ追加すれば、少し、少しだけ近づくかもしれません。緑を2つ、青を1つ、さらに緑を1つ追加すれば、さらに少し近づくかもしれません。多くの異なる試行錯誤の可能性を試す必要があることがわかります。目で見て試せる他のいくつかの可能性もあるかもしれません。そのスポットに近づくことができます。

しかし、これが格子空間内の点の1つとして正確に位置していないという事実が、問題を少し難しくしているノイズなのです。まだそれほど難しくないように見えると言うかもしれません。それは、2つのベクトルだけを見ていて、2次元だけを見ているからです。

1次元や2次元ではなく、1000次元にしましょう。そうすると、頭が混乱します。そして、それを理解しようとするあなたの頭が混乱するだけでなく、無限に思える数の可能性を試さなければならないでしょう。今日の最高のスーパーコンピュータの頭も同様に混乱するでしょう。これも解くことはできないのです。

良い暗号アルゴリズムの条件

良い暗号アルゴリズムで探しているのは、何らかのショートカットを通じて最終ゲームに到達する方法、問題を解決する方法がないことを確認することです。ブルートフォースを必要とするものである必要があります。1つの可能性を試し、別の可能性、別の可能性を試し続け、あまりにも多くの可能性を試し続けなければなりません。すべての可能性を最終的に試すのに1000年以上かかります。

それが別のポイントです。そして、あなたが解けず、スーパーコンピュータが解けないなら、本当の問題は、量子コンピュータが解けるかということです。答えはノーです。私たちの既存の暗号をすべて破ることができる十分に強力な量子コンピュータでも、格子を十分に複雑にし、十分なノイズを導入すれば、この問題は解けません。

それが、量子の脅威を生き延びる暗号技術の基盤なのです。

NIST標準化と実装への道筋

良いニュースは、これらすべてを自分で理解する必要はないということです。賢い暗号学者たちが私たちのためにすべてのハードワークを行い、量子安全暗号アルゴリズムとして知られるもの、またはポスト量子暗号とも呼ばれるものを考え出しました。基本的に、この種の格子演算とこの難しい数学問題を体現しています。

米国国立標準技術研究所は約10年前に提案の募集を開始しました。量子コンピュータが破ることができない新しいアルゴリズムを求めていたのです。最高の頭脳が集まり、これらの格子暗号アルゴリズムを中心にまとまり始めました。良いニュースは、それらが存在し、今日使用できるということです。

実際、オープンソースのリポジトリに公開されています。業界標準であり、展開を開始できます。それが良いニュースです。そして、量子システムが既存の暗号を破ることができるQデイが来ています。だから今すぐこれに取り組む必要があります。

暗号資産目録の作成から始める

では、何をすべきでしょうか。解決策があるので、実際にそれを実装するために何をすべきでしょうか。それは発見から始まります。

環境内の暗号技術のすべての使用について知る必要があります。知らなければ、もちろん修正できません。その発見から、暗号資産目録、C-bombと呼ばれるものを作成します。これは環境内の暗号技術のすべての使用の基本的なインベントリです。

そこから、これらすべてを評価する必要があり、どのケースで量子システムが破ることができる弱い暗号技術があるか、それらを修正するために何をする必要があるかを決定する必要があります。

優先順位付けと修復のプロセス

次に、これらに優先順位を付けます。1日ですべてを修正できるわけではないことを確認する必要があるからです。現実には、多くの組織には修復する必要があるカスタム暗号のインスタンスが数百、数千もあります。だから、最も機密性の高いものから最初に取り組み、計画を立て、その変換を管理したいのです。

それから最終的に修復を行います。ここでは、どのようなことを変更する必要があるかを理解しようとします。場合によっては鍵の長さを変更する必要がありますか。完全に新しいアルゴリズムを使用する必要がありますか。それが私たちが行うことです。そして最終的に、このプロセスを繰り返し続けます。戻ってください、これは1回限りのことではありません。

クリプトアジリティという最終目標

最終的な目標は、クリプトアジリティという概念を得ることです。将来、選択したアルゴリズムの1つに実際に弱点があることが判明した場合、このプロセス全体をもう一度やり直したくありません。C-bombに直接アクセスして、そのアルゴリズムが問題だと言いたいのです。

別のものと交換する必要があり、このプロセスを正しく行っていれば、かなり短期間でそれを行うことができます。それが私たちの最終目標です。クリプトアジリティであり、量子安全暗号技術に向かって進むことです。

難しさが強さを生む

時には、難しいことが実際には良いことを意味します。数学問題が難しければ難しいほど、暗号は強くなります。攻撃者がすべての可能な組み合わせのブルートフォース攻撃に頼らざるを得なくなるからです。

それは善良な側にとって勝利です。量子コンピュータでさえも試すには推測が多すぎるからです。つまり、私たちの秘密は秘密のままであり、それが私たちが望むことです。

良いニュースは、量子安全暗号を行うために量子コンピュータは必要ないということです。これらのアルゴリズムは今日の私たちのシステム上で実行されます。だから、秘密が秘密のままであることを保証するために、これらのうちの1台を購入する必要はありません。

今すぐ始めるべき理由:今取得、後で解読

しかし、見逃してはいけない教訓があります。ポスト量子暗号への道を今すぐ始める必要があります。この4文字のためです。今取得、後で解読。これが意味するのは、今日あなたの暗号化されたデータのコピーを作成すれば、将来、十分に強力な量子システムが登場するまで待つだけで、その時点で復号化できるということです。

または、去年または10年前にデータをコピーした場合、最終的には後で復号化できる量子システムにアクセスできるようになります。だから、今データの保護を始める必要があるのです。もちろん、タイムマシンがあって、時間を遡って過去のすべてのデータを再暗号化できるなら別ですが。しかし、そのオプションを選ぶ場合は、必ず現在に戻ってきてください。私たちはあなたに会えなくなって寂しくなりますから。

コメント

タイトルとURLをコピーしました