密碼學基礎與應用
在TLS 1.3等協定中,不直接把以ECDHE金鑰交換得到的共享秘密當作加密金鑰,而是通過HKDF這類金鑰衍生函數(KDF)來產生金鑰。其理由適當的是下列何者?
- A通過金鑰衍生函數後,共享秘密對量子電腦也會變得安全
- B金鑰交換得到的值太短,因此刻意讓計算耗時,以拖慢暴力破解
- C金鑰交換得到的值不一定是均勻的亂數,因此要轉換成沒有偏差的金鑰,並依用途取出不同的金鑰
查看答案與解析
正確答案:C. 金鑰交換得到的值不一定是均勻的亂數,因此要轉換成沒有偏差的金鑰,並依用途取出不同的金鑰
由金鑰交換得到的共享秘密,例如橢圓曲線上點的座標,並不一定所有位元都均勻隨機。HKDF使用HMAC,先從共享秘密取出沒有偏差的偽隨機金鑰(Extract),再把它連同「用戶端到伺服器的加密用」等標籤一起展開(Expand),產生所需數量與長度的金鑰。各用途使用獨立的金鑰,可讓一把金鑰的問題不易擴及其他用途。由密碼產生金鑰的PBKDF2或Argon2會刻意加重計算,但HKDF是以熵足夠大的輸入為前提的輕量處理。
- A. 金鑰衍生函數不會改變金鑰交換本身對量子電腦的強度。要抵抗量子電腦,必須更換金鑰交換的方式。
- B. 刻意加重計算,是由密碼產生金鑰的PBKDF2或Argon2的想法。金鑰交換的輸出本身已具有足夠的長度與熵。
- C. 正確。以去除偏差的Extract,與產生各用途金鑰的Expand兩個階段產生金鑰。