弱鍵
「フラット」な鍵空間 (つまりすべての鍵が同等に強い) を持つという目標は、常に暗号設計の目標である。DESの例のように、弱鍵がすべて識別済みか識別可能であれば、多少の存在は許容できる場合がある。未知の弱鍵があるアルゴリズムは信頼感に乏しい。
弱鍵の不注意な使用を防ぐ対策には以下の2つがある:
生成した鍵を既知の弱鍵の一覧と突き合わせる、または鍵スケジュールに弱鍵を却下する処理を組み込む。
弱鍵の数が (鍵空間の大きさと比べて) 非常に少ないと分かっている場合、鍵を一様にランダムに生成することで、弱鍵となる確率が (既知の) 非常に小さな数になることが確実になる。
弱鍵が多数存在することは、どのような暗号設計においても深刻な欠陥である。ランダムに生成された鍵が弱鍵となり、暗号化されたメッセージのセキュリティが損なわれる可能性が高くなる (ひょっとするとあまりにも高くなりすぎる) ためである。またそのような場合、ランダムに生成された鍵の弱さをチェックするのに時間がかかるので、「効率性」という手っ取り早い利益へと駆り立てられることになる。
しかし弱鍵は、ブロック暗号をセキュアな暗号学的ハッシュ関数の構築を意図した暗号利用モードで使用する (Davies–Meyer等) 場合等、アドバーサリが使用する鍵の選択をある程度制御できる場合に問題となることの方が多い。