硬體安全
下列關於以「恆定時間」實作密碼處理時應遵守的事項,何者正確?
- A整個處理一定要在1秒內結束
- B在處理中途停止時鐘
- C使條件分支的方向、迴圈次數,以及讀寫記憶體的位址,不隨機密值而改變
查看答案與解析
正確答案:C. 使條件分支的方向、迴圈次數,以及讀寫記憶體的位址,不隨機密值而改變
恆定時間是指處理時間不隨機密值而改變。若if敘述的方向因機密值而變,時間就會改變;若陣列索引由機密值決定,快取的痕跡就會改變。因此採取的寫法是:不用條件分支,而以位元運算同時算出兩邊的結果再選擇,以及不以機密值查表等。也需要確認編譯器的最佳化不會產生分支。
- A. 不是指固定的秒數。
- B. 並不是停止時鐘。
- C. 正確。使時間與快取的痕跡與機密脫鉤。