1. 量子コンピューターによる暗号解読の脅威と現状の対策 [0]

1.1. SNDL(Store Now Decrypt Later)の脅威 [0]

  1. 機密データの傍受と保存: 現在、国家や個人アクターが、パスワード、銀行情報、社会保障番号などの暗号化されたデータを傍受し保存している [0]。
  2. 将来の解読: これらのアクターは、今後10年から20年以内に、これらのデータを数分で解読できる量子コンピューターを入手できると見込んでいる [1]。
  3. SNDLの定義: この手順は「Store Now, Decrypt Later (SNDL)」として知られており、将来も価値を持つ情報(産業研究、製薬研究、政府の機密情報など)が現在傍受されているために機能する [2]。
  4. NSAの見解: 米国国家安全保障局(NSA)は、十分に大規模な量子コンピューターが構築されれば、5年から10年のうちに広く展開されているすべての公開鍵アルゴリズムを無効化できると述べている [4]。
  5. 量子コンピューティングの影響: 量子コンピューティングは、我々が現在知っている暗号を破る [5]。
  6. 即時の対策の必要性: 十分に強力な量子コンピューターはまだ数年先であるが、SNDLの脅威があるため、すでに脅威となっている [6]。
  7. 米議会の対応: 米国議会は、量子コンピューターによって破られない新しい暗号化手法への移行をすべての機関に義務付ける法律を可決した [6]。

1.2. 従来の暗号技術(対称鍵と非対称鍵) [7]

  1. 従来の暗号の成功: 現在の暗号方式は40年以上にわたり非常に成功裏に機能してきた [7]。
  2. 対称鍵アルゴリズム(1970年代以前):
    1. 以前は、秘密情報を交換するには対面で会い、秘密鍵を共有する必要があった [8]。
    2. この鍵がメッセージの暗号化と復号に使用され、「対称鍵アルゴリズム」として知られる [9]。
    3. 鍵が漏洩しなければメッセージは安全である [10]。
  3. 非対称鍵システム(RSAの登場):
    1. 対面での会議が困難な相手と情報を交換する場合、安全でないチャネル(電話回線や郵便)で鍵を共有することは傍受されるリスクがある [11]。
    2. この問題に対処するため、1977年にRivest、Shamir、Adlemanの3人の科学者が暗号化のブレークスルーを生み出した [11]。
    3. これが現在「RSA」として知られており、その仕組みは以下の通りである [11]。
    4. 各個人は自分専用の2つの非常に大きな素数を持ち、それを秘密にする [12]。
    5. これらの素数を掛け合わせ、さらに大きな数(公開鍵)を作成し、公開する [13]。
    6. メッセージを送信する際、受信者の大きな公開数を使用してメッセージを「もつれさせる(garble)」 [14]。
    7. このもつれを解除するには、その公開数を構成した2つの素因数を知る必要があり、暗号化と復号に異なる鍵が使用されるため「非対称鍵システム」である [14]。

1.3. RSA暗号の古典的計算量と量子コンピューターの脅威 [15]

  1. 古典的な試み: 誰かがスーパーコンピューターと既知の最良の素因数分解アルゴリズムである「一般数体ふるい法 (general number field sieve)」を用いて因数分解を試みることができる [15]。
  2. 古典計算の限界: 現代の暗号では約313桁の素数が使用されており、このサイズの2つの素数の積を因数分解するには、スーパーコンピューターを使っても約1600万年かかると推定される [15]。
  3. 量子コンピューターによる突破: しかし、量子コンピューター上ではこの時間は大幅に短縮される [16]。

2. 量子コンピューティングの基本原理と計算能力 [17]

2.1. 古典ビットと量子ビット(Qubit)の比較 [17]

  1. 古典ビットの状態: 通常のコンピューターでは、ビットは一度にゼロまたはイチの単一の状態にしかなれない [17]。
    1. 2ビットの場合、(00, 01, 10, 11)の4つの可能な状態のいずれかである [18]。
    2. これらの状態は、それぞれ数値の0, 1, 2, 3に対応する [19]。
    3. 計算を行う際(例:7をこれらの数値のいずれかのパワーで計算)、一度に一つの状態に対してのみ実行できる(例:7の2乗=49) [20]。
  2. 量子ビット(Qubit)と重ね合わせ:
    1. 量子コンピューターは量子ビット(Qubit)で構成されており、これらもゼロまたはイチの状態を持つ [22]。
    2. しかし、古典ビットと異なり、Qubitは一度に一つの状態に留まる必要はなく、ゼロとイチの任意の組み合わせ、すなわち「重ね合わせ (superposition)」の状態を取り得る [22]。
    3. 2つのQubitがあれば、(0, 1, 2, 3)の重ね合わせ状態に同時に存在できる [24]。
    4. 同じ計算を繰り返すと、すべての数値に対して同時に計算が実行され、結果として(1, 7, 49, 343)の重ね合わせが得られる [25]。
    5. Qubitを一つ追加するごとに、可能な状態の数は倍増する [26]。
    6. 3 Qubitで8つの状態を表現でき、8つの計算を同時に実行可能である [26]。
    7. 20 Qubitあれば100万以上の異なる状態を表現でき、100万以上の異なる答えを同時に計算できる [27]。
    8. 300 Qubitあれば、観測可能な宇宙の粒子数よりも多くの状態を表現できる [28]。

