Pbkdf-2
如何從密碼、迭代和密鑰對 Salt 進行逆向工程?
假設使用以下函式 (PBKDF2) 導出隨機密鑰。
key = fn(password, salt, iterations)
Q1:如何從密碼、迭代和密鑰中對 salt 進行逆向工程?
Q2:如果使用相同的鹽來生成密鑰,我如何從密碼、迭代和密鑰中對鹽進行逆向工程?
PBKDF2 基於使用加密安全散列函式的 HMAC。假設雜湊函式是安全的,最簡單的方法將是蠻力。假設您知道密碼,那麼困難在於鹽中的熵量。因此,如果您選擇 16 個隨機字節,則提供 128 位熵,您需要的能量比煮沸世界上所有海洋所需的能量還要多。當沒有給出其他指導方針時,16 或 32 個隨機字節是習慣使用的鹽量,這兩者在計算上都無法猜測。
一般來說,我們不認為鹽是秘密的。在儲存密碼時,它通常與迭代計數一起以明文形式儲存,在 TLS 和 SSH 等加密協議中,鹽作為加密協商的一部分以明文形式發送。