既知解テスト(KAT)
暗号モジュールが固定入力を暗号化・ハッシュ・署名し、事前に計算した期待値と照合する自己テスト。
暗号のコードには厄介な性質がある。壊れた出力も、正しい出力と同じくランダムに見えるのだ。鍵スケジュールにバグのあるAESもノイズを出す。ただし誤ったノイズで、別の実装が復号を試みるまで誰も気づかない。KATは最も単純な安全策で、テストベクタでアルゴリズムを動かし、答え合わせをする。
FIPS 140ではこれが必須だ。認証されたモジュールは、承認済みの全アルゴリズムについて起動時にKATを実行し、一つでも失敗すれば暗号サービスをすべて拒否しなければならない。自己テストに落ちたHSMは、動き続けずエラー状態に入る。テストベクタは通常NISTのアルゴリズム検証プログラムから来ており、CMVPがモジュールを認証するときも同じものが使われる。