What is a 'known answer test' (KAT)? Came across this concept on while reading up on the key-encapsulation protocol SIKE but haven't been able to find a good explanation of what a known answer test is formally. 

What is a known answer test, and why is it useful?
What is a known answer test


It appears to be a publicly available set of parameters and values that allow you to check the correctness of an implementation.

If so, then they're more commonly referred to as "test vectors".


  why is it useful?


Since the output of cryptographic algorithms are almost invariably supposed to "look random", it is very hard to know whether or not things are functioning correctly by just looking at the output. 

With outputs that are known to be correct, you can supply the corresponding parameters to the software and test your outputs against the known correct answers. 

If the two do not match, then something is wrong with the implementation that you're testing.

If the two do match, then it is probable that the implementation is (at least partially) correct. 

It is possible to pass one test and fail another due to some kind of programming error, so a passing unit test does not mean that the implementation is guaranteed correct with 100% certainty (but it is probably correct with high probability if it passes all of the tests).