Encryption
加密時加鹽?
我在開發者大會上參加了一個數據庫加密會議。展示者(他是該主題的出版作者)說 MS SQL Server 不支持數據庫中的加鹽雜湊,但它支持加密加鹽。這是我第一次聽說加密中的加鹽。我要求澄清以確保這就是他所說的。
這是其他人以前聽說過的嗎?這是我以前從未聽說過的重要做法嗎?
查看Tangurena 給出的MSDN 連結
salt
,他們在本段中使用了這個詞(以及以下):為了防止通過比較加密值(第二次攻擊)來發現純文字內容,大多數加密算法都包含一個鹽值。指定不同的鹽值會生成非常不同的加密輸出。使用 .NET 加密類時,您可以將 salt 指定為初始化向量參數。在 SQL Server 中,隨機鹽值始終應用於加密。
分組密碼(給定相同的密鑰)總是將相同的明文映射到相同的密文。
當從分組密碼構造流密碼時,我們通常使用一種安全密碼模式來避免相同的輸入塊給出相同的輸出,這將是一個攻擊點。(參見那裡提到的歐洲央行範例圖像。)
數據庫加密與流加密有點不同:您通常希望單獨訪問每條記錄,而不必解密整個表/數據庫。但是我們仍然希望避免相同的記錄/欄位給出相同的密文。
為此,我們使用與流密碼相同的技巧:對於要加密的每個數據塊,我們生成一些隨機初始化向量。但在這裡,它與數據一起保存,而不是像流密碼那樣從前一個塊派生而來。這被輸入到分組密碼以及密鑰和明文中,用於加密和解密。