2.2. 量子計算の課題と応用分野 [29]

  1. 測定の制約: この能力は非常に強力であるが、大きな問題点がある [29]。
    1. 計算のすべての答えは状態の重ね合わせに埋め込まれているが、この重ね合わせを単純に読み出すことはできない [29]。
    2. 測定を行うと、重ね合わせから単一の値がランダムに得られ、他のすべての情報は失われる [30]。
  2. スマートな方法の必要性: 量子コンピューターの力を活用するには、重ね合わせの状態を必要な情報のみを含む状態に変換する賢い方法が必要である [30]。
  3. 量子コンピューターの有用性: このタスクは非常に困難であるため、ほとんどの応用において量子コンピューターは役に立たない [31]。
  4. 暗号解読への応用: 現在、この変換が可能な問題として特定されているのはごく少数であり、皮肉なことに、それらが今日使用されているほぼすべての公開鍵暗号の基礎を形成する問題である [32]。

3. ショアのアルゴリズムによるRSA解読の原理 [33]

3.1. 量子フーリエ変換 (QFT) の役割 [33]

  1. ShorとCoppersmithの発見: 1994年にPeter ShorとDon Coppersmithは、「量子フーリエ変換 (Quantum Fourier Transform, QFT)」を適用する方法を発見した [33]。
  2. QFTの機能: QFTは通常のフーリエ変換と同様に機能し、周期的な信号に適用すると、その信号に含まれる周波数を返す [34]。
  3. 周期的な重ね合わせへの適用: 状態が周期的な重ね合わせ(重ね合わせ内の項が一定の間隔で分離されている)の場合、QFTを適用すると、信号の周波数を含む状態が残る [36]。
  4. 周波数情報の抽出: この周波数情報は測定可能であり、QFTは周期的な重ね合わせから周波数情報を抽出することを可能にする [37]。

3.2. 素因数分解の古典的ステップ(N=p*q の場合) [39]

  1. 目的: 量子コンピューターがどのようにして従来のコンピューターよりも速く2つの素数の積を因数分解するかを説明するため、まず古典的な例で歩む [39]。
  2. 設定: を2つの素数 と の積とする(例として とする) [40]。
  3. ステップ1: 適切な数 $G$ の選択: と共通の因数を共有しない数 を選ぶ [43]。
  4. ステップ2: 指数 $R$ の発見:
    1. を繰り返し掛けていくと、$n$ の倍数プラス1に必ず到達する [44]。
    2. すなわち、ある指数 が存在し、 となる [45]。
    3. 例($n=77, G=8$):
      • 8を繰り返し乗算し、77で割った余りを追跡する [49]。
      • ...
      • となり、指数 が見つかる [53]。
  5. ステップ3: 因数への変換:
    1. 方程式を (は整数)と変形する [55]。
    2. が偶数である場合、 となり、左辺の2つの項が の因数 と を含む可能性が高くなる [56]。
    3. の場合、2つの項は と である [61]。
  6. ステップ4: ユークリッドの互除法による因数特定:
    1. 上記の2つの数と の最大公約数 (GCD) をユークリッドの互除法で求める [62]。
    2. 例として を計算すると、最終的に11が得られる [64]。
    3. 11が77の素因数であり、77を11で割るともう一つの素因数7が得られる [68]。
  7. 古典的計算の限界: 上記のステップは古典コンピューターでも実行可能だが、この方法が他の方法より速くなるわけではない [71]。
  8. 量子コンピューターによる加速: 量子コンピューターが加速するのはステップ2、すなわち となる指数 を見つけるプロセスである [72]。

3.2.1. 余りの周期性と量子計算の関連性 [73]

  1. 余りのサイクルの観察: を繰り返し乗算した際の余りは周期的に繰り返される [74]。
    1. 例 () では、余り1を生成する指数は10、20、30、...と10の倍数で現れる [76]。
    2. 任意の余り(例:15)についても、次に同じ余りが出現するまでの指数間隔は周期となる [78]。
    3. 周期(この例では10)を見つけることが、指数 を見つけることにつながる [80]。
    4. 周期の開始点()も周期の終点()も、この周期性によって特定できる [82]。

