暗号学において、鍵サイズまたは鍵長とは、暗号アルゴリズム(暗号など)で使用される鍵のビット数を指します。
鍵長は、アルゴリズムのセキュリティの上限(つまり、アルゴリズムに対する既知の最速攻撃の対数尺度)を定義します。なぜなら、すべてのアルゴリズムのセキュリティは総当たり攻撃によって侵害される可能性があるからです。理想的には、アルゴリズムのセキュリティの下限は、設計上、鍵長と等しくなります(つまり、アルゴリズムの設計によって、鍵長に内在するセキュリティの度合いが損なわれることはありません)。
ほとんどの対称鍵暗号アルゴリズムは、鍵長と同等のセキュリティを持つように設計されています。しかし、設計後に新たな攻撃が発見される可能性があります。例えば、Triple DESは168ビットの鍵を持つように設計されましたが、現在では2¹¹²の複雑さを持つ攻撃が知られています(つまり、Triple DESのセキュリティは現在112ビットしかなく、鍵の168ビットのうち56ビットが攻撃によってセキュリティに対して「無効」になっています)。とはいえ、セキュリティ(「アクセスするために必要な労力」として理解される)が特定のアプリケーションにとって十分であれば、鍵長とセキュリティが一致しているかどうかは問題ではありません。これは非対称鍵暗号アルゴリズムにとって重要です。なぜなら、この特性を満たすアルゴリズムは知られていないからです。楕円曲線暗号は、鍵長の約半分の有効セキュリティを持つ最も近いアルゴリズムです。
鍵は暗号の動作を制御するために使用され、正しい鍵のみが暗号化されたテキスト(暗号文)を平文に変換できます。一般的に使用されている暗号はすべて、公開されているアルゴリズムに基づいているか、オープンソースであるため、分析攻撃(つまり、使用されているアルゴリズムやプロトコルに「構造的な弱点」がある)がない限り、また鍵が他の方法で入手できない(盗難、恐喝、コンピュータシステムの侵害などによる)ことを前提とすれば、システムのセキュリティは鍵の入手難易度によってのみ決まります。システムのセキュリティは鍵のみに依存するという広く受け入れられている考え方は、オーギュスト・ケルクホフス(1880年代)とクロード・シャノン(1940年代)によって明確に定式化されており、それぞれケルクホフスの原理とシャノンの格率として知られています。
したがって、鍵は総当たり攻撃(あらゆる暗号化アルゴリズムに対して可能な攻撃)が実行不可能となるほど十分に大きくなければなりません。つまり、実行に時間がかかりすぎたり、メモリを大量に消費したりすることになります。シャノンの情報理論に関する研究では、いわゆる「完全な秘匿性」を実現するには、鍵の長さはメッセージの長さ以上でなければならず、一度だけ使用する必要があることが示されました(このアルゴリズムはワンタイムパッドと呼ばれます)。こうした点と、そのような長い鍵を管理する実際的な困難さを考慮して、現代の暗号化の実践では、暗号化の要件として完全な秘匿性の概念を捨て、代わりに計算上の安全性に焦点を当てています。計算上の安全性とは、暗号化されたテキストを解読するための計算要件が攻撃者にとって実行不可能でなければならないというものです。
暗号化システムは、多くの場合、ファミリーに分類されます。一般的なファミリーには、対称システム(例:AES)と非対称システム(例:RSAおよび楕円曲線暗号[ECC])があります。これらは、使用される中心的なアルゴリズム(例:ECCおよびFeistel暗号)に基づいて分類される場合もあります。これらのそれぞれは暗号化の複雑さのレベルが異なるため、使用されるアルゴリズムに応じて、同じセキュリティレベルでも鍵のサイズが異なるのが一般的です。たとえば、非対称RSAを使用した1024ビット鍵で得られるセキュリティは、対称アルゴリズムの80ビット鍵とほぼ同等のセキュリティであると考えられています。[ 1 ]
時間の経過とともに達成される実際のセキュリティレベルは、計算能力の向上やより強力な数学的解析手法の登場によって変化します。そのため、暗号学者は、アルゴリズムや鍵長に潜在的な脆弱性の兆候が見られる場合、より長い鍵長やより複雑なアルゴリズムに移行する傾向があります。例えば、2007年5月時点では 1039 ビットの整数が、11 か月かけて 400 台のコンピュータを使用して特殊数体篩によって素因数分解されました。 [ 2 ]素因数分解された数は特殊な形式であり、特殊数体篩は RSA 鍵には使用できません。この計算は、700 ビットの RSA 鍵を解読することとほぼ同等です。しかし、これは、安全なオンライン商取引で使用される 1024 ビット RSA 鍵は、近い将来解読可能になる可能性があるため、廃止すべきであるという事前警告かもしれません。暗号学教授のArjen Lenstra氏は、「前回は、特殊数から非特殊数、つまり素因数分解が困難な数に一般化するのに 9 年かかりました」と述べ、1024 ビット RSA 鍵はもう時代遅れかと尋ねられたとき、「その質問に対する答えは、間違いなくイエスです」と答えました。[ 3 ]
2015年のLogjam攻撃は、 1024ビット以下の一般的な素数モジュラスが1つまたは少数しか使用されていない場合にDiffie-Hellman鍵交換を使用することのさらなる危険性を明らかにした。当時ある程度一般的だったこの方法は、少数の素数を攻撃する代わりに、大量の通信を侵害することを可能にする。[ 4 ] [ 5 ]
対称暗号がアルゴリズムの構造的な弱点を悪用しても現時点では解読不可能であっても、総当たり攻撃と呼ばれる手法で鍵空間全体を網羅的に調べることが可能かもしれない。しかし、対称鍵が長くなるほど総当たり攻撃に必要な作業量は指数関数的に増加するため、十分に長い対称鍵であれば、この攻撃手法は非現実的となる。
nビット長の鍵の場合、可能な鍵は 2 n通りあります。この数はn が増加するにつれて非常に急速に増加します。すべての可能な 128 ビット鍵を試すために必要な膨大な数の演算 (2 128 ) は、近い将来、従来のデジタル コンピューティング技術では実現不可能であると広く考えられています。 [ 6 ]しかし、グローバーのアルゴリズムを実行できる量子コンピュータであれば、可能な鍵をより効率的に検索できます。適切なサイズの量子コンピュータであれば、128 ビット鍵を 64 ビットのセキュリティにまで削減でき、これはおおよそDESと同等です。これが、 AES が256 ビット以上の鍵長をサポートしている理由の 1 つです。 [ a ]
IBMのLucifer暗号は、1974年にデータ暗号化標準(DES)の基盤として選定されました。Luciferの鍵長は128ビットから56ビットに短縮されましたが、NSAとNISTは当時、非政府機関の保護にはこれで十分だと主張しました。NSAは大規模なコンピューティングリソースと巨額の予算を有しており、Whitfield DiffieやMartin Hellmanなどの暗号学者は、このため暗号が非常に弱くなり、NSAのコンピュータが総当たり並列計算によって1日でDES鍵を解読できると不満を述べました。NSAはこれに反論し、DESを総当たりで解読するには「91年くらいかかる」と主張しました。[ 7 ]
しかし、90年代後半には、大企業や政府が購入できるような特注のハードウェアを使えば、DESは数日で解読できることが明らかになった。[ 8 ] [ 9 ]『Cracking DES』(O'Reilly and Associates刊)という本には、限られたリソースしか持たないサイバー市民権団体が総当たり攻撃で56ビットDESを破ることに1998年に成功したことが書かれている。EFF DESクラッカーを参照。この実証以前から、56ビットは一般的な対称アルゴリズムキーとしては長さが不十分だと考えられていた。そのため、ほとんどのセキュリティアプリケーションではDESはTriple DESに置き換えられた。Triple DESは168ビットキー(トリプルキー)を使用すると112ビットのセキュリティを持つ。[ 1 ]
2001 年に公開されたAdvanced Encryption Standard では、 128、192、または 256 ビットの鍵サイズが使用されています。多くの観察者は、量子コンピュータが利用可能になるまでは、 AESと同等の品質の対称アルゴリズムには 128 ビットで十分であると考えています。しかし、2015 年現在、米国国家安全保障局は量子コンピューティング耐性のあるアルゴリズムに切り替える予定であるとのガイダンスを発表しており、最高機密までの機密データには 256 ビットの AES 鍵を要求しています。[ 10 ]
2003年、米国国立標準技術研究所(NIST)は、 2015年までに80ビット鍵を段階的に廃止することを提案した。2005年時点では、80ビット鍵は2010年までしか使用が許可されていなかった。[ 11 ]
2015年以降、NISTのガイダンスでは「鍵合意に112ビット未満のセキュリティ強度を提供する鍵の使用は禁止されている」とされています。NISTが承認した対称暗号化アルゴリズムには、3つの鍵を使用するTriple DESとAESがあります。2つの鍵を使用するTriple DESとSkipjackの承認は2015年に取り消されました。NSAのFortezzaプログラムで使用されているSkipjackアルゴリズムは80ビットの鍵を使用しています。[ 1 ]
公開鍵暗号システムの有効性は、整数因数分解などの特定の数学的問題の難解さ(計算上および理論上)に依存します。これらの問題は解決に時間がかかりますが、通常は総当たり攻撃で考えられるすべての鍵を試すよりも高速です。したがって、非対称鍵は、対称鍵と同等の攻撃耐性を得るためには、より長くする必要があります。最も一般的な方法は、将来的に十分に強力な量子コンピュータに対して脆弱になると考えられています。
2015年以降、NISTはRSAの鍵長を最低2048ビットにすることを推奨している[ 12 ]。これは、少なくとも2002年以降広く受け入れられてきた最低1024ビットという推奨事項の更新である[ 13 ] 。
1024 ビット RSA キーは 80 ビット対称鍵と同等の強度を持ち、2048 ビット RSA キーは 112 ビット対称鍵と同等の強度を持ち、3072 ビット RSA キーは 128 ビット対称鍵と同等の強度を持ち、15360 ビット RSA キーは 256 ビット対称鍵と同等の強度を持ちます。[ 14 ] 2003 年にRSA Security は、1024 ビット鍵は 2006 年から 2010 年の間に解読可能になる可能性が高い一方、2048 ビット鍵は 2030 年まで十分であると主張しました。[ 15 ] 2020 年現在公開されている中で解読された最大のRSA鍵は、 829ビットのRSA-250である。[ 16 ]
有限体ディフィー・ヘルマン暗号方式は、同じ鍵サイズであればRSAとほぼ同等の鍵強度を持ちます。ディフィー・ヘルマン暗号を破るための作業係数は離散対数問題に基づいており、これはRSAの強度の根拠となる整数因数分解問題と関連しています。したがって、2048ビットのディフィー・ヘルマン鍵は、2048ビットのRSA鍵とほぼ同等の強度を持ちます。
楕円曲線暗号(ECC)は、同等のセキュリティを持つ非対称アルゴリズムの代替セットであり、同等の対称アルゴリズムの約2倍のビット数で、より短い鍵で同等のセキュリティを実現します。256ビットの楕円曲線ディフィー・ヘルマン(ECDH)鍵は、128ビットのAES鍵とほぼ同じ安全係数を持っています。[ 12 ] 109ビット長の鍵を使用した楕円鍵アルゴリズムで暗号化されたメッセージは、2004年に解読されました。[ 17 ]
NSAは以前、機密情報保護にはSECRETレベルまで256ビットECC、TOP SECRETには384ビットを推奨していました。[ 10 ] 2015年には、2024年までに量子耐性アルゴリズムに移行する計画を発表し、それまではすべての機密情報に384ビットを推奨しています。[ 18 ]
量子コンピューティングにおける最もよく知られた2つの攻撃手法は、ショアのアルゴリズムとグローバーのアルゴリズムに基づいている。この2つのうち、ショアのアルゴリズムは現在のセキュリティシステムにとってより大きな脅威となる。
ショアのアルゴリズムの派生アルゴリズムは、 RSA、ディフィー・ヘルマン、楕円曲線暗号を含むすべての主流の公開鍵暗号アルゴリズムに対して有効であると広く推測されています。量子コンピューティングの専門家であるジル・ブラッサール教授は次のように述べています。「RSA整数を因数分解するのに必要な時間は、その整数を単一のRSA暗号化の法則として使用するのに必要な時間と同程度です。言い換えれば、量子コンピュータでRSAを解読するのにかかる時間は(乗法定数を除いて)古典コンピュータで正当に使用するのにかかる時間と変わりません。」ショアのアルゴリズムを実行できる十分な大きさの量子コンピュータが利用可能になれば、これらの公開鍵暗号アルゴリズムは鍵サイズに関係なく安全ではないというのが一般的な見解です。この攻撃が意味するのは、電子商取引やインターネットバンキングを保護するために広く使用されているSSLや、機密性の高いコンピューティングシステムへのアクセスを保護するために使用されているSSHなど、現在の標準ベースのセキュリティシステムを使用して暗号化されたすべてのデータが危険にさらされるということです。公開鍵暗号アルゴリズムを使用して保護された暗号化データはアーカイブすることができ、後で解読される可能性があります。これは一般的に遡及的復号または「今すぐ収集して後で復号する」として知られています。
主流の対称暗号(AESやTwofishなど)や衝突耐性ハッシュ関数( SHAなど)は、既知の量子コンピューティング攻撃に対してより高いセキュリティを提供すると広く推測されています。これらは、グローバーのアルゴリズムに対して最も脆弱であると広く考えられています。ベネット、バーンスタイン、ブラッサード、ヴァジラニは1996年に、量子コンピュータ上でのブルートフォース鍵検索は、古典的な場合の約2 nと比較して、基となる暗号アルゴリズムの約2 n /2回の呼び出しよりも速くはならないことを証明しました。[ 19 ]したがって、大規模な量子コンピュータが存在する場合、nビット鍵は少なくともn /2ビットのセキュリティを提供できます。量子ブルートフォースは、鍵長を2倍にすることで簡単に破られますが、通常の使用では追加の計算コストはほとんどありません。これは、量子コンピュータに対して128ビットのセキュリティ評価を達成するには、少なくとも256ビットの対称鍵が必要であることを意味します。前述の通り、NSAは2015年に量子耐性アルゴリズムへの移行を計画していると発表した。[ 10 ]
2016年の量子コンピューティングに関するFAQで、NSAは次のように断言した。
「十分な大きさの量子コンピュータが構築されれば、鍵確立やデジタル署名に広く使用されているすべての公開鍵アルゴリズムを無効化できるだろう。[...] 量子コンピューティング技術は、現在広く使用されている公開鍵アルゴリズムよりも、対称鍵アルゴリズムに対してはるかに効果が低いことが一般的に認められている。公開鍵暗号は、将来出現する可能性のある量子コンピュータから保護するために基本的な設計変更を必要とするが、対称鍵アルゴリズムは、十分な大きさの鍵を使用すれば安全であると考えられている。[...] 公開鍵アルゴリズム(RSA、Diffie-Hellman、[楕円曲線Diffie-Hellman] ECDH、[楕円曲線デジタル署名アルゴリズム] ECDSA)はすべて、十分な大きさの量子コンピュータによる攻撃に対して脆弱である。[...] NSA以外では、興味深い量子耐性のある公開鍵アルゴリズムがいくつか提案されているが、NISTによって標準化されたものはなく、NSAは現時点で商用の量子耐性標準を規定していない。NSAは、NISTが主導的な役割を果たすことを期待している。広く受け入れられ、標準化された量子耐性アルゴリズムセットを開発するための取り組み。[...] 暗号コミュニティの関心の高さを考えると、今後10年以内に量子耐性アルゴリズムが広く利用可能になることを期待しています。[...] AES-256およびSHA-384アルゴリズムは対称暗号であり、大規模な量子コンピュータによる攻撃に対して安全であると考えられています。[ 20 ]
2022年のプレスリリースで、NSAは次のように通知した。
「暗号解読に関連する量子コンピュータ(CRQC)は、現在使用されている公開鍵システム(非対称暗号と呼ばれることもある)を破る可能性を秘めている。量子コンピューティングにおける外国の取り組みを考慮すると、CRQCが実現可能な現実となった場合に、国家安全保障システム(NSS)および関連資産の持続的な保護を確実にするために、[量子耐性] QRアルゴリズムへの移行を計画、準備、予算化する時期が今である。」[ 21 ]
2022年9月以降、NSAは、2016年1月に最初に開始された商用国家安全保障アルゴリズムスイート(現在はCNSA 1.0と呼ばれている)から商用国家安全保障アルゴリズムスイート2.0(CNSA 2.0)に移行しており、両方とも以下に要約されています。[ 22 ] [ b ]
CNSA 2.0
CNSA 1.0
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)