メインコンテンツまでスキップ

3. 鍵 (Keys)

HMAC の鍵は任意の長さをとり得る (B バイトより長い鍵は、まず H を用いてハッシュされる)。しかし、L バイト未満の鍵は、関数のセキュリティ強度が低下するため、強く推奨されない。L バイトより長い鍵は許容されるが、その追加の長さによって関数の強度が有意に向上するわけではない。(鍵のランダム性が弱いと考えられる場合には、より長い鍵が望ましい場合がある。)

鍵は乱数から選択する (あるいは、乱数のシードで初期化された暗号学的に強い疑似乱数生成器を用いる) 必要があり、定期的に更新すべきである。(現在の攻撃は、攻撃が実質的に実行不可能であるため、鍵の変更に関する具体的な推奨頻度を示していない。しかし、定期的な鍵の更新は、関数および鍵の潜在的な弱点に対する防御に役立ち、鍵の漏洩による被害を限定するという、基本的なセキュリティ実践である。)