3.3. 量子コンピューターによるショアのアルゴリズムの実行 [85]

  1. Qubitの分割と準備:
    1. Qubitを2つのセットに分割する [85]。
    2. 第1セット: から までの数に対応する重ね合わせ状態に準備される(完璧なQubitであれば約4100 Qubitが必要) [86]。
    3. 第2セット: すべてゼロの状態に保たれる [88]。
  2. エンタングルメントの生成:
    1. を選択し、 を第1セットのQubitの指数に乗算し、 で割った余りを第2セットのQubitに格納する [89]。
    2. この操作により、2つのQubitセットがもつれ(entangled)状態になる [90]。
  3. 周期性の抽出:
    1. この重ね合わせをそのまま測定するとランダムな値しか得られないため、余り部分のみを測定するトリックを使用する [91]。
    2. 測定されたランダムな余りは複数回出現する [92]。
    3. 例 () で余り15を測定した場合、余り15を生成する指数(4, 14, 24, 34, ...)は10ずつ離れている [93]。
    4. 一般に、測定後、残された重ね合わせの状態の指数はすべて同じ量 $R$ だけ分離される [95]。
    5. 余り情報を取り除くと、残った重ね合わせは周期 $R$ を持つ周期的なものになる [97]。
  4. $R$ の特定:
    1. この周期的な重ね合わせに量子フーリエ変換 (QFT) を適用する [99]。
    2. 結果として、$1/R$ を含む状態が残る [99]。
    3. 最後に測定を行い、 を逆算して特定する。これが量子部分の完了である [100]。
  5. 因数分解の完了:
    1. が偶数であれば、ステップ3.2で説明したように、 を利用して の因数を共有する2つの数に変換できる [101]。
    2. これらの数に対してユークリッドの互除法を適用することで、$N$ の因数 $P$ と $Q$ を見つけ、暗号を破ることができる [101]。

3.4. 量子コンピューターの進展とポスト量子暗号の必要性 [102]

  1. 必要なQubit数: RSA暗号を破るには、数千の完璧なQubitが必要である [102]。
  2. 不完全なQubitへの対応: 現在のQubitは不完全であるため、冗長な情報として機能する追加のQubitが必要となる [102]。
  3. 物理Qubit数の見積もり:
    1. 2012年: RSA暗号を破るには10億の物理Qubitが必要と推定された [103]。
    2. 5年後: その数は2億3000万に減少した [103]。
    3. 2019年: さらなる技術的ブレークスルーにより、推定値は2000万の物理Qubitに急落した [103]。
  4. 現状と将来予測: IBMの量子コンピューターを見ても、必要なQubit数には遠く及ばないが、進展は指数関数的であるため、既存の公開鍵暗号がすべて破られる前に、この進展曲線が衝突する時期が問題となる [103]。
  5. ポスト量子暗号への移行: この脅威が来ることは長く知られていたため、科学者たちは通常および量子コンピューターの両方の攻撃に耐えうる新しいデータ暗号化方法を探してきた [104]。
  6. NISTの標準化競争:
    1. 2016年、米国国立標準技術研究所(NIST)は、量子コンピューターに対して脆弱でない新しい暗号アルゴリズムを見つけるためのコンペティションを開始した [105]。
    2. 世界中から82の異なる提案が提出され、厳密にテストされた [106]。
    3. 一部のアルゴリズムは破られた [107]。
    4. 2022年7月5日、NISTは4つのアルゴリズムをポスト量子暗号標準の一部として選定した [107]。

4. ポスト量子暗号の基礎:格子ベース暗号 [108]

4.1. 格子(Lattice)の概念と最近傍ベクトル問題 (CVP) [108]

  1. 格子ベースアルゴリズム: 選定された4つのアルゴリズムのうち3つは格子の数学に基づいている [108]。
  2. 格子の定義(2次元の例):
    1. 2つのベクトル と を取る [109]。
    2. これらのベクトルの異なる整数倍の組み合わせ(例:)を加算することで得られるすべての点を「格子 (lattice)」と呼ぶ [109]。
  3. 最近傍ベクトル問題 (CVP):
    1. ある点 が与えられたとき、どの と の組み合わせが に最も近い格子点をもたらすかを特定することが課題となる [111]。
    2. 2つのベクトル が与えられた場合、これは比較的容易に解ける [112]。
    3. しかし、同じ格子を生成する別の基底ベクトル が与えられると、問題は格段に難しくなる [112]。
    4. ベクトルを使用すると、一方の方向で一歩進むことが、他方の方向で誤ったステップになるため、作業が困難になる [113]。
    5. 最終的に、最も近い格子点に到達するには、 の組み合わせが必要となる [114]。

