Encryption

什麼是“已知答案測試”(KAT)?

  • August 1, 2018

在閱讀密鑰封裝協議SIKE時遇到了這個概念,但無法找到對已知答案測試的正式解釋。

什麼是已知答案測試,它為什麼有用?

什麼是已知答案測試

它似乎是一組公開可用的參數和值,可讓您檢查實現的正確性。

如果是這樣,那麼它們通常被稱為“測試向量”。

為什麼有用?

由於密碼算法的輸出幾乎總是被認為是“隨機的”,因此僅通過查看輸出就很難知道事情是否正常執行。

對於已知正確的輸出,您可以向軟體提供相應的參數,並根據已知的正確答案測試您的輸出。

如果兩者不匹配,那麼您正在測試的實現有問題。

如果兩者確實匹配,那麼實現很可能(至少部分)正確。

由於某種程式錯誤,一個測試通過而另一個測試失敗是可能的,因此單元測試通過並不意味著實現100%肯定是正確的(但如果它通過了所有測試,它很可能是正確的測試)。

引用自:https://crypto.stackexchange.com/questions/61231