硬體安全的進階主題與趨勢
在ML-KEM的解封裝中,會由以私密金鑰解密所收到之密文的結果重新產生密文,並與收到的密文比較是否一致。關於這部分實作的注意事項,正確的是下列何者?
- A不一致時立即中止處理,並把哪一個位元組不同當作詳細的錯誤回傳給對方,能讓對方知道原因,既貼心又安全
- B只要使用能抵抗量子電腦的方式,比較是否一致的做法就與安全性無關,因此應選擇最快的方法
- C比較處理不論機密為何都以相同時間進行,不一致時也不回傳錯誤,而是回傳由機密值產生的無關金鑰,使兩者無法被區分
查看答案與解析
正確答案:C. 比較處理不論機密為何都以相同時間進行,不一致時也不回傳錯誤,而是回傳由機密值產生的無關金鑰,使兩者無法被區分
與重新產生的密文比較的步驟,是為了防範送出特製密文並觀察反應的攻擊(選擇密文攻擊)。若一致與否從比較處理的時間,或表示不一致的錯誤洩漏到外部,這本身就會成為攻擊的線索,私密金鑰可能被逐步推測出來。因此FIPS 203規定,不一致時不回傳錯誤,而是回傳由機密值與密文產生的另一把金鑰(隱式拒絕),實作上則以恆定時間進行比較與選擇結果的處理。即使方式能抵抗量子電腦,只要機密從實作的時間或功耗洩漏,安全性就會喪失;2024年前後也有人報告了除法時間取決於機密的實作問題(KyberSlash)。
- A. 詳細的錯誤與提早中止,會成為外部得知一致與否的線索。
- B. 方式在數學上的強度,與實作洩漏的資訊是不同的問題。
- C. 正確。無論從時間或錯誤,都不讓外部看出是否一致。