4.2. 高次元化による計算の困難性 [116]

  1. 次元の増加: 3次元に拡張すると問題はさらに難しくなる。特に、格子を構成するベクトルのみが与えられ、すべての格子点が与えられない場合、ターゲットに最も近い点を見つけても、その周辺の他の格子点と比較して本当に最も近いかを確認する必要がある [116]。
  2. 格子点の数の爆発的増加:
    1. 2次元(半径 の円)では、円内の格子点の数は に比例する [117]。
    2. 3次元(球)では、球内の点の数は に比例する [117]。
    3. 次元数が増加するにつれて、格子点の数は爆発的に増加する [118]。
  3. CVPの計算量:
    1. 3次元ではCVPは容易であり、100次元でも管理可能である [118]。
    2. しかし、提案されている将来の暗号方式では約1000次元が使用される [119]。
    3. 1000次元で一つの方向に一歩踏み出すと、他の999次元では誤った方向に進む可能性がある [119]。
    4. このような高次元では、良い基底ベクトルセットを知らない限り、最も強力なコンピューターにとっても最も近い点を見つけることが極めて困難になる [121]。

4.3. 格子ベース暗号によるデータ暗号化と復号 [121]

  1. 暗号化の仕組み:
    1. 各個人は、格子を記述する良い(扱いやすい)ベクトルセットを秘密裏に保持する [122]。
    2. 公開されるのは、扱いにくいベクトルセットによって記述された格子のみである [122]。
    3. メッセージを送信する場合、受信者の格子上の点(例:数値7に対応する点)を選択する [123]。
    4. その点にランダムなノイズを加え、メッセージが正確な格子点ではなく、その近傍に位置するようにする [124]。
  2. 復号の仕組み:
    1. 受信者は、メッセージポイントに最も近い格子点を特定する必要がある [125]。
    2. 1000次元において、この特定は、良いベクトルセットを知らない限り極めて困難である [125]。
    3. 受信者は良いベクトルセットを持っているため、復号は容易であるが、他の者にとっては困難である [126]。
  3. 耐量子性: この問題は、通常および量子コンピューターの両方にとって解決が極めて困難であると現在考えられている [127]。

4.4. 未来のセキュリティと研究者への感謝 [128]

  1. 研究者の役割: 舞台裏では、研究者、数学者、暗号学者の軍隊が活動している [128]。
  2. セキュリティの確保: 彼らは、機密データが秘密に保たれることを保証する [129]。
  3. 社会への貢献: 彼らは、政府による大規模監視を回避し、重要インフラを保護し、量子コンピューターが発明されなかったかのように生活できるようにすることで、未来の安全を維持する「陰のヒーロー」である [130]。

5. スポンサーシップと学習の推奨 [132]

5.1. 量子コンピューターとAIの将来展望 [132]

  1. 将来の役割: 量子コンピューターとAIチャットボットは、今後数十年の我々の生活において、実装方法が正確には分からなくとも、ますます大きな役割を果たすことが明確である [132]。
  2. 学習の重要性: それらがどのように機能するかを今学ぶことが重要である [133]。

5.2. Brilliantによる学習機会の紹介 [133]

  1. 量子アルゴリズムコース: 動画のスポンサーであるBrilliantには、MicrosoftとAlphabet Xが共同開発した量子アルゴリズムに関する素晴らしいコースがある [133]。
    1. 受講者は、量子ゲートをシミュレートし、レッスン内で実際の量子アルゴリズムを記述・実行できる [134]。
  2. 暗号解読と統計: 暗号の作成と解読は統計の問題であり、強力な統計的推論スキルは、数学やコンピューターサイエンスのほぼすべてのトピックを習得するために不可欠である [135]。
  3. データ分析コース: Brilliantのデータ分析コースは、統計の主要概念を迅速に習得するのに役立つ [137]。
    1. このコースは、ビジネスモデルなどの日常的な状況を使用して統計の主要概念を説明し、インタラクティブであるため、データ視覚化に実践的に取り組むことができる [138]。
  4. Brilliantの特徴: Brilliantは、数学、コンピューターサイエンス、データ分析のいずれにおいても、基礎を核となる構成要素に分解する方法を知っている点が際立っている [140]。
  5. 無料トライアルと割引:
    1. Brilliantの提供するすべてを30日間無料で試用できる [142]。
    2. この動画の視聴者向けに、Brilliantは年間プレミアムサブスクリプションの20%割引を、最初にサインアップした200名に提供する [144]。
    3. リンクは説明欄に記載されている [143]。