Complexity

用 96 位鹽和 128 位密鑰計算 HKDF 的複雜度?

  • March 1, 2020

我有一個 128 位的預共享密鑰。我不想直接使用它。我寧願用HKDF(PSK, SALT) = SESSIONKEY.

然而,我對數據包大小有嚴格的限制。所以我正在研究 12 字節(96 位)鹽的選項。

這會顯著削弱我的 128 位 PSK 到 96 位嗎?結果的真正複雜性是SESSIONKEY什麼?我不認為我可以將它們組合成大於 128 位的東西,因為鹽(派生種子)將以明文形式傳輸以供另一方使用。

這會顯著削弱我的 128 位 PSK 到 96 位嗎?結果的真正複雜性是SESSIONKEY什麼?

不,它沒有,關鍵強度保持不變。它保持在 128 位。HKDF 甚至可以在沒有鹽的情況下執行(儘管它的安全性證明強烈建議您使用鹽)。

但是,如果您多次使用它,則 SESSIONKEY 重複的機會可能會更高。但是,這對安全性的影響取決於密碼模式和 IV 的使用:

  • 如果您使用 16 字節隨機 IV 並且您會使用 AES-EAX,那麼您仍然會很安全。如果您使用確定性加密並且每條消息都不同,那麼您仍然是安全的。
  • 如果 IV 是靜態的並且您將使用 GCM,那麼您更有可能遇到麻煩,並且可能會失去所有安全性。

所以令人討厭的答案是我們無法真正分辨,這取決於案例和威脅向量。

這會顯著削弱我的 128 位 PSK 到 96 位嗎?生成的 SESSIONKEY 的真正複雜性是什麼?

即使它不會損害 SESSIONKEY 的安全性(取決於實現)。有一些更好的方法可以生成派生密鑰。您可以從 ETSI 架構中獲得啟發。請參考以下連結的梯形圖功能圖圖 1 和第 9 頁。

https://www.etsi.org/deliver/etsi_ts/103100_103199/103162/01.01.01_60/ts_103162v010101p.pdf

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