ツァイラーの量子世界に関する本の一節を読んだところです。
私の質問は次のとおりです。量子コンピュータが存在するとします。量子コンピューターがShorのアルゴリズムを使用できるとすると、ユーザーが安全なRSA暗号化のために今日使用しなければならない鍵の長さはどれですか。
適切なサイズのRSA鍵は、Shorのアルゴリズムを使用して同等のサイズの量子コンピューターによって破壊されます。キーサイズに関係なく、量子コンピュータに抵抗したい場合は、RSAを使用しないでください。
存続するRSAの変種の唯一の主張は、いくつかの Bernsteinによるスライド で、それぞれ4096ビットの2 ^ 31素数で構成される2 ^ 43ビットのRSAキーについて言及しています。これは明らかに途方もなく非現実的です。
具体的な分析では、2 ^ 31の4096ビットプライムを使用したRSAは、すべての既知の量子攻撃に対して2 ^ 100を超えるセキュリティを提供することが示唆されています。キーはほとんどハードドライブに収まります。
量子コンピューターを生き残る非対称暗号化が必要な場合は、他の場所を調べる必要があります。たとえば、コードまたはラティスベースの暗号化は、QCに対して安全でありながら、妥当な特性を備えていると考えられています。 pqcrypto.org は、QCの影響と、ポスト量子暗号方式としてどのアルゴリズムクラスが有用であるかについて、適切な概要を示します。
汎用量子コンピューターをスケールアップして、適度なキーサイズ(たとえば、b = 128ビット)のRSAを実行可能に攻撃できる場合、任意のキー長のRSAは安全ではありません(またはその規模のシステムの構築を許可するが、より大きなシステムの構築を妨げるいくつかの主要な理論的障壁がない限り、まもなくそうなるでしょう)。 1024ビットのRSAを攻撃するには、b = 1024キュービットの量子コンピューターが必要です。次に、Shorのアルゴリズムを使用して係数を因数分解することにより、O(b ^ 3)のRSAを破ることができるはずです。 b = 4096ビットRSAの場合、量子システムのスケールアップはわずか(量子ビット数で4倍)で、実行時間は64倍悪いだけです。最良のサブ指数因数分解アルゴリズムを使用する4096ビットのキーが100 000 000 000(つまり1011)1024ビットキーよりも強力です。また、暗号システムの通常のユーザーについては、 1024ビットのRSAの暗号化/復号化時間 が1024/4096ビットのRSAの約64倍高速であることを意味します。 RSAの古典的なユーザーは、量子コンピューティングの攻撃者よりもはるかに有利です。
ただし、Shorのアルゴリズムを実行して大きな整数を因数分解できる量子コンピューターは遠い道のりです。 Shorのアルゴリズムの最高の公開された実行は、2001年に15を3x5に因数分解し、別のグループが21を3x7(現在の記録)に因数分解するまでに10年以上かかりました。 DWaveシステムによる量子アニーリングシステムは、Shorのアルゴリズムを実行できる汎用の量子コンピューターではありません。 これらは1つの特定の問題しか解決できません-Dwave問題であり、最適化された従来のアニーリング問題よりも速く解決することは示されていません 。
ただし、量子コンピューティングが心配な場合は、整数分解または離散対数に基づいてPKEシステムから移行する必要があります(RSA/DSA/El Gamalも含む)楕円曲線の場合)は、Shorのアルゴリズム(または楕円曲線のわずかに変更されたバージョン)によって攻撃される可能性があります。
Shorのアルゴリズムに耐性のあるPKEのタイプが存在しますしかし、どれも広く使用されているようには見えません。
最も有望なものの1つは McEliece暗号システム です。これはRSAよりも高速であり、公開鍵が通常約半分のメガバイトであることを除いて、鍵のサイズに応じてセキュリティを急速に拡大できます。
もう1つは NTRUEncrypt で、妥当なキーサイズとパフォーマンスを備えていますが、RSAほど多くの暗号化分析を行っていません(そして特許を取得しています)。
新しい量子アルゴリズムが登場し、これらのShor耐性PKEを破壊する保証はありませんが、予期されていないことに注意してください。これらのアルゴリズムがNP困難な問題に基づいていることを示すことができるため、新しい量子アルゴリズムによって破られた場合、これは複雑性理論の大きな進歩となります(P = NPまたはP!= NPを解くほど大きくないが、近い) 。
最後に、量子コンピューティングに関して対称暗号化と非対称暗号化の違いに注意する必要があります。対称暗号化(ブロック暗号など)の場合、 グローバーのアルゴリズム を使用すると、複雑な対称鍵を破ることができますO(N) in O(sqrt(N))時間。128ビットのキーを意味し、O(2128)古典的に総当たりする時間は、O(264)適切な量子コンピューターで時間。したがって、対称鍵のサイズやハッシュのサイズなどのコンテキストでは、古典的に必要な長さを2倍にするだけです(安全のためにAES-128からAES-256に移行します)。
CodesInChaosで言及されたスライドでは、マルチプライムRSA暗号(広く使用されていないもの)を実行して、Shorのアルゴリズムに関するRSAの主要な問題を回避する方法を詳しく説明しています。素数の素数は、RSAが任意の指定された鍵サイズを暗号化できるのと同じ速さです。
これを回避するために、DJBで説明されている方法では、マルチプライムRSAを使用して、より多くのキーマテリアルを使用しながら、より高速な暗号化を可能にします。
どのくらいより? 8テラバイトで、今日とほぼ同じレベルのセキュリティを実現できます。