Encryption

雜湊解密密鑰,密鑰解密密碼……為什麼?

  • May 23, 2012

我最近注意到一些加密軟體(TrueCrypt 就是其中之一)不直接使用密碼的散列作為分組密碼的密鑰。相反,他們生成一個隨機密鑰,使用它來加密數據,然後將密鑰與密碼的雜湊值進行異或運算,並將結果儲存在加密文件的標題中。

從想要不同文件的不同密鑰的角度來看,我可以看到這很有用,即使密碼相同,但我想不出任何其他原因。散列作為塊密碼密鑰是否弱,或者我在這裡遺漏了什麼?使用這種機制是否需要考慮任何其他安全注意事項?此外,這種機制是否優於使用文件包含密鑰的密鑰 HMAC 雜湊?

使用這樣的方案有幾個原因:

  • 正如其他幾個答案所指出的那樣,它允許在不重新加密整個文件的情況下更改密碼。
  • 此外,如果需要,它允許在不更改密碼的情況下重新加密文件。特別是,仔細實施可以允許增量重新加密,以便在重新加密過程執行時可以訪問文件,並且即使電腦在執行時崩潰也可以安全地恢復重新加密過程。
  • 使用中間密鑰還允許為同一個文件定義多個密碼,而不必將所有數據儲存兩次——只需使用每個密碼加密相同的內部密鑰並將它們全部儲存在標題中。

除了普通密碼外,還可以支持其他身份驗證方法;例如,內部密鑰可以使用公鑰/私鑰對(RSA、DSA 等)的公共部分進行加密,而私鑰可能又儲存在加密的密鑰文件和/或可移動媒體上。如果您願意,您甚至可以使用密碼私鑰文件訪問該文件。

(出於技術和性能原因,您不想使用公鑰加密算法直接加密大文件,因此在實踐中,每當您使用此類密鑰進行文件加密時,這正是您所做的——使用隨機對稱密鑰,然後用公鑰加密隨機密鑰。)

  • 是的,它還確保使用相同密碼加密的兩個相同文件不會具有相同的密文。當然,還有其他方法可以確保這一點,但它仍然是一個有用的副作用。

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