暗号学における鍵長
鍵長(キーサイズ)とは暗号鍵のビット数であり、総当たり攻撃への耐性を左右する。アルゴリズム設計との関係や、共通鍵方式と公開鍵方式における違いを解説する。
概要
暗号学において、鍵長(キーサイズともいう)とは、秘密鍵に含まれるデータ量を指し、通常はビット単位で測定される。鍵とは、暗号アルゴリズムがデータの暗号化、復号、署名、または検証に用いる秘密の値である。すなわち、鍵はアルゴリズムが適用する特定の変換を決定する。一般に鍵長が大きいほど、全数探索によって鍵を推測することは困難になるが、鍵長はセキュリティ全体を左右する要因の一つにすぎない。
特性と測定
鍵長はビット数(たとえば128ビット)で表され、利用可能な異なる鍵の最大数に対応する。nビットの鍵は最大で2^n通りの異なる値を表現できるため、総当たり攻撃ではそれらの候補の大きな割合を試す必要がある。実際の耐性は、計算能力、アルゴリズムの効率、ならびに攻撃者が推測を高速化する特殊な手法やハードウェアを利用できるかどうかに依存する。将来の脅威を考慮する際には、量子アルゴリズムの影響も考慮しなければならない。量子探索手法は総当たり探索の計算量を低減し、ビット長が実効的な安全性にどう換算されるかを変化させる。
歴史と発展
歴史的には、初期の商用上および政府上の制約により、一部の暗号方式では短い鍵が用いられた。たとえば、古いシステムでは40~64ビットの共通鍵が一般的だったが、後に分散型または専用の総当たり攻撃に対して脆弱であることが示された。20世紀後半に注目を集めた実用的な解読成功事例は、より長い鍵と新たな標準の採用を促した。56ビット鍵のデータ暗号化標準(DES)は、トリプルDESなどのより強力な構成へと移行し、最終的には128、192、256ビット鍵をサポートするAES(Advanced Encryption Standard)へと引き継がれた。輸出規制、性能上のトレードオフ、実装上の選択は、いずれも鍵長の変遷に影響を与えた。
代表的な鍵長と例
現在一般的に推奨される鍵長は、アルゴリズムが共通鍵方式か非対称方式かによって異なる。
- 共通鍵暗号:一般的な鍵長は128、192、256ビットである。128ビットの共通鍵は、従来型コンピュータによる総当たり攻撃に対して安全と見なされている。一方、192ビットおよび256ビットの鍵はより大きな安全余裕を提供し、機密性が非常に高いデータにしばしば用いられる。一部の国家標準および政府機関は、最高レベルの最高機密情報まで保護する用途について、192ビットまたは256ビット鍵のAESを推奨または承認している。
- 非対称(公開鍵)方式:公開鍵アルゴリズムは、異なる数学的問題に安全性の基礎を置くため、共通鍵方式と同等の強度を得るにははるかに長い鍵を必要とする。たとえばRSA鍵は一般に2048ビット以上である。楕円曲線暗号は、はるかに短い鍵で同程度の強度を実現し、たとえば256ビットの楕円曲線は約3072ビットのRSA鍵と同等の安全性を提供しうる。詳細は公開鍵およびRSAの項目を参照。
量子に関する考慮事項
量子コンピューティングは、鍵長と安全性の対応関係を変化させる。グローバーのアルゴリズムは、構造化されていない探索に対して平方根の高速化をもたらし、共通鍵の実効ビット強度を半減させる。たとえば128ビット鍵は、十分に大規模な量子コンピュータを持つ攻撃者に対しては、およそ64ビットの安全性しか提供しない可能性がある。そのため、将来想定される量子の脅威に対して長期的な機密性を維持するには、256ビットなどのより長い共通鍵が推奨される。一方、広く使われている公開鍵アルゴリズムの大半はショアのアルゴリズムに対して脆弱であり、量子耐性を備えた代替手段を必要とする。
重要な区別と注意点
鍵長だけで安全性が保証されるわけではない。アルゴリズムに構造的な弱点がある場合、鍵が不十分な乱数性で生成される場合、あるいはサイドチャネル攻撃によって秘密情報が漏えいする場合には、長い鍵も有効ではない。プロトコルの設計、鍵管理、実装の正確性も同様に重要である。鍵長を選定する際には、現在の計算能力、保護対象データの想定寿命、相互運用性の要件、信頼できる標準化団体による指針を考慮する必要がある。総当たり攻撃の概念についてはブルートフォースを、量子コンピューティングの影響については量子コンピュータを参照。
実務的な指針や最新の推奨事項については、暗号学の概要など、認知された暗号標準および信頼できる情報源を参照するとよい。個別のアルゴリズムについては、AESおよびRSAの項目も参照できる。
著者
AlegsaOnline.com 暗号学における鍵長 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/53117