鍵空間(暗号学)|可能な暗号鍵の集合と安全性
鍵空間とは、暗号アルゴリズムで使用可能なすべての鍵の集合である。その大きさ、分布、弱い鍵の有無は、推測攻撃や総当たり攻撃への耐性を左右する。
概要
暗号学において、鍵空間とは、暗号アルゴリズムを初期化するために使用できる、可能なすべての鍵の完全な集合を指す。試行によって秘密鍵を発見する難しさは、候補が何通り存在するかに直接左右されるため、これは基本的な概念である。具体例として、10ビットの文字列を受け付けるアルゴリズムでは、鍵空間は210=1024通りの鍵となる。
大きさ、エントロピー、特性
nビット鍵の鍵空間の大きさは、通常2nと表される。セキュリティの実務では、ビット単位で測る鍵エントロピーという観点でも語られる。より大きな鍵空間は、総当たり攻撃のようなブルートフォース検索や全数探索に必要な理論上のコストを高める。ただし、実効的な耐性は、鍵がどのように選択・使用されるかにも依存する。良い鍵空間の重要な性質は次のとおりである。
- 基数が大きいこと、すなわち可能な鍵が多数あること。
- 使用可能な鍵が一様に分布し、特定の部分集合だけが推測しやすくならないこと。
- 予測可能または安全でない動作を生む個別の鍵である弱い鍵が、最小限であるか存在しないこと。
- 鍵生成のエントロピーが高く、鍵を予測できないこと。
歴史と例
初期の共通鍵暗号は、現代の基準では比較的短い鍵を用いていた。このため、計算能力の向上に伴って全数探索が実行可能になった。今日のブロック暗号と公開鍵システムでは、はるかに大きい鍵長が規定されている。例えば、広く使われる共通鍵方式の標準は、長期的な安全性を達成するため、数百ビット単位の鍵を提供している。鍵空間の数値上の大きさは、ブルートフォースに対する理論的耐性を比較する簡明で有用な指標であり続けるが、暗号強度全体を決める要素の一つにすぎない。
実用上の重要性と攻撃
攻撃者は、小さい鍵空間や不適切に構成された鍵空間を、全数探索、事前計算表、あるいは鍵が再利用されるか低エントロピーである場合のレインボーテーブルによって悪用する。ハードウェアや分散計算の進歩によりブルートフォースのコストは低下するため、実務者は、より長い鍵、鍵ストレッチング技術、パスワードから得られるエントロピーを増幅する鍵導出関数によって、実効的な鍵強度を高める。サイドチャネル攻撃やアルゴリズム上の弱点は、鍵空間の大きさだけから推測される水準よりも実用上の安全性を低下させうる。
設計上の考慮点と鍵管理
設計者は、例外的な弱い鍵がなく、十分に候補が存在する均一な鍵空間を目指し、鍵生成には良質な乱数源を用いる。運用面では、生成、保管、ローテーション、破棄を含む安全な鍵管理は、適切に大きい鍵空間をもつアルゴリズムを選ぶことと同じく重要である。人間が選ぶパスワードが必要な場合、システムはソルト、反復、ストレッチングを組み合わせ、有効な探索コストを増大させ、小さい鍵空間の影響を緩和する。
技術的な詳細や標準については、暗号アルゴリズム、エントロピー推定、安全な鍵生成の実践に関する資料を参照(背景、アルゴリズム設計、鍵の概念、符号化、ビット表現、攻撃、弱い鍵の問題)。
関連項目
著者
AlegsaOnline.com 鍵空間(暗号学)|可能な暗号鍵の集合と安全性 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